مرجع واجهة برمجة التطبيقات لتغيير الخطة
معاينة واجهة برمجة التطبيقات لتغيير الخطة
دليل تكامل الاشتراك
ما هي ترقية أو تخفيض الاشتراك؟
تغيير الخطط يتيح لك نقل العميل بين مستويات أو كميات الاشتراك. استخدمه لـ:- مواءمة الأسعار مع الاستخدام أو الميزات
- الانتقال من شهري إلى سنوي (أو العكس)
- ضبط الكمية للمنتجات المعتمدة على المقاعد
متى يجب استخدام تغييرات الخطط
- ترقية عندما يحتاج العميل إلى المزيد من الميزات أو الاستخدام أو المقاعد
- تخفيض عندما ينخفض الاستخدام
- نقل المستخدمين إلى منتج أو سعر جديد دون إلغاء اشتراكهم
المتطلبات الأساسية
قبل تنفيذ تغييرات خطة الاشتراك، تأكد من أن لديك:- حساب تاجر Dodo Payments مع منتجات اشتراك نشطة
- بيانات اعتماد واجهة برمجة التطبيقات (مفتاح API ومفتاح سر الويب هوك) من لوحة التحكم
- اشتراك نشط موجود لتعديله
- نقطة نهاية الويب هوك مكونة للتعامل مع أحداث الاشتراك
دليل التنفيذ خطوة بخطوة
اتبع هذا الدليل الشامل لتنفيذ تغييرات خطة الاشتراك في تطبيقك:فهم متطلبات تغيير الخطة
- أي منتجات اشتراك يمكن تغييرها إلى أي أخرى
- ما هو وضع النسبة المئوية الذي يناسب نموذج عملك
- كيفية التعامل مع تغييرات الخطط الفاشلة بشكل سلس
- أي أحداث ويب هوك يجب تتبعها لإدارة الحالة
اختر استراتيجية النسبة المئوية الخاصة بك
- prorated_immediately
- difference_immediately
- full_immediately
- يحسب المبلغ الدقيق النسبي بناءً على الوقت المتبقي في الدورة
- يفرض مبلغًا نسبيًا بناءً على الوقت غير المستخدم المتبقي في الدورة
- يوفر فوترة شفافة للعملاء
تنفيذ واجهة برمجة التطبيقات لتغيير الخطة
prorated_immediately، full_immediately، أو difference_immediately.التعامل مع أحداث الويب هوك
subscription.active: تم تغيير الخطة بنجاح، تم تحديث الاشتراكsubscription.plan_changed: تم تغيير خطة الاشتراك (ترقية/تخفيض/تحديث الإضافة)subscription.on_hold: فشل تحصيل رسوم تغيير الخطة، تم إيقاف الاشتراكpayment.succeeded: تم تحصيل الرسوم الفورية لتغيير الخطة بنجاحpayment.failed: فشل التحصيل الفوري
تحديث حالة تطبيقك
- منح/إلغاء الميزات بناءً على الخطة الجديدة
- تحديث لوحة معلومات العميل بتفاصيل الخطة الجديدة
- إرسال رسائل تأكيد عبر البريد الإلكتروني حول تغييرات الخطة
- تسجيل تغييرات الفوترة لأغراض التدقيق
اختبار ومراقبة
- اختبار جميع أوضاع النسبة المئوية مع سيناريوهات مختلفة
- التحقق من أن معالجة الويب هوك تعمل بشكل صحيح
- مراقبة معدلات نجاح تغيير الخطة
- إعداد تنبيهات لتغييرات الخطة الفاشلة
معاينة تغييرات الخطة
قبل الالتزام بتغيير الخطة، استخدم واجهة برمجة التطبيقات للمعاينة لإظهار للعملاء بالضبط ما سيتم تحصيله منهم:- Node.js SDK
- Python SDK
واجهة برمجة التطبيقات لتغيير الخطة
استخدم واجهة برمجة التطبيقات لتغيير الخطة لتعديل المنتج والكمية وسلوك النسبة المئوية للاشتراك النشط.أمثلة بدء سريعة
- Node.js SDK
- Python SDK
- Go SDK
- HTTP
invoice_id وpayment_id فقط عندما يتم إنشاء تحصيل فوري و/أو فاتورة أثناء تغيير الخطة. اعتمد دائمًا على أحداث الويب هوك (مثل payment.succeeded، subscription.plan_changed) لتأكيد النتائج.إدارة الإضافات
عند تغيير خطط الاشتراك، يمكنك أيضًا تعديل الإضافات:أوضاع النسبة المئوية
اختر كيفية تحصيل الرسوم من العميل عند تغيير الخطط:prorated_immediately
- تحصيل الرسوم عن الفرق الجزئي في الدورة الحالية
- إذا كانت في فترة تجريبية، يتم التحصيل على الفور ويتم الانتقال إلى الخطة الجديدة الآن
- تخفيض: قد ينتج عنه ائتمان نسبي يُطبق على التجديدات المستقبلية
full_immediately
- تحصيل المبلغ الكامل للخطة الجديدة على الفور
- يتجاهل الوقت المتبقي من الخطة القديمة
difference_immediately هي محددة للاشتراك ومتميزة عن الائتمانات الخاصة بالعملاء. يتم تطبيقها تلقائيًا على التجديدات المستقبلية لنفس الاشتراك ولا يمكن نقلها بين الاشتراكات.difference_immediately
- ترقية: فرض الفرق في السعر بين الخطط القديمة والجديدة على الفور
- تخفيض: إضافة القيمة المتبقية كائتمان داخلي للاشتراك وتطبيقها تلقائيًا على التجديدات
سيناريوهات الأمثلة
ترقية: أساسي ($30) → برو ($80) مع difference_immediately
ترقية: أساسي ($30) → برو ($80) مع difference_immediately
تخفيض: بلس ($50) → ستارتير ($20) مع difference_immediately
تخفيض: بلس ($50) → ستارتير ($20) مع difference_immediately
ترقية منتصف الدورة مع prorated_immediately
ترقية منتصف الدورة مع prorated_immediately
إعادة تعيين الفوترة مع full_immediately
إعادة تعيين الفوترة مع full_immediately
التعامل مع الويب هوكس
تتبع حالة الاشتراك من خلال الويب هوكس لتأكيد تغييرات الخطط والمدفوعات.أنواع الأحداث التي يجب التعامل معها
subscription.active: تم تفعيل الاشتراكsubscription.plan_changed: تم تغيير خطة الاشتراك (ترقية/تخفيض/تغييرات الإضافة)subscription.on_hold: فشل التحصيل، تم إيقاف الاشتراكsubscription.renewed: التجديد ناجحpayment.succeeded: تم الدفع لتغيير الخطة أو التجديد بنجاحpayment.failed: فشل الدفع
تحقق من التوقيعات وتعامل مع النوايا
- معالج مسار Next.js
- Express.js
أفضل الممارسات
اتبع هذه التوصيات لتغييرات خطة الاشتراك الموثوقة:استراتيجية تغيير الخطة
- اختبر بدقة: اختبر دائمًا تغييرات الخطط في وضع الاختبار قبل الإنتاج
- اختر النسبة المئوية بعناية: اختر وضع النسبة المئوية الذي يتماشى مع نموذج عملك
- تعامل مع الفشل بسلاسة: نفذ معالجة الأخطاء المناسبة ومنطق إعادة المحاولة
- راقب معدلات النجاح: تتبع معدلات نجاح/فشل تغيير الخطة واستقصاء المشكلات
تنفيذ الويب هوك
- تحقق من التوقيعات: تحقق دائمًا من توقيعات الويب هوك لضمان الأصالة
- نفذ عدم القابلية للتكرار: تعامل مع أحداث الويب هوك المكررة بسلاسة
- قم بالمعالجة بشكل غير متزامن: لا تقم بحظر استجابات الويب هوك بعمليات ثقيلة
- سجل كل شيء: احتفظ بسجلات مفصلة لأغراض التصحيح والتدقيق
تجربة المستخدم
- تواصل بوضوح: أبلغ العملاء عن تغييرات الفوترة والتوقيت
- قدم تأكيدات: أرسل رسائل تأكيد عبر البريد الإلكتروني لتغييرات الخطط الناجحة
- تعامل مع الحالات الشاذة: اعتبر فترات التجربة، النسب المئوية، والمدفوعات الفاشلة
- قم بتحديث واجهة المستخدم على الفور: عكس تغييرات الخطط في واجهة تطبيقك
المشكلات الشائعة والحلول
حل المشكلات النموذجية التي تواجهها أثناء تغييرات خطة الاشتراك:تم إنشاء التحصيل ولكن الاشتراك لم يتم تحديثه
تم إنشاء التحصيل ولكن الاشتراك لم يتم تحديثه
- فشل معالجة الويب هوك أو تأخيره
- عدم تحديث حالة التطبيق بعد تلقي الويب هوك
- مشكلات في معاملات قاعدة البيانات أثناء تحديث الحالة
- تنفيذ معالجة ويب هوك قوية مع منطق إعادة المحاولة
- استخدام عمليات غير قابلة للتكرار لتحديثات الحالة
- إضافة مراقبة لاكتشاف وتنبيه الأحداث المفقودة للويب هوك
- تحقق من أن نقطة نهاية الويب هوك قابلة للوصول وتستجيب بشكل صحيح
الائتمانات غير مطبقة بعد التخفيض
الائتمانات غير مطبقة بعد التخفيض
- توقعات وضع النسبة المئوية: التخفيضات تعطي ائتمان الفرق الكامل لسعر الخطة مع
difference_immediately، بينماprorated_immediatelyينشئ ائتمان نسبي بناءً على الوقت المتبقي في الدورة - الائتمانات محددة بالاشتراك ولا تنتقل بين الاشتراكات
- رصيد الائتمان غير مرئي في لوحة معلومات العميل
- استخدم
difference_immediatelyللتخفيضات عندما تريد ائتمانات تلقائية - اشرح للعملاء أن الائتمانات تنطبق على التجديدات المستقبلية لنفس الاشتراك
- تنفيذ بوابة العملاء لعرض أرصدة الائتمان
- تحقق من معاينة الفاتورة التالية لرؤية الائتمانات المطبقة
فشل التحقق من توقيع الويب هوك
فشل التحقق من توقيع الويب هوك
- مفتاح سر الويب هوك غير صحيح
- تم تعديل جسم الطلب الخام قبل التحقق من التوقيع
- خوارزمية التحقق من التوقيع غير صحيحة
- تحقق من أنك تستخدم
DODO_WEBHOOK_SECRETالصحيح من لوحة التحكم - اقرأ جسم الطلب الخام قبل أي وسائط تحليل JSON
- استخدم مكتبة التحقق من الويب هوك القياسية لمنصتك
- اختبر التحقق من توقيع الويب هوك في بيئة التطوير
فشل تغيير الخطة مع خطأ 422
فشل تغيير الخطة مع خطأ 422
- معرف الاشتراك أو معرف المنتج غير صالح
- الاشتراك ليس في حالة نشطة
- المعلمات المطلوبة مفقودة
- المنتج غير متاح لتغييرات الخطط
- تحقق من أن الاشتراك موجود ونشط
- تحقق من أن معرف المنتج صالح ومتاح
- تأكد من تقديم جميع المعلمات المطلوبة
- راجع وثائق واجهة برمجة التطبيقات لمتطلبات المعلمات
فشل التحصيل الفوري أثناء تغيير الخطة
فشل التحصيل الفوري أثناء تغيير الخطة
- عدم كفاية الأموال على وسيلة الدفع الخاصة بالعميل
- وسيلة الدفع منتهية الصلاحية أو غير صالحة
- البنك رفض المعاملة
- اكتشاف الاحتيال حظر التحصيل
- التعامل مع أحداث الويب هوك
payment.failedبشكل مناسب - إخطار العميل بتحديث وسيلة الدفع
- تنفيذ منطق إعادة المحاولة للفشل المؤقت
- النظر في السماح بتغييرات الخطط مع فشل التحصيل الفوري
الاشتراك معلق بعد تغيير الخطة
الاشتراك معلق بعد تغيير الخطة
on_holdماذا يحدث:
عندما يفشل تحصيل رسوم تغيير الخطة، يتم تلقائيًا وضع الاشتراك في حالة on_hold. لن يتم تجديد الاشتراك تلقائيًا حتى يتم تحديث وسيلة الدفع.الحل: تحديث وسيلة الدفع لإعادة تفعيل الاشتراكلإعادة تفعيل الاشتراك من حالة on_hold بعد فشل تغيير الخطة:- تحديث وسيلة الدفع باستخدام واجهة برمجة التطبيقات لتحديث وسيلة الدفع
- إنشاء تحصيل تلقائي: تقوم واجهة برمجة التطبيقات تلقائيًا بإنشاء تحصيل للديون المتبقية
- إنشاء فاتورة: يتم إنشاء فاتورة للتحصيل
- معالجة الدفع: يتم معالجة الدفع باستخدام وسيلة الدفع الجديدة
- إعادة التفعيل: عند نجاح الدفع، يتم إعادة تفعيل الاشتراك إلى حالة
active
subscription.on_hold: تم وضع الاشتراك في حالة تعليق (يتم استلامها عندما يفشل تحصيل رسوم تغيير الخطة)payment.succeeded: تم الدفع للديون المتبقية بنجاح (بعد تحديث وسيلة الدفع)subscription.active: تم إعادة تفعيل الاشتراك بعد نجاح الدفع
- إخطار العملاء على الفور عندما يفشل تحصيل رسوم تغيير الخطة
- تقديم تعليمات واضحة حول كيفية تحديث وسيلة الدفع الخاصة بهم
- مراقبة أحداث الويب هوك لتتبع حالة إعادة التفعيل
- النظر في تنفيذ منطق إعادة المحاولة التلقائي لفشل الدفع المؤقت
مرجع واجهة برمجة التطبيقات لتحديث وسيلة الدفع
اختبار تنفيذك
اتبع هذه الخطوات لاختبار تنفيذ تغيير خطة الاشتراك بدقة:إعداد بيئة الاختبار
- استخدم مفاتيح واجهة برمجة التطبيقات للاختبار والمنتجات التجريبية
- إنشاء اشتراكات تجريبية مع أنواع خطط مختلفة
- تكوين نقطة نهاية الويب هوك التجريبية
- إعداد المراقبة والتسجيل
اختبار أوضاع النسبة المئوية المختلفة
- اختبار
prorated_immediatelyمع مواضع مختلفة لدورة الفوترة - اختبار
difference_immediatelyللترقيات والتخفيضات - اختبار
full_immediatelyلإعادة تعيين دورات الفوترة - التحقق من أن حسابات الائتمان صحيحة
اختبار معالجة الويب هوك
- تحقق من استلام جميع أحداث الويب هوك ذات الصلة
- اختبار التحقق من توقيع الويب هوك
- التعامل مع أحداث الويب هوك المكررة بسلاسة
- اختبار سيناريوهات فشل معالجة الويب هوك
اختبار سيناريوهات الأخطاء
- اختبار مع معرفات اشتراك غير صالحة
- اختبار مع وسائل دفع منتهية الصلاحية
- اختبار فشل الشبكة والمهلات
- اختبار مع أموال غير كافية
مراقبة في الإنتاج
- إعداد تنبيهات لتغييرات الخطط الفاشلة
- مراقبة أوقات معالجة الويب هوك
- تتبع معدلات نجاح تغيير الخطط
- مراجعة تذاكر دعم العملاء لمشكلات تغيير الخطط
معالجة الأخطاء
تعامل مع الأخطاء الشائعة في واجهة برمجة التطبيقات بسلاسة في تنفيذك:رموز حالة HTTP
200 OK
200 OK
400 Bad Request
400 Bad Request
401 Unauthorized
401 Unauthorized
404 Not Found
404 Not Found
422 Unprocessable Entity
422 Unprocessable Entity
500 Internal Server Error
500 Internal Server Error
تنسيق استجابة الخطأ
الخطوات التالية
- مراجعة واجهة برمجة التطبيقات لتغيير الخطة
- استكشاف الائتمانات الخاصة بالعملاء
- تنفيذ تنبيهات لـ
subscription.on_hold - تحقق من دليل تكامل الويب هوك