أكواد أخطاء الدفع
كل قيمة لـ `lastPaymentError.code`، متجمّعة حسب اللي حصل. الـ URL بتاع كل إدخال هو قيمة `lastPaymentError.docUrl`.
الصفحة دي هي وجهة كل lastPaymentError.docUrl اللي كوده كود خطأ دفع. الإرساء (anchors) هنا بيطابق قيمة code، فـ https://docs.xpay.app/integrate/errors/payment-error-codes#card_declined بيوصلك مباشرةً للصف اللي تحت.
code بيقولك نوع الفشل إيه. لسبب البنك المحدّد على الرفض (lastPaymentError.declineCode)، شوف أكواد الرفض. للنموذج ونمط المعالِج، شوف أخطاء الدفع.
الرفض
الدفعة وصلت للبنك أو لمزوّد الدفع، وهو رفض. declineCode بيحمل السبب المحدّد وadviceCode بيقولك تعمل إيه بعد كده.
card_declined
دفعة بطاقة اترفضت. type: card_error. اقرا declineCode للسبب.
payment_declined
دفعة غير بطاقية (Valu، Fawry) اترفضت. type: payment_method_error. declineCode بيحمل السبب لما المزوّد يدّيه.
العميل ما كمّلش
payment_abandoned
العميل مشي قبل ما يخلّص خطوة مطلوبة: تحدّي 3D Secure، أو صفحة الدفع بتاعة المزوّد، أو دفع رقم مرجع Fawry قبل ما ينتهي. مفيش حاجة اتخصمت. العميل يقدر يدفع تاني على نفس جلسة الدفع.
اترفض قبل ما يوصل للبنك
type: processor_error. مفيش بطاقة اتخصم منها ومفيش بنك رفض أي حاجة. الإرشاد: do_not_try_again. في أول تلات أكواد إعادة المحاولة هتفشل بنفس الطريقة مهما كانت طريقة الدفع، فاتواصل مع دعم XPay ومعاك chargeId. processor_risk_blocked مختلف: الفحص بيتعمل على البطاقة والعملية دي بالذات، فبطاقة تانية ممكن تعدي.
processor_request_rejected
مزوّد الدفع رفض طلب الدفع قبل ما يوصل لشبكة البطاقات.
local_processor_rejected
نفس الفشل لطريقة دفع غير بطاقية: المزوّد رفض الطلب قبل ما يتعمل رقم مرجع قابل للدفع.
merchant_config_incomplete
إعداد حسابك لطريقة الدفع دي مش مكتمل، فالدفعة ما اتبعتتش.
processor_risk_blocked
فحص المخاطر منع البطاقة دي في العملية دي قبل ما توصل للبنك. اقترح على العميل بطاقة تانية.
المزوّد ما ردّش
type: processor_error. الإرشاد: try_again_later. إعادة المحاولة بنفس البطاقة هي الخطوة الصح.
processor_unavailable
مزوّد الدفع ما قدرش يخدم الطلب (مشغول أو فيه عطل). مفيش حاجة اتخصمت. إعادة المحاولة بعد شوية بتنجح.
processor_session_expired
جلسة الدفع انتهت قبل ما العملية تتبعت. مفيش حاجة اتخصمت. إعادة المحاولة بتفتح جلسة جديدة.
processor_no_response
المحاولة انتهت من غير رد من المزوّد، وXPay أكّد إن مفيش حاجة اتخصمت.
processor_error
المزوّد رجّع خطأ XPay ما قدرش يصنّفه، أو ما قدرناش نوصله. اقرا merchantMessage علشان تعرف اللي حصل.
رايح فين بعد كده
أكواد الرفض
سبب رفض البنك في lastPaymentError.declineCode. أكثر تفصيلًا من الأكواد اللي في الصفحة دي.
أخطاء الدفع
النموذج: إزاي lastPaymentError متشكّل وإزاي تتعامل معاه.
أكواد أخطاء API
المرجع التاني: الأكواد اللي بترجع في error.code على استدعاء API فاشل.
أخطاء API
مغلّف خطأ الـ API المتزامن.
مقدمة الأخطاء
رجوع للأول. خريطة المكانين.
أخطاء الدفع
لما عملية دفع لعميل تفشل، الخطأ بيقعد على حقل lastPaymentError بتاع Payment Intent. الشكل، والـ adviceCode، وإزاي تقسّم النص بين عميلك وفريقك.
أكواد الرفض
أسباب الرفض على مستوى البنك المُصدِر اللي بترجع في `lastPaymentError.declineCode`. بالإضافة لإزاي تقرا تمرير `networkDeclineCode` الخام.