Skip to main content

GitHub Repository

Complete source code and setup guide

الإعداد السريع

1. المتطلبات الأساسية

تحتاج إلى:

2. تثبيت Dependencies

3. إعداد قاعدة البيانات

  1. سجّل في Neon وأنشئ مشروعًا.
  2. افتح SQL Editor.
  3. انسخ المحتوى بالكامل من schema.sql وشغّله.
  4. انسخ سلسلة الاتصال من Connection Details.

4. تعيين Environment Variables الأولية

ستعيّن DODO_PAYMENTS_WEBHOOK_KEY بعد النشر، بمجرد حصولك على عنوان URL الخاص بـ webhook.

5. التهيئة والنشر

6. الحصول على عنوان URL الخاص بـ webhook

عنوان URL الخاص بـ webhook هو:

7. تسجيل webhook في لوحة تحكم DodoPayments

  1. انتقل إلى Developer → Webhooks في لوحة تحكم Dodo Payments.
  2. انقر على Add endpoint.
  3. أدخل عنوان URL الخاص بـ webhook.
  4. حدّد هذه الأحداث: subscription.active، subscription.cancelled، subscription.renewed.
  5. انقر على 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 Payments
  • subscriptions — الحالة والمبلغ وتاريخ الفوترة التالي، مرتبط بالعملاء
  • webhook_events — سجل الأحداث مع webhook ID لضمان Idempotency

كود التنفيذ

آلية العمل

يعمل webhook handler على النحو التالي:
  1. يتحقق من التوقيع — يستخدم Dodo Payments SDK للتحقق من الطلب باستخدام HMAC-SHA256
  2. يتحقق من التكرار — يستخدم ترويسة webhook-id لمنع معالجة الحدث نفسه مرتين
  3. يسجّل الحدث — يخزّن webhook الخام في جدول webhook_events لأغراض التدقيق
  4. يعالج الحدث — ينشئ العملاء والاشتراكات أو يحدّثها في Neon
  5. يعالج الأخطاء — يسجّل حالات الفشل ويضع علامة على الأحداث باعتبارها غير معالجة لإعادة المحاولة

الاختبار

التطوير المحلي:
عرض السجلات في لوحة تحكم Netlify:
  1. حدّد موقعك وانتقل إلى Functions.
  2. انقر على الدالة webhook.
  3. اعرض السجلات الفورية وسجل الاستدعاءات.
الإعداد في لوحة تحكم Dodo Payments:
  1. انتقل إلى Developer → Webhooks.
  2. أضف endpoint باستخدام عنوان URL الخاص بـ Netlify Functions.
  3. حدّد subscription.active وsubscription.cancelled وsubscription.renewed.

المشكلات الشائعة

الموارد

آخر تعديل في ٢٦ سبتمبر ٢٠٢٦