تعيد Payment Retries تحصيل مدفوعات التجديد الفاشلة للاشتراكات تلقائيًا وفق جدول زمني متدرج. عند نجاح إعادة المحاولة، يعود الاشتراك إلى
active، دون أي إجراء من العميل ودون الحاجة إلى أي عمل تكاملي.ما هي Payment Retries؟
عند فشل دفعة تجديد الاشتراك، ينتقل الاشتراك إلىon_hold، أو إلى past_due إذا ضبطت فترة سماح. عند تفعيل Payment Retries، تعيد Dodo Payments تحصيل المبلغ من وسيلة الدفع المحفوظة للعميل وفق جدول زمني، حتى تنجح عملية التحصيل أو تنتهي نافذة الاسترداد.
تسترد إعادة المحاولة الإيرادات المفقودة بسبب حالات الفشل المؤقتة، مثل وجود حجز مؤقت على البطاقة، أو عدم كفاية الرصيد الذي يضيف العميل إليه أموالًا لاحقًا، أو خطأ مؤقت في الشبكة. لا يتلقى العميل أي بريد إلكتروني ولا يحتاج إلى تغيير أي شيء.
تنطبق Payment Retries على مدفوعات تجديد الاشتراكات فقط. لا تتم إعادة محاولة الدفعة الأولى للاشتراك (إعداد التفويض)، أو المدفوعات لمرة واحدة، أو رسوم تغيير الخطة، أو الرسوم عند الطلب.
آلية عمل Payment Retries
1
Renewal fails
تفشل دفعة تجديد الاشتراك، وينتقل الاشتراك إلى
on_hold، أو إلى past_due خلال فترة سماح.2
Retryability check
تتحقق Dodo Payments من رمز خطأ الفشل. تكون حالات الرفض اللينة، مثل عدم كفاية الرصيد أو الرفض العام أو خطأ المعالجة أو الشبكة، قابلة لإعادة المحاولة. أما حالات الرفض الصلبة فتنهي سلسلة إعادة المحاولة، لأن محاولة أخرى لن تغير النتيجة. ويُعد الفشل الذي لا يتضمن رمز خطأ حالة رفض صلبة.
3
Scheduled retry
إذا كان الرفض قابلًا لإعادة المحاولة وكانت المحاولة التالية ستقع ضمن نافذة الاسترداد، تجدولها Dodo Payments. كل إعادة محاولة هي عملية تحصيل خارج الجلسة من وسيلة الدفع المحفوظة للعميل، ويُحتسب كل تأخير بدءًا من الفشل السابق.
4
Recovery
عند نجاح أول إعادة محاولة، يعود الاشتراك إلى
active، وينتقل تاريخ الفوترة التالي إلى فترة فوترة واحدة بعد إعادة المحاولة الناجحة. إذا أُغلقت النافذة قبل نجاح أي إعادة محاولة، تتوقف إعادة المحاولة ويحتفظ الاشتراك بحالته، مثل on_hold.إعداد Payment Retries
فعّل Payment Retries واضبطه من Settings → Recovery في لوحة التحكم.
Payment Retries settings under Settings → Recovery
تبدأ نافذة الاسترداد عند إنشاء الفاتورة الخاصة بالتجديد الفاشل. تجدول Dodo Payments محاولة فقط إذا كان مجموع جميع التأخيرات حتى تلك المحاولة يقع ضمن النافذة، وفقط ما دامت النافذة مفتوحة.
جدول إعادة المحاولة
تزداد فترات الانتظار بين محاولات الإعادة تدريجيًا. تجري Dodo Payments ما يصل إلى 8 محاولات، ما دام كل منها يقع ضمن نافذة الاسترداد لديك:انتقالات حالة الاشتراك
تنقل إعادة المحاولة الاشتراك بين الحالات التالية:عند إلغاء الاشتراك، تنتهي سلسلة إعادة المحاولة ولا تُجرى أي محاولات أخرى. تستمر كل حالة أخرى (
on_hold، past_due، expired، pending، failed) في إعادة المحاولة، لأن فاتورة التجديد المفتوحة تمثل دينًا عن فترة سبق أن استخدمها العميل. وتتوقف إعادة المحاولة أيضًا عند سداد الفاتورة بطريقة أخرى، مثل تحديث العميل لوسيلة الدفع، أو عند إضافة العميل إلى قائمة الحظر.Subscription Webhook Payloads
اعرض مخططات حمولة webhook الكاملة لأحداث دورة حياة الاشتراك.
حالات الفشل القابلة لإعادة المحاولة وغير القابلة لها
يحدد رمز الخطأ الخاص بأحدث فشل ما إذا كانت السلسلة ستستمر:لن تؤدي إعادة محاولة الرفض الصلب إلى تغيير النتيجة، لذا تنتهي السلسلة فور حدوث رفض صلب. اجمع بين Payment Retries وSubscription Dunning لطلب وسيلة دفع جديدة من العميل في هذه الحالات. لمعرفة نوع كل رمز، راجع Transaction Failures.
إعادة المحاولة عند الطلب
لست مضطرًا إلى انتظار المحاولة المجدولة التالية. أثناء كون الاشتراك فيon_hold، يمكنك إرسال إعادة محاولة من صفحة تفاصيل الدفعة الفاشلة في لوحة التحكم، أو باستخدام POST /payments/{payment_id}/retry. تعمل إعادة المحاولات اليدوية بشكل مستقل عن الجدول: لا تستهلك محاولة تلقائية ولا تؤجلها، وتعمل حتى عند إيقاف Payment Retries. راجع Manual Payment Retry.
Payment Retries مقابل Dunning
يسترد Payment Retries وSubscription Dunning نوعين مختلفين من حالات الفشل:
فعّل كليهما للحصول على أوسع تغطية: تلتقط إعادة المحاولة التلقائية حالات الفشل المؤقتة، بينما يعيد Dunning العملاء الذين تحتاج وسيلة دفعهم إلى الاستبدال.
ذات صلة
Manual Payment Retry
أرسل إعادة محاولة فورًا بدلًا من انتظار المحاولة المجدولة التالية.
Subscription Dunning
تسلسلات بريد إلكتروني تطلب من العملاء تحديث وسيلة الدفع الخاصة بهم.
Abandoned Cart Recovery
استرد عمليات الدفع المتروكة أو الفاشلة باستخدام رسائل البريد الإلكتروني للاسترداد.
Subscriptions
حالات الاشتراك التي تنتقل بينها مسارات الاسترداد.
Subscription Webhooks
استجب لأحداث
subscription.on_hold وsubscription.active.