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

GitHub Repository

Complete source code and setup guide

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

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

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

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

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

4. تعيين متغيرات البيئة الأولية

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

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

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

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

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

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

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

ماذا يفعل

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

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

التحقق من التوقيع - باستخدام مكتبة dodopayments
عدم التكرار - يمنع معالجة مكررة باستخدام معرفات الويب هوك
تسجيل الأحداث - سجل تدقيق كامل في جدول webhook_events
معالجة الأخطاء - مسجلة وقابلة للمحاولة مرة أخرى
ملاحظة: يوضّح هذا التنفيذ التعامل مع ثلاثة أحداث اشتراك رئيسية (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. يعالج الحدث - ينشئ أو يحدث العملاء والاشتراكات في Neon
  5. يتعامل مع الأخطاء - يسجل الفشل ويعلّم الحدث بأنه غير معالج لإعادة المحاولة

الاختبار

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

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

الموارد

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