💳 إعداد Stripe¶
¶
⚙️ الإعداد¶
1️⃣ أنشئ حسابًا جديدًا على Stripe وقم بتفعيل المدفوعات:
- (أعلم، ممل.. أراك قريبًا!)
2️⃣ إعداد معلومات الموقع:
- اذهب إلى [Settings]، ضمن [Public Details]، أضف عنوان موقعك الإلكتروني.
3️⃣ تخصيص العلامة التجارية:
- في [Settings]، ضمن [Branding]، أضف شعارك وألوانك.
4️⃣ تفعيل رسائل البريد الإلكتروني للعملاء:
- في [Settings]، ضمن [Customer Emails]، فعّل رسائل البريد الإلكتروني للمدفوعات الناجحة واسترداد الأموال.
5️⃣ تفعيل بوابة العملاء:
- في [Settings]، ضمن [Customer Portal]، فعّل رابط بوابة العملاء (لاستخدامه لاحقًا).
6️⃣ منع الاحتيال:
- في مربع البحث، اكتب "rules" وانقر على [Fraud Prevention > Rules].
- ✅ تأكد من تفعيل قاعدة 3DS الأولى.
- 💡 ملاحظة: يُفضل تفعيل القاعدة الثانية (موصى به).
- 🚫 تأكد من حظر المدفوعات إذا فشل التحقق من CVC.
7️⃣ تفعيل وضع الاختبار (Test Mode).
8️⃣ إنشاء منتج جديد:
- أنشئ منتجًا جديدًا ونسخ معرف السعر (مثال: price_1ju5GD464564).
- أضفه إلى config.stripe.plans[0].priceId في ملف config.js.
9️⃣ إعداد المفاتيح:
- اذهب إلى [Developers]، انسخ المفاتيح العامة والخاصة.
- أضفها إلى STRIPE_SECRET_KEY و STRIPE_PUBLIC_KEY في ملف .env.local.
🌐 Webhook محلي¶
10️⃣ إعداد Webhook محليًا:
- اذهب إلى [Developers] → [Webhook] → [Test in local environment].
- بعد تسجيل الدخول إلى Stripe CLI، استخدم هذا الأمر لإعادة توجيه أحداث Webhook إلى API الخاص بنا:
stripe listen --forward-to localhost:3000/api/webhook/stripe
🚀 الانتقال إلى الإنتاج¶
✅ انسخ المفتاح السري للتوقيع وأضفه إلى STRIPE_WEBHOOK_SECRET في .env.local.
⚙️ خطوات الانتقال إلى الإنتاج:¶
1️⃣ أوقف وضع الاختبار (Test Mode) في لوحة تحكم Stripe.
2️⃣ في [Developers]، انسخ مفاتيحك:
- STRIPE_SECRET_KEY
- STRIPE_PUBLIC_KEY
📥 أضفها إلى متغيرات بيئة الإنتاج.
3️⃣ في [Developers] → [Webhook]، انقر على [Add Endpoint]:
- 📝 عيّن: https://yourdomain.com/api/webhook/stripe
- ✅ اختر الحدث: checkout.session.completed (أو أكثر إذا لزم الأمر).
- 🔐 انسخ المفتاح السري للتوقيع وأضفه إلى STRIPE_WEBHOOK_SECRET في متغيرات البيئة للإنتاج.
📅 خيارات إضافية (اختياري):¶
4️⃣ في [Balance] → [Manage Payouts]، حدد تاريخًا محددًا من الشهر لتلقي المدفوعات (مثل اليوم العاشر).
5️⃣ في [Settings] → [Customers Emails]، فعّل رسائل البريد الإلكتروني للمدفوعات الناجحة واسترداد الأموال.
💳 إنشاء عملية دفع (Checkout)¶
- من الواجهة الأمامية، استخدم
<ButtonCheckout />لإنشاء جلسة دفع تلقائيًا (دفع لمرة واحدة أو اشتراك).
🔄 معالجة Webhooks والاشتراكات في Stripe¶
تستمع API الخاصة بنا إلى أحداث webhooks المحددة في Stripe وتُحدث حالة المستخدم وفقًا لذلك.
✅ تعمل على تغيير قيمة hasAccess (أو has_access في Supabase) إلى true/false
بناءً على ما إذا كان يجب أن يتمكن المستخدم من الوصول إلى المورد المدفوع أم لا.
💡 يمكنك إضافة منطق العمل الخاص بك إلى نقطة النهاية:
/api/webhook/stripe
مثل:
- إضافة أرصدة للمستخدم
- إرسال بريد إلكتروني مع كتاب إلكتروني مدفوع
- أو أي منطق مخصص آخر (تفعيل منتج، إرسال كود خصم، إلخ)