الانتقال إلى المحتوى الرئيسي

GitHub Repository

الكود المصدري الكامل ودليل الإعداد

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

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

2. تثبيت التبعيات

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

  1. سجّل في Neon
  2. أنشئ مشروعًا جديدًا
  3. افتح محرر SQL
  4. انسخ والصق محتويات schema.sql
  5. نفّذ الاستعلام
  6. احصل على سلسلة الاتصال من Neon → تفاصيل الاتصال

4. تكوين الأسرار الأولية

Note: سنقوم بإعداد DODO_PAYMENTS_WEBHOOK_KEY بعد النشر بمجرد حصولك على عنوان URL الخاص بالويب هوك.

5. تحديث wrangler.toml

حرّر wrangler.toml وحدد اسم العامل الخاص بك:

6. النشر

7. احصل على عنوان URL الخاص بـ Webhook

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

8. تسجيل Webhook في لوحة تحكم DodoPayments

  1. اذهب إلى DodoPayments Dashboard → Developer → Webhooks
  2. أنشئ نقطة نهاية ويب هوك جديدة
  3. قم بتكوين عنوان URL للويب هوك كنقطة النهاية
  4. فعّل أحداث الاشتراك التالية:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. انسخ السرّ الخاص بالتوقيع

9. تعيين مفتاح Webhook وإعادة النشر

ماذا يفعل

يعالج أحداث الاشتراك ويخزنها في PostgreSQL:
  • subscription.active - ينشئ/يحدث سجلات العملاء والاشتراكات
  • subscription.cancelled - يحدد الاشتراك على أنه ملغى
  • subscription.renewed - يحدث تاريخ الفوترة التالي

الميزات الرئيسية

Signature verification - باستخدام مكتبة dodopayments
Idempotency - يمنع المعالجة المكررة باستخدام معرفات الويب هوك
Event logging - سجل تدقيق كامل في جدول webhook_events
Error handling - يتم تسجيلها وقابلة لإعادة المحاولة
Note: يوضح هذا التّنفيذ معالجة ثلاثة من أحداث الاشتراك الأساسية (subscription.active، subscription.cancelled، subscription.renewed) باستخدام أقل عدد من الحقول. يمكنك توسيعه بسهولة لدعم أنواع وحقول إضافية بناءً على متطلباتك.

ملفات التكوين

مخطط قاعدة البيانات

الجداول التي تم إنشاؤها:
  • customers - البريد الإلكتروني، الاسم، dodo_customer_id
  • subscriptions - الحالة، المبلغ، next_billing_date، مرتبط بالعملاء
  • webhook_events - سجل الأحداث مع webhook_id من أجل التحمل

كود التنفيذ

كيف يعمل

معالج الويب هوك:
  1. يتحقق من التوقيع - يضمن أن الطلب من DodoPayments باستخدام HMAC-SHA256
  2. يتحقق من التكرارات - يستخدم معرف الويب هوك لمنع معالجة نفس الحدث مرتين
  3. يسجل الحدث - يخزن الويب هوك الخام في جدول webhook_events لسجل التدقيق
  4. يعالج الحدث - ينشئ العملاء والاشتراكات أو يُحدثها
  5. يتعامل مع الأخطاء - يسجل الإخفاقات ويعلم بأن الحدث لم يُعالج لإعادة المحاولة

الاختبار

التطوير المحلي:
تكوين في لوحة تحكم DodoPayments:
  1. انتقل إلى المطورين → Webhooks
  2. أضف نقطة نهاية مع عنوان URL الخاص بالعامل الخاص بك
  3. قم بتمكين: subscription.active، subscription.cancelled، subscription.renewed

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

الموارد

آخر تعديل في ٢٢ مايو ٢٠٢٦