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

GitHub Repository

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

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

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

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

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

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

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

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

5. النشر

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

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

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

  1. اذهب إلى لوحة تحكم DodoPayments Dashboard → Developer → Webhooks
  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. يعطل تحليل الجسم - للوصول إلى الجسم الخام للتحقق من التوقيع
  2. يتحقق من التوقيع - يضمن أن الطلب من DodoPayments باستخدام HMAC-SHA256
  3. يتحقق من التكرار - يستخدم معرف الويب هوك لمنع معالجة الحدث نفسه مرتين
  4. يسجل الحدث - يخزن الويب هوك الخام في جدول webhook_events لتتبع التدقيق
  5. يعالج الحدث - ينشئ أو يحدث العملاء والاشتراكات في Neon
  6. يتعامل مع الأخطاء - يسجل الفشل ويعلم الحدث على أنه غير معالج لإعادة المحاولة

الاختبار

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

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

الموارد

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