بوابات الدفع (Stripe وPayPal)
يدعم FeedbackPulse SaaS Stripe وPayPal لإدارة فواتير الاشتراكات. يمكنك تفعيل أحدهما أو كليهما.
💰 كيف تعمل الفوترة
- تُنشئ خطط الاشتراك في
الإدارة ← الخطط(مثلاً: Starter بـ 9.99$/شهر، Pro بـ 29.99$/شهر) - لكل خطة معرف سعر Stripe و/أو معرف خطة PayPal
- عند اشتراك مستأجر، يُعاد توجيهه إلى Stripe Checkout أو PayPal
- بعد الدفع، يُفعّل FeedbackPulse اشتراكه
- تحافظ Webhooks على التزامن (التجديدات والإلغاءات والإخفاقات)
💳 إعداد Stripe
الخطوة 1: إنشاء حساب Stripe
- سجّل في stripe.com
- أكمل التحقق من الهوية
- احصل على مفاتيح API من Developers ← API Keys
الخطوة 2: الحصول على مفاتيح API
| المفتاح | مكان الحصول عليه | متغير .env |
|---|---|---|
| المفتاح العام | Dashboard ← Developers ← API Keys | STRIPE_PUBLISHABLE_KEY |
| المفتاح السري | Dashboard ← Developers ← API Keys | STRIPE_SECRET_KEY |
STRIPE_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxxxxxxx
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxx
🧪 الاختبار: استخدم مفاتيح
pk_test_وsk_test_لوضع sandbox.
الخطوة 3: إنشاء المنتجات والأسعار في Stripe
لكل خطة اشتراك، أنشئ سعرًا متكررًا في Stripe:
- انتقل إلى Products ← Add Product
- الاسم: "FeedbackPulse Starter" (أو اسم خطتك)
- أضف سعرًا متكررًا: 9.99$ / شهر
- أضف اختياريًا سعرًا سنويًا: 99.99$ / سنة
- انسخ معرف السعر (يبدأ بـ
price_)
الخطوة 4: ربط الأسعار بالخطط
في FeedbackPulse، انتقل إلى الإدارة ← الخطط ← تعديل:
| حقل الخطة | قيمة Stripe |
|---|---|
| معرف السعر الشهري لـ Stripe | price_xxxxxxxxx (معرف السعر الشهري) |
| معرف السعر السنوي لـ Stripe | price_xxxxxxxxx (معرف السعر السنوي) |
الخطوة 5: إعداد Webhooks في Stripe
هذا أمر بالغ الأهمية — تحافظ Webhooks على تزامن الاشتراكات.
- انتقل إلى Stripe Dashboard ← Developers ← Webhooks
- انقر على Add endpoint
- رابط نقطة النهاية:
https://yourdomain.com/webhooks/stripe - الأحداث المطلوب الاستماع إليها:
checkout.session.completedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_failed
- انسخ سر التوقيع (يبدأ بـ
whsec_)
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxx
الخطوة 6: التفعيل من لوحة الإدارة
انتقل إلى الإدارة ← الإعدادات ← المدفوعات:
- فعّل Stripe
- الصق مفاتيحك العامة والسرية
- احفظ
💰 إعداد PayPal
الخطوة 1: إنشاء حساب PayPal للأعمال
- سجّل في paypal.com/business
- انتقل إلى developer.paypal.com
الخطوة 2: إنشاء تطبيق REST API
- انتقل إلى Dashboard ← Apps & Credentials
- انقر على Create App
- الاسم: "FeedbackPulse"
- انسخ Client ID وSecret
PAYPAL_CLIENT_ID=your_client_id
PAYPAL_CLIENT_SECRET=your_client_secret
PAYPAL_MODE=live
🧪 الاختبار: استخدم
PAYPAL_MODE=sandboxوبيانات اعتماد sandbox.
الخطوة 3: إنشاء خطط الاشتراك في PayPal
- انتقل إلى PayPal Developer Dashboard ← Subscriptions ← Plans
- أنشئ منتجًا أولاً، ثم أنشئ خططًا له
- انسخ كل Plan ID (يبدأ بـ
P-)
الخطوة 4: ربط الخطط في FeedbackPulse
في الإدارة ← الخطط ← تعديل:
| حقل الخطة | قيمة PayPal |
|---|---|
| معرف الخطة الشهرية لـ PayPal | P-xxxxxxxxx (الخطة الشهرية) |
| معرف الخطة السنوية لـ PayPal | P-xxxxxxxxx (الخطة السنوية) |
الخطوة 5: إعداد Webhooks في PayPal
- في PayPal Developer Dashboard ← Webhooks
- أضف رابط webhook:
https://yourdomain.com/webhooks/paypal - اختر الأحداث:
BILLING.SUBSCRIPTION.CREATEDBILLING.SUBSCRIPTION.ACTIVATEDBILLING.SUBSCRIPTION.UPDATEDBILLING.SUBSCRIPTION.CANCELLEDBILLING.SUBSCRIPTION.SUSPENDEDPAYMENT.SALE.COMPLETED
- انسخ Webhook ID
PAYPAL_WEBHOOK_ID=your_webhook_id
الخطوة 6: التفعيل من لوحة الإدارة
انتقل إلى الإدارة ← الإعدادات ← المدفوعات:
- فعّل PayPal
- الصق Client ID والسر الخاص بك
- احفظ
🧪 اختبار المدفوعات
وضع اختبار Stripe
استخدم أرقام بطاقات اختبارية:
- نجاح:
4242 4242 4242 4242 - رفض:
4000 0000 0000 0002 - 3D Secure:
4000 0025 0000 3155
تاريخ الانتهاء: أي تاريخ مستقبلي. CVC: أي 3 أرقام.
PayPal Sandbox
- انتقل إلى developer.paypal.com ← Sandbox ← Accounts
- استخدم حساب المشتري في sandbox لاختبار المدفوعات
دعم العملات المتعددة
يمكن تعيين عملات مختلفة للخطط (مثل USD وEUR وGBP). قم بإعداد قائمة العملات المدعومة في الإدارة ← الإعدادات ← المدفوعات ضمن حقل العملات المدعومة.
- Stripe: تُمرَّر عملة الخطة تلقائيًا في جلسات Checkout، ليُحاسب العملاء بالعملة الصحيحة.
- PayPal: تتضمن طلبات الاشتراك بيانات وصفية للعملة تتطابق مع عملة الخطة المُعدَّة.
- تُخزَّن العملة في كل فاتورة للحفاظ على دقة السجلات.
للمزيد من التفاصيل حول إعداد العملات المدعومة، راجع إعدادات المنصة.
🔒 ملاحظات الأمان
- تُخزَّن مفاتيح API مشفّرة في جدول
platform_settings - يُتحقق من توقيعات Webhook (HMAC لـ Stripe، التحقق من توقيع PayPal)
- تُسجَّل أحداث الدفع في جدول
payment_events(الإدارة ← المدفوعات) - تمنع آلية إلغاء التكرار المعالجة المزدوجة للـ webhooks