انتقل إلى المحتوى

💳 إعداد Stripe

Alt Text


⚙️ الإعداد

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.

🚀 الانتقال إلى الإنتاج

انسخ المفتاح السري للتوقيع وأضفه إلى 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
مثل:

  • إضافة أرصدة للمستخدم
  • إرسال بريد إلكتروني مع كتاب إلكتروني مدفوع
  • أو أي منطق مخصص آخر (تفعيل منتج، إرسال كود خصم، إلخ)