Skip to main content

نظرة عامة

عند فشل محاولة دفع، تُرجع Dodo Payments رمز فشل موحّدًا يوضح السبب. تكون الرموز نفسها عبر طرق الدفع ومعالجات الدفع، لذا تغطي مجموعة واحدة من قواعد المعالجة كل دفعة فاشلة. يعرض webhook ‏payment.failed وكائن الدفع هذه الحقول للدفعة الفاشلة:
  • error_code: رمز فشل موحّد من الجدول أدناه.
  • error_message: شرح مكتوب لك، بصفتك التاجر. عندما يكون error_code أحد الرموز الموحّدة أدناه، يكون هذا الشرح عنوانًا مع الإجراء المقترح، وليس النص الخام من معالج الدفع.
  • retry_attempt: ‏0 للرسوم الأصلية، و1 أو أعلى لكل إعادة محاولة مجدولة لتجديد الاشتراك. تحتفظ الدفعات التي لا تمثل تجديدات اشتراك بالقيمة 0.
استخدم هذه الرموز لتقديم ملاحظات واضحة للعملاء، وتحديد ما إذا كانت إعادة المحاولة قد تنجح، واسترداد المزيد من الإيرادات.

نص التاجر مقابل نص العميل

يرتبط كل رمز فشل موحّد برسالتين، واحدة لك وأخرى لعميلك:
يعرض Customer Portal صياغة العميل في error_message، بينما تعرض merchant API صياغة التاجر للدفع نفسه. ويكون error_code متطابقًا في الحالتين.

Handle Payment Failures

دليل مطوّر خطوة بخطوة لقراءة هذه الرموز من webhooks وAPI، وعرضها للعملاء، وتحديد متى تجب إعادة المحاولة.

حالات الرفض المؤقت والدائم

يكون كل رمز فشل إما رفضًا مؤقتًا أو رفضًا نهائيًا. يوضح النوع ما إذا كانت محاولة لاحقة باستخدام تفاصيل الدفع نفسها قد تنجح، أو ما إذا كان يجب على العميل اتخاذ إجراء أولًا. بالنسبة إلى تجديدات الاشتراكات، تطبق Dodo Payments هذا التصنيف تلقائيًا. تعيد Subscription Payment Retries محاولة الدفعات المرفوضة مؤقتًا. ينهي الرفض النهائي سلسلة إعادة المحاولة فورًا؛ ويمكن استرداده باستخدام Subscription Dunning.
لا تكشف أبدًا للعميل السبب الحقيقي للرموز STOLEN_CARD أو LOST_CARD أو PICKUP_CARD أو FRAUDULENT. قد يؤدي كشف هذه الأسباب إلى تنبيه جهة احتيالية. اعرض للعميل رسالة رفض عامة، مثل “تم رفض بطاقتك. يُرجى التواصل مع مصرفك أو استخدام بطاقة أخرى.”، وسجّل الرمز المحدد داخليًا فقط.تطبق Dodo Payments هذه القاعدة على الواجهات التي تتحكم فيها. بالنسبة إلى هذه الرموز الأربعة، يعرض checkout وCustomer Portal ورسائل البريد الإلكتروني الخاصة بـ dunning رسالة رفض عامة، بينما يحتفظ نص التاجر بالسبب الحقيقي. طبّق القاعدة نفسها في أي موضع تعرض فيه error_message من merchant API إلى عميل.

أسباب فشل المعاملات

يسرد الجدول التالي كل رمز فشل، مع نوع الرفض، وما إذا كان بإمكان العميل حله، والوصف، والإجراء المقترح.
يوضح خطأ المستخدم ما إذا كان بإمكان العميل حل الرفض. يعني Yes أن بإمكان العميل إصلاح المشكلة، مثل إدخال تفاصيل البطاقة الصحيحة. أما No فيعني أن الرفض ناتج عن مشكلة على مستوى النظام أو تقييد من المصرف، ولا يستطيع العميل حله مباشرة.
يمكن للبنك المُصدِر أيضًا رفض البطاقة لأن محرّك المخاطر الخاص به يصنّف حامل البطاقة على أنه عالي المخاطر، بصرف النظر عن التاجر أو تفاصيل المعاملة. تظهر عمليات الرفض هذه عادةً على شكل رموز عامة مثل DO_NOT_HONOR أو GENERIC_DECLINE أو CARD_DECLINED أو TRANSACTION_NOT_APPROVED أو FRAUDULENT. لا يشارك البنك السبب المحدد، ولا يمكن لـ Dodo Payments أو التاجر تجاوز هذا القرار. اطلب من العميل التواصل مع بنكه لحل سبب وضع علامة المخاطر، أو استخدام بطاقة أو طريقة دفع مختلفة.

معالجة حالات الفشل برمجيًا

اقرأ error_code من webhook ‏payment.failed أو من كائن الدفع، واربطه بالإجراء المقترح في الجدول، ثم قرر ما إذا كنت ستعيد المحاولة. بالنسبة إلى تجديدات الاشتراك، تعيد Dodo Payments محاولة الدفعات المرفوضة مؤقتًا نيابةً عنك. راجع Subscription Payment Retries. بالنسبة إلى أخطاء API وأخطاء منطق الأعمال التي لا تمثل رفضًا للبطاقة، مثل PAYMENT_NOT_SUCCEEDED أو REFUND_WINDOW_EXPIRED، راجع مرجع Error Codes.

ذات صلة

Handle Payment Failures

دليل شامل لاكتشاف المدفوعات الفاشلة وعرضها وإعادة محاولتها.

Error Codes

رموز أخطاء API وأخطاء منطق الأعمال للفشل الذي لا يتعلق بالرفض.

Subscription Payment Retries

إعادات المحاولة التلقائية التي تستعيد حالات الرفض المؤقتة أثناء تجديدات الاشتراكات.

Subscription Dunning

تسلسلات بريد إلكتروني تستعيد حالات الرفض الدائمة من خلال طلب تحديث طريقة الدفع.

الدعم

لمزيد من المساعدة بشأن حالات فشل المعاملات أو مشكلات التكامل، تواصل مع فريق الدعم عبر support@dodopayments.com.
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦