عند فشل دفعة، يخبرك Dodo Payments بالسبب من خلال
error_code موحّد وerror_message قابل للفهم. يوضح هذا الدليل كيفية قراءة هذه الحقول، وتحديد ما إذا كانت إعادة المحاولة مجدية، واسترداد الدفعة دون كشف معلومات حساسة للعملاء.كيف يُبلغ Dodo Payments عن الفشل
تحمل كل دفعة فاشلة — سواء كانت عملية دفع لمرة واحدة أو تجديدًا لاشتراك — حقول الفشل نفسها في كائن الدفعة:يكون كل من
error_code وerror_message بقيمة null إلى أن تفشل الدفعة فعليًا. تحقق دائمًا من status أولًا، ثم اقرأ حقول الخطأ.webhook الخاص بـ payment.failed
الطريقة الأكثر موثوقية لاكتشاف الفشل هي webhook الخاص بـ payment.failed. يغلّف الحدث كائن الدفعة الكامل داخل data:
payment.failed payload
error_code ويوجّه المعالجة بناءً عليه:
تحديد ما إذا كانت إعادة المحاولة مناسبة: الرفض المؤقت مقابل الرفض النهائي
يخبركerror_code بما إذا كانت إعادة محاولة استخدام طريقة الدفع نفسها مجدية.
يسرد مرجع Transaction Failures نوع الرفض والإجراء الموصى به لكل
error_code.
معالجة حالات الفشل عند الدفع مقابل التجديد
تعتمد طريقة الاسترداد على ما إذا كان العميل حاضرًا.- At checkout (customer present)
- On subscription renewal (customer not present)
العميل يُجري عملية الدفع حاليًا. اعرض رسالة واضحة، وأتِح له إعادة المحاولة فورًا أو استخدام بطاقة أخرى.
requires_payment_method— لم يقدّم العميل طريقة دفع مطلقًا: إما أنه لم يُدخل بيانات البطاقة، أو طُلب منه إدخالها ولم يتخذ أي إجراء. هذه عادةً حالة تخلٍّ عن عملية الدفع وليست رفضًا — أعد إشراك العميل لإكمال الدفع (راجع استرداد السلة المتروكة).requires_customer_action— يلزم إجراء مصادقة إضافي (مثل 3DS)؛ اطلب من العميل إكماله. راجع معالجة 3D Secure.
إعادة محاولة دفعة فاشلة
- الاشتراكات: فعّل إعادة محاولات دفع الاشتراك لاسترداد حالات الرفض المؤقت دون الحاجة إلى أي عمل على مستوى الدمج. يمكنك أيضًا تشغيل الاسترداد عبر مطالبة العميل بتحديث طريقة الدفع من خلال Update Payment Method API، الذي يخصم أي مستحقات معلّقة.
- الدفعات لمرة واحدة: أعد إرسال صفحة الدفع أو
payment_linkحتى يتمكن العميل من المحاولة مجددًا باستخدام طريقة مختلفة. لا توجد إعادة محاولة تلقائية للدفعات لمرة واحدة.
عرض الأخطاء للعملاء بأمان
اعرض للعملاء رسالة ودية — وليسerror_code الخام مطلقًا.
Customer-facing messaging
ذات صلة
Transaction Failures
كل رمز من رموز الرفض، ونوعه، والإجراء الموصى به.
Error Codes
أخطاء API وأخطاء منطق الأعمال التي لا تُعد حالات رفض للبطاقات.
Subscription Payment Retries
الاسترداد التلقائي لحالات الرفض المؤقت أثناء تجديد الاشتراكات.
Subscription Dunning
تسلسلات البريد الإلكتروني التي تسترد حالات الرفض النهائي.
Payment Webhooks
مخطط الحمولة الكامل لأحداث الدفع.
Testing Failures
بطاقات اختبار تحاكي حالات الرفض وفشل التجديد.