GitHub Repository
Complete source code and setup guide
الإعداد السريع
1. المتطلبات الأساسية
تحتاج إلى:- حساب Netlify
- حساب قاعدة بيانات Neon
- مفتاح API لـ Dodo Payments من Developer → API Keys في لوحة التحكم
2. تثبيت Dependencies
3. إعداد قاعدة البيانات
- سجّل في Neon وأنشئ مشروعًا.
- افتح SQL Editor.
- انسخ المحتوى بالكامل من
schema.sqlوشغّله. - انسخ سلسلة الاتصال من Connection Details.
4. تعيين Environment Variables الأولية
ستعيّن
DODO_PAYMENTS_WEBHOOK_KEY بعد النشر، بمجرد حصولك على عنوان URL الخاص بـ webhook.5. التهيئة والنشر
6. الحصول على عنوان URL الخاص بـ webhook
عنوان URL الخاص بـ webhook هو:7. تسجيل webhook في لوحة تحكم DodoPayments
- انتقل إلى Developer → Webhooks في لوحة تحكم Dodo Payments.
- انقر على Add endpoint.
- أدخل عنوان URL الخاص بـ webhook.
- حدّد هذه الأحداث:
subscription.active،subscription.cancelled،subscription.renewed. - انقر على Create endpoint وانسخ signing secret.
8. تعيين Webhook Key وإعادة النشر
ما الذي يفعله
يعالج webhook handler أحداث الاشتراكات ويخزّنها في PostgreSQL:subscription.active— ينشئ سجلات العملاء والاشتراكات أو يحدّثهاsubscription.cancelled— يضع علامة على الاشتراك بأنه ملغىsubscription.renewed— يحدّث تاريخ الفوترة التالي
الميزات الرئيسية
- التحقق من التوقيع — يستخدم Dodo Payments SDK للتحقق من صحة webhook
- Idempotency — يستخدم ترويسة
webhook-idلمنع المعالجة المكررة - تسجيل الأحداث — يخزّن جميع الأحداث في جدول
webhook_eventsلأغراض التدقيق - معالجة الأخطاء — يسجّل حالات الفشل ويضع علامة على الأحداث لإعادة المحاولة
يعالج هذا المثال ثلاثة أحداث أساسية للاشتراكات باستخدام الحد الأدنى من الحقول. يمكنك توسيعه لدعم أنواع وحقول إضافية من الأحداث وفقًا لاحتياجاتك.
ملفات الإعداد
مخطط قاعدة البيانات
customers— البريد الإلكتروني والاسم ومعرّف عميل Dodo Paymentssubscriptions— الحالة والمبلغ وتاريخ الفوترة التالي، مرتبط بالعملاءwebhook_events— سجل الأحداث مع webhook ID لضمان Idempotency
كود التنفيذ
آلية العمل
يعمل webhook handler على النحو التالي:- يتحقق من التوقيع — يستخدم Dodo Payments SDK للتحقق من الطلب باستخدام HMAC-SHA256
- يتحقق من التكرار — يستخدم ترويسة
webhook-idلمنع معالجة الحدث نفسه مرتين - يسجّل الحدث — يخزّن webhook الخام في جدول
webhook_eventsلأغراض التدقيق - يعالج الحدث — ينشئ العملاء والاشتراكات أو يحدّثها في Neon
- يعالج الأخطاء — يسجّل حالات الفشل ويضع علامة على الأحداث باعتبارها غير معالجة لإعادة المحاولة
الاختبار
التطوير المحلي:- حدّد موقعك وانتقل إلى Functions.
- انقر على الدالة
webhook. - اعرض السجلات الفورية وسجل الاستدعاءات.
- انتقل إلى Developer → Webhooks.
- أضف endpoint باستخدام عنوان URL الخاص بـ Netlify Functions.
- حدّد
subscription.activeوsubscription.cancelledوsubscription.renewed.