المتطلبات الأساسية
لدمج واجهة برمجة تطبيقات مدفوعات دودو، ستحتاج إلى:- حساب تاجر مدفوعات دودو
- بيانات اعتماد واجهة برمجة التطبيقات (مفتاح API ومفتاح سرية webhook) من لوحة التحكم
تكامل واجهة برمجة التطبيقات
جلسات الدفع
استخدم جلسات الدفع لبيع منتجات الاشتراك مع عملية دفع آمنة ومستضافة. قم بتمرير منتج الاشتراك الخاص بك فيproduct_cart وأعد توجيه العملاء إلى checkout_url التي تم إرجاعها.
- Node.js SDK
- Python SDK
- REST API
استجابة واجهة برمجة التطبيقات
فيما يلي مثال على الاستجابة:checkout_url.
الويب هوكس
عند دمج الاشتراكات، ستتلقى ويب هوكس لتتبع دورة حياة الاشتراك. تساعدك هذه الويب هوكس في إدارة حالات الاشتراك وسيناريوهات الدفع بشكل فعال. لإعداد نقطة نهاية الويب هوك الخاصة بك، يرجى اتباع دليل التكامل التفصيلي.أنواع أحداث الاشتراك
تتبع أحداث الويب هوك التالية تغييرات حالة الاشتراك:subscription.active- تم تفعيل الاشتراك بنجاح.subscription.updated- تم تحديث كائن الاشتراك (يتم تشغيله عند أي تغيير في الحقول).subscription.on_hold- تم تعليق الاشتراك بسبب فشل التجديد.subscription.failed- فشل إنشاء الاشتراك أثناء إنشاء التفويض.subscription.renewed- تم تجديد الاشتراك للفترة التالية من الفوترة.
سيناريوهات الدفع
تدفق الدفع الناجح عندما ينجح الدفع، ستتلقى الويب هوكس التالية:subscription.active- يشير إلى تفعيل الاشتراكpayment.succeeded- يؤكد الدفع الأولي:- للفوترة الفورية (0 أيام تجريبية): توقع خلال 2-10 دقائق
- لأيام التجربة: في أي وقت ينتهي
subscription.renewed- يشير إلى خصم الدفع والتجديد للدورة التالية. (بشكل أساسي، كلما تم خصم الدفع لمنتجات الاشتراك، ستحصل علىsubscription.renewedويب هوك معpayment.succeeded)
- فشل الاشتراك
subscription.failed- فشل إنشاء الاشتراك بسبب فشل إنشاء التفويض.payment.failed- يشير إلى فشل الدفع.
- الاشتراك معلق
subscription.on_hold- تم تعليق الاشتراك بسبب فشل تجديد الدفع أو فشل رسوم تغيير الخطة.- عندما يتم تعليق الاشتراك، لن يتم تجديده تلقائيًا حتى يتم تحديث طريقة الدفع.
أفضل ممارسة: لتبسيط التنفيذ، نوصي بتتبع أحداث الاشتراك بشكل أساسي لإدارة دورة حياة الاشتراك.
التعامل مع الاشتراك المعلق
عندما يدخل الاشتراك في حالةon_hold، تحتاج إلى تحديث طريقة الدفع لإعادة تفعيله. يشرح هذا القسم متى يتم تعليق الاشتراكات وكيفية التعامل معها.
متى يتم تعليق الاشتراكات
يتم تعليق الاشتراك عندما:- يفشل دفع التجديد: تفشل رسوم التجديد التلقائية بسبب عدم كفاية الأموال، أو انتهاء صلاحية البطاقة، أو رفض البنك
- يفشل رسوم تغيير الخطة: تفشل الرسوم الفورية أثناء ترقية/تخفيض الخطة
- يفشل تفويض طريقة الدفع: لا يمكن تفويض طريقة الدفع للرسوم المتكررة
إعادة تفعيل الاشتراكات من حالة المعلق
لإعادة تفعيل الاشتراك من حالةon_hold، استخدم واجهة برمجة التطبيقات لتحديث طريقة الدفع. هذا تلقائيًا:
- ينشئ رسومًا للديون المتبقية
- يولد فاتورة للرسوم
- يعالج الدفع باستخدام طريقة الدفع الجديدة
- يعيد تفعيل الاشتراك إلى حالة
activeعند الدفع الناجح
1
التعامل مع ويب هوك subscription.on_hold
عندما تتلقى ويب هوك
subscription.on_hold، قم بتحديث حالة تطبيقك وأبلغ العميل:2
تحديث طريقة الدفع
عندما يكون العميل جاهزًا لتحديث طريقة الدفع الخاصة به، اتصل بواجهة برمجة التطبيقات لتحديث طريقة الدفع:
يمكنك أيضًا استخدام معرف طريقة الدفع الموجودة إذا كان لدى العميل طرق دفع محفوظة:
3
مراقبة أحداث الويب هوك
بعد تحديث طريقة الدفع، راقب هذه أحداث الويب هوك:
payment.succeeded- كانت الرسوم للديون المتبقية ناجحةsubscription.active- تم إعادة تفعيل الاشتراك
عينة من حمولة حدث الاشتراك
| الخاصية | النوع | مطلوب | الوصف |
|---|---|---|---|
business_id | string | نعم | المعرف الفريد للعمل |
timestamp | string | نعم | الطابع الزمني لحدوث الحدث (ليس بالضرورة نفس الوقت الذي تم تسليمه فيه) |
type | string | نعم | نوع الحدث. انظر أنواع الأحداث |
data | object | نعم | الحمولة الرئيسية للبيانات. انظر كائن البيانات |
تغيير خطط الاشتراك
يمكنك ترقية أو تخفيض خطة الاشتراك باستخدام نقطة نهاية واجهة برمجة التطبيقات لتغيير الخطة. يتيح لك ذلك تعديل منتج الاشتراك، والكمية، والتعامل مع النسبة المئوية.مرجع واجهة برمجة التطبيقات لتغيير الخطة
لمزيد من المعلومات التفصيلية حول تغيير خطط الاشتراك، يرجى الرجوع إلى وثائق واجهة برمجة التطبيقات لتغيير الخطة.
خيارات النسبة المئوية
عند تغيير خطط الاشتراك، لديك خياران للتعامل مع الرسوم الفورية:1. prorated_immediately
- يحسب المبلغ النسبي بناءً على الوقت المتبقي في دورة الفوترة الحالية
- يفرض على العميل فقط الفرق بين الخطة القديمة والجديدة
- خلال فترة التجربة، سيؤدي ذلك إلى تحويل المستخدم على الفور إلى الخطة الجديدة، مع فرض رسوم على العميل على الفور
2. full_immediately
- يفرض على العميل المبلغ الكامل للاشتراك للخطة الجديدة
- يتجاهل أي وقت متبقي أو أرصدة من الخطة السابقة
- مفيد عندما تريد إعادة تعيين دورة الفوترة أو فرض المبلغ الكامل بغض النظر عن النسبة المئوية
3. difference_immediately
- عند الترقية، يتم فرض رسوم على العميل على الفور بالفرق بين المبلغين للخطة.
- على سبيل المثال، إذا كانت الخطة الحالية 30 دولارًا وقرر العميل الترقية إلى 80 دولارًا، فسيتم فرض 50 دولارًا على الفور.
- عند التخفيض، يتم إضافة المبلغ غير المستخدم من الخطة الحالية كرصيد داخلي ويتم تطبيقه تلقائيًا على تجديد الاشتراك في المستقبل.
- على سبيل المثال، إذا كانت الخطة الحالية 50 دولارًا وقرر العميل التبديل إلى خطة 20 دولارًا، فسيتم إضافة 30 دولارًا المتبقية كرصيد واستخدامها نحو دورة الفوترة التالية.
السلوك
- عند استدعاء هذه الواجهة، تبدأ مدفوعات دودو على الفور في فرض رسوم بناءً على خيار النسبة المئوية الذي اخترته
- إذا كان تغيير الخطة هو تخفيض واستخدمت
prorated_immediately، سيتم حساب الأرصدة تلقائيًا وإضافتها إلى رصيد الاشتراك. هذه الأرصدة خاصة بذلك الاشتراك وستستخدم فقط لتعويض المدفوعات المتكررة المستقبلية لنفس الاشتراك - خيار
full_immediatelyيتجاوز حسابات الأرصدة ويفرض المبلغ الكامل للخطة الجديدة
معالجة الرسوم
- عادةً ما تكتمل معالجة الرسوم الفورية التي تبدأ عند تغيير الخطة في أقل من دقيقتين
- إذا فشلت هذه الرسوم الفورية لأي سبب، يتم تلقائيًا وضع الاشتراك في حالة تعليق حتى يتم حل المشكلة
الاشتراكات عند الطلب
تتيح لك الاشتراكات عند الطلب فرض رسوم على العملاء بشكل مرن، وليس فقط وفقًا لجدول زمني ثابت. اتصل بالدعم لتمكين هذه الميزة.
on_demand في جسم الطلب الخاص بك. يتيح لك ذلك تفويض طريقة الدفع دون فرض رسوم فورية، أو تعيين سعر أولي مخصص.
لتحصيل رسوم اشتراك عند الطلب:
لتحصيل الرسوم اللاحقة، استخدم نقطة النهاية POST /subscriptions/charge وحدد المبلغ الذي سيتم فرضه على العميل لتلك المعاملة.
للحصول على دليل كامل خطوة بخطوة—بما في ذلك أمثلة الطلب/الاستجابة، وسياسات إعادة المحاولة الآمنة، والتعامل مع الويب هوكس—راجع دليل الاشتراكات عند الطلب.