Skip to main content
عند فشل عملية دفع، يوفر Dodo Payments رمز فشل موحدًا error_code ووصفًا مقروءًا للبشر error_message. يوضح هذا الدليل كيفية قراءة هذه الحقول، وتحديد ما إذا كان ينبغي إعادة المحاولة، واستعادة عملية الدفع بأمان.

كيف يُبلغ Dodo Payments عن الفشل

تحتوي كل عملية دفع فاشلة على هذه الحقول في كائن الدفع:
يكون كل من error_code وerror_message بقيمة null حتى تفشل عملية الدفع. تحقق دائمًا من status أولًا.
إن error_message موجّه إلى التاجر وقد يكشف أسبابًا مرتبطة بالاحتيال. لا تعرضه للعملاء مطلقًا. بدلاً من ذلك، اربط error_code بصياغة آمنة للعملاء (راجع عرض الأخطاء للعملاء بأمان).

Webhook الخاص بـ payment.failed

يُعد webhook ‏payment.failed الطريقة الأكثر موثوقية لاكتشاف الفشل. يغلّف الحدث كائن الدفع الكامل في data:
payment.failed payload
يقرأ المعالج البسيط error_code ويوجّه التدفق بناءً عليه:
تحقق دائمًا من توقيع webhook قبل معالجته. راجع دليل Webhooks للاطلاع على الإعداد الكامل، بما في ذلك التحقق من التوقيع وضمان عدم التكرار.

تحديد ما إذا كنت ستعيد المحاولة: حالات الرفض المؤقتة مقابل النهائية

يخبرك error_code ما إذا كانت إعادة المحاولة باستخدام طريقة الدفع نفسها تستحق العناء. راجع Transaction Failures للاطلاع على القائمة الكاملة لأنواع الرفض والإجراءات الموصى بها.

معالجة حالات الفشل عند الدفع مقابل التجديد

تعتمد طريقة الاسترداد على ما إذا كان العميل حاضرًا.
العميل يُجري عملية الدفع حاليًا. اعرض رسالة واضحة واسمح له بإعادة المحاولة أو استخدام بطاقة أخرى.
  • requires_payment_method — لم يقدّم العميل طريقة دفع مطلقًا. عادةً ما يعني هذا التخلي عن عملية الدفع، وليس رفضًا. أعد إشراك العميل لإكمال الدفع (راجع استعادة السلات المتروكة).
  • requires_customer_action — يلزم إجراء مصادقة إضافية (مثل 3DS). اطلب من العميل إكمالها. راجع 3D Secure.

إعادة محاولة دفعة فاشلة

الاشتراكات: فعّل إعادة محاولات دفع الاشتراكات لاستعادة حالات الرفض المؤقت تلقائيًا. لإعادة المحاولة فورًا بدلًا من الانتظار وفق الجدول، استخدم Manual Payment Retry من لوحة المعلومات أو API. يمكنك أيضًا بدء الاستعادة بأن يحدّث العميل طريقة الدفع عبر Update Payment Method API، الذي يخصم أي مستحقات معلّقة. المدفوعات لمرة واحدة: أعد إرسال صفحة الدفع أو payment_link حتى يتمكن العميل من المحاولة مجددًا باستخدام طريقة مختلفة. لا توجد إعادة محاولة تلقائية للمدفوعات لمرة واحدة.
لا تعاود محاولة حالات الرفض النهائي باستخدام البطاقة نفسها. تعتبر شبكات البطاقات تكرار حالات الرفض سلوكًا مسيئًا، مما يضر بمعدل التفويض لديك.

عرض الأخطاء للعملاء بأمان

اعرض للعملاء رسالة ودية، ولا تعرض مطلقًا error_code الخام أو error_message الموجّه إلى التاجر.
في الأسطح التي يتحكم فيها Dodo Payments (صفحة الدفع وCustomer Portal ورسائل البريد الإلكتروني الخاصة بالتحصيل)، تتم هذه المطابقة نيابةً عنك، بما في ذلك الرجوع إلى رسالة عامة لحالات الرفض المرتبطة بالاحتيال. تحتاج إلى المطابقة أدناه فقط عند عرض حالات الفشل في منتجك الخاص.
Customer-facing messaging
لا تكشف أبدًا السبب الحقيقي للحالات STOLEN_CARD أو LOST_CARD أو PICKUP_CARD أو FRAUDULENT. قد يؤدي عرض هذه الأسباب إلى تنبيه جهة احتيالية. اعرض رسالة عامة تفيد بالرفض، وسجّل error_code المحدد داخليًا فقط.

ذو صلة

Transaction Failures

كل رمز رفض ونوعه والإجراء الموصى به.

Error Codes

أخطاء API ومنطق الأعمال التي لا تُعد حالات رفض للبطاقات.

Subscription Payment Retries

الاستعادة التلقائية لحالات الرفض المؤقت في تجديدات الاشتراكات.

Subscription Dunning

تسلسلات البريد الإلكتروني التي تستعيد حالات الرفض النهائي.

Payment Webhooks

مخطط الحمولة الكامل لأحداث الدفع.

Testing Failures

بطاقات اختبار تحاكي حالات الرفض وفشل التجديد.
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦