الانتقال إلى المحتوى الرئيسي

نظرة عامة

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

Handle Payment Failures

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

الرفض المؤقت مقابل الرفض الدائم

كل شفرة فشل تندرج في واحدة من فئتين. يحدد هذا الفرق ما إذا كان يجب عليك إعادة المحاولة لنفس طريقة الدفع أو طلب طريقة جديدة من العميل.
نوع الرفضماذا يعنيماذا تفعلأمثلة
رفض مؤقتمؤقت أو قابل للتصحيح — يمكن للبطاقة نفسها أن تنجح في محاولة لاحقة أو بمجرد أن يصحح العميل مدخلاته.من الآمن المحاولة مرة أخرى (بعد تأخير أو بمجرد أن يصحح العميل تفاصيله).INSUFFICIENT_FUNDS, GENERIC_DECLINE, CARD_VELOCITY_EXCEEDED, PROCESSING_ERROR, NETWORK_ERROR, NETWORK_TIMEOUT, TRY_AGAIN_LATER
رفض دائمنهائي — إعادة المحاولة بنفس البطاقة لن يغير النتيجة.لا تقم بإعادة محاولة نفس البطاقة. اطلب من العميل استخدام طريقة دفع مختلفة أو الاتصال بمصرفه.STOLEN_CARD, LOST_CARD, PICKUP_CARD, DO_NOT_HONOR, FRAUDULENT, INVALID_ACCOUNT
بالنسبة لتجديد الاشتراكات، يطبق Dodo Payments هذا التمييز تلقائيًا: يتم إعادة محاولة الرفض المؤقت بواسطة إعادة محاولة دفع الاشتراك، بينما يؤدي الرفض الدائم إلى إنهاء سلسلة المحاولات فورًا ويفضل التعامل معها باستخدام إدارة اشتراك الرفض.
لا تكشف عن السبب الحقيقي لـ STOLEN_CARD, LOST_CARD, PICKUP_CARD, أو FRAUDULENT للعميل. يمكن أن يؤدي توضيح هذه إلى تنبيه ممثل احتيالي. أظهر دائمًا رسالة رفض عامة للعميل (على سبيل المثال، “لقد تم رفض بطاقتك. يرجى الاتصال بمصرفك أو استخدام بطاقة أخرى.”) وسجل فقط الشفرة المحددة داخليًا.

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

يسرد الجدول التالي كل شفرة فشل، نوع الرفض، ما إذا كان يمكن للعميل حلها، الوصف، والإجراء الموصى به.
شفرة الفشلالنوعخطأ المستخدمالوصفالإجراء الموصى به
AUTHENTICATION_FAILUREمؤقتنعمفشل التحقق أثناء المعاملةاطلب من العميل إعادة المحاولة وإكمال التحقق 3DS، أو استخدام بطاقة أخرى
AUTHENTICATION_REQUIREDمؤقتنعممطلوب تحقق إضافي لإكمال المعاملةحث العميل على إتمام التحقق 3DS. بالنسبة لتجديد الاشتراكات، اطلب من العميل العودة والمصادقة
AUTHENTICATION_TIMEOUTمؤقتنعمانتهت مهلة عملية التحققاطلب من العميل إعادة المحاولة وإكمال التحقق فورًا
CARD_DECLINEDمؤقتلاتم رفض البطاقة من قبل البنك المصدر دون سبب محدد (رفض عام)اطلب من العميل إعادة المحاولة، الاتصال بمصرفه، أو استخدام بطاقة أخرى
CARD_NOT_ACTIVATEDمؤقتنعملم يقم حامل البطاقة بتفعيل البطاقةاطلب من العميل تفعيل البطاقة مع مصرفه، ثم إعادة المحاولة
CARD_VELOCITY_EXCEEDEDمؤقتنعمتم محاولة عدد كبير من المعاملات خلال فترة قصيرةاطلب من العميل الانتظار وإعادة المحاولة لاحقًا، أو الاتصادرة في البنك حول الحدود
CUSTOMER_CANCELLEDمؤقتنعمقام العميل بإلغاء المعاملةدع العميل يبدأ الخروج عندما يكون جاهزًا
DO_NOT_HONORدائملارفض البنك المصدرة المعاملة بشكل صريح (رمز ISO 8583 05 — لا تشرّف)؛ تعتبر الشبكات هذا نهائيًااطلب من العميل الاتصال بمصرفه؛ لا تقم بإعادة المحاولة نفس البطاقة
EXPIRED_CARDدائمنعمانتهت صلاحية البطاقةاطلب من العميل استخدام بطاقة بتاريخ صلاحية صالح
FRAUDULENTدائمنعمتم الإبلاغ عن المعاملة كمحتملة احتياليةأظهر للعميل رسالة رفض عامة — لا تكشف عن السبب. اطلب منه استخدام بطاقة أخرى
GENERIC_DECLINEمؤقتلاتم رفض المعاملة لسبب غير محدداطلب من العميل الاتصال بمصرفه أو تجربة بطاقة أخرى
INCORRECT_CVCمؤقتنعمكود CVC المقدم غير صحيحاطلب من العميل إعادة إدخال الكود CVC الصحيح
INCORRECT_NUMBERمؤقتنعمتم إدخال رقم البطاقة بشكل غير صحيحاطلب من العميل إعادة إدخال رقم البطاقة الصحيح
INSUFFICIENT_FUNDSمؤقتنعمليس هناك أموال كافية في الحساب لإتمام المعاملةاطلب من العميل استخدام طريقة دفع أخرى أو إعادة المحاولة عند توفر الأموال
INVALID_ACCOUNTدائمنعمتفاصيل الحساب المقدمة غير صالحةاطلب من العميل الاتصال بمصرفه أو استخدام بطاقة أخرى
INVALID_AMOUNTمؤقتنعممبلغ المعاملة غير صالحتحقق من المبلغ وأي حدود شراء مع العميل
INVALID_CARD_NUMBERمؤقتنعمصيغة رقم البطاقة غير صالحةاطلب من العميل إعادة إدخال رقم بطاقة صالح
INVALID_CARD_OWNERمؤقتنعممعلومات حامل البطاقة غير صالحةاطلب من العميل تصحيح اسم حامل البطاقة
INVALID_CVCمؤقتنعمصيغة CVC غير صالحةاطلب من العميل إعادة إدخال CVC صالح
INVALID_EXPIRY_YEARمؤقتنعمسنة انتهاء صلاحية البطاقة غير صالحةاطلب من العميل إدخال تاريخ انتهاء صلاحية صالح
INVALID_PINمؤقتنعمالرقم السري المقدم غير صحيحاطلب من العميل إعادة إدخال الرقم السري الصحيح
INVALID_REQUESTمؤقتنعمطلب المعاملة يحتوي على بيانات غير صالحةتحقق من حقول طلب الدفع وأعد الإرسال ببيانات صالحة
INVALID_UPI_IDمؤقتنعممعرف UPI المقدم غير صالحاطلب من العميل إدخال معرف UPI صالح
LIMIT_EXCEEDEDمؤقتنعمتتجاوز المعاملة حد البطاقة أو الحساباطلب من العميل الاتصال بمصرفه حول الحدود، أو استخدام طريقة أخرى
LIVE_MODE_TEST_CARDدائمنعمتم استخدام بطاقة اختبار في وضع الحياستخدم بطاقة حقيقية — ستفشل المحاولة باستخدام بطاقة الاختبار دائمًا في وضع الحي
LOST_CARDدائمنعمتم الإبلاغ عن البطاقة كضائعةأظهر للعميل رسالة رفض عامة — لا تكشف عن السبب. اطلب منه استخدام بطاقة أخرى
MANDATE_INVALIDمؤقتنعمأمر الدفع غير صالحاطلب من العميل إعداد أمر الدفع مرة أخرى
MANDATE_REQUIREDمؤقتنعممطلوب أمر لهذه المعاملةأعد إعداد الأمر واطلب من العميل تفويضه قبل الخصم
MANDATE_REQUIRED_SYSTEMدائملاالنظام يتطلب أمرًا لهذا النوع من المعاملاتتأكد من إتمام تدفق إعداد الأمر قبل الخصم
NETWORK_ERRORمؤقتلاحدث خطأ في الشبكة أثناء المعاملةمؤقت — أعد المحاولة بعد فترة قصيرة
NETWORK_TIMEOUTمؤقتلاانتهت مهلة طلب الشبكةمؤقت — أعد المحاولة بعد فترة قصيرة
ORDER_ALREADY_EXISTSمؤقتلاطلب موجود بالفعل لهذه المعاملة (إنشاء طلب مكرر)تحقق من حالة الطلب الحالي قبل إعادة المحاولة؛ اتصل بالدعم إذا استمر
ORDER_CREATION_FAILEDمؤقتلافشل في إنشاء الطلب للمعاملةخطأ مؤقت/النظام — أعد المحاولة؛ اتصل بالدعم إذا استمر
PAYMENT_METHOD_PROVIDER_DECLINEDدائمنعمرفض موفر طريقة الدفع المعاملةاطلب من العميل الاتصال بموفره أو استخدام طريقة دفع أخرى
PAYMENT_METHOD_UNSUPPORTEDدائمنعمالطريقة الدفع غير مدعومة لهذه المعاملةاطلب من العميل استخدام طريقة دفع مدعومة
PICKUP_CARDدائمنعمتم الإبلاغ عن البطاقة كضائعة أو مسروقة وتم وضع علامة عليها للتسليمأظهر للعميل رسالة رفض عامة — لا تكشف عن السبب. اطلب منه استخدام بطاقة أخرى
PROCESSING_ERRORمؤقتلاحدث خطأ أثناء معالجة المعاملةمؤقت — أعد المحاولة؛ إذا استمر، اطلب من العميل الاتصال بمصرفه
PROVIDER_UNSUPPORTEDدائملاموفر الدفع لا يدعم نوع هذه المعاملةاطلب من العميل استخدام طريقة دفع أخرى
REENTER_TRANSACTIONمؤقتنعمتحتاج المعاملة إلى إعادة الإدخالاطلب من العميل إعادة المحاولة
REVOCATION_OF_AUTHORIZATIONدائمنعمتم إلغاء تفويض المعاملةاطلب من العميل استخدام طريقة دفع أخرى
STOLEN_CARDدائمنعمتم الإبلاغ عن البطاقة كمُسروقةأظهر للعميل رسالة رفض عامة — لا تكشف عن السبب. اطلب منه استخدام بطاقة أخرى
SUBSCRIPTION_NOT_ACTIVEدائملاالاشتراك غير نشط، لذلك لم يتمكن من معالجة الشحنة المتكررةأعد تفعيل الاشتراك (على سبيل المثال، عن طريق تحديث طريقة الدفع) قبل محاولة الشحنة مرة أخرى
TRANSACTION_NOT_ALLOWEDدائمنعملا يسمح بإجراء المعاملة لهذه البطاقة أو الحساباطلب من العميل الاتصال بمصرفه للسماح بهذا النوع من المعاملات، أو استخدام بطاقة أخرى
TRANSACTION_NOT_APPROVEDدائمنعملم تتم الموافقة على المعاملةاطلب من العميل الاتصال بمصرفه أو محاولة بطاقة أخرى
TRY_AGAIN_LATERمؤقتلايجب إعادة محاولة المعاملة لاحقًامؤقت — أعد المحاولة لاحقًا
UNKNOWN_ERRORمؤقتلاحدث خطأ غير معروفأعد المحاولة؛ إذا استمر، اتصل بالدعم
خطأ المستخدم يشير إلى ما إذا كان يمكن للعميل حل رفض الدفع أم لا. عندما Yes، يمكن للعميل اتخاذ إجراء لإصلاح المشكلة (على سبيل المثال، إدخال تفاصيل البطاقة الصحيحة). عندما No، يعود الرفض إلى مشاكل على مستوى النظام أو قيود مصرفية لا يمكن للعميل حلها مباشرة.

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

اقرأ error_code من payment.failed webhook أو كائن الدفع، واربطه بالإجراء الموصى به أعلاه وقرر ما إذا كانت إعادة المحاولة مجدية. بالنسبة لتجديد الاشتراكات، يتم إعادة محاولة الرفض المؤقت تلقائيًا — انظر إعادة محاولة دفع الاشتراك. بالنسبة لأخطاء على مستوى API والمنطق التجاري (مثل PAYMENT_NOT_SUCCEEDED أو REFUND_WINDOW_EXPIRED) التي ليست حالات رفض للبطاقات، راجع مرجع رموز الأخطاء.

ذات صلة

Handle Payment Failures

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

Error Codes

رموز الأخطاء على مستوى API والمنطق التجاري للمعاملات غير الفاشلة.

Subscription Payment Retries

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

Subscription Dunning

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

الدعم

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