التوثيق
البداية

وضع الاختبار وبطاقات الاختبار

ابنِ واختبر الدمج بتاعك مع XPay من الأول للآخر من غير ما تحرّك فلوس حقيقية.

وضع الاختبار بيئة منفصلة تمامًا بتحاكي الحساب الفعلي: نفس الـ API، ونفس حمولات الـ webhook، ونفس واجهة لوحة التحكم، وكل حاجة تانية منفصلة. الحسابات الجديدة بتبدأ في وضع الاختبار وبتفضل فيه لحد ما نشاطك يتوافق عليه للدفع الفعلي.

وضع الاختبار هو المكان اللي بتبني وتختبر وتكسّر فيه. مفيش أي حاجة بتعملها في وضع الاختبار بتمس بطاقة حقيقية، ولا عملاءك الفعليين، ولا رصيدك الفعلي.

إيه المنفصل وإيه المتشابه

في وضع الاختبارفي الحساب الفعلي
مفاتيح API pk_test_... وsk_test_...مفاتيح API pk_live_... وsk_live_...
عملاء ومعاملات وتسويات اختباريةعملاء ومعاملات وتسويات فعلية
سجل رصيد اختباري منفصل عن الفعليسجل رصيد فعلي
نقاط نهاية webhook اختبارية (بتتظبط لوحدها)نقاط نهاية webhook فعلية
نفس أشكال طلبات وردود الـ APIنفس الشيء
نفس أحداث الـ webhook والبيانات اللي بتحملهانفس الشيء
نفس واجهة لوحة التحكم، مع شريط ولون برتقالي خفيفنفس الواجهة، من غير شريط

لما تنتقل للحساب الفعلي، مش بتغيّر أي كود. بس بتبدّل مفاتيح الاختبار بمفاتيح الحساب الفعلي وتظبط نقاط نهاية webhook فعلية.

تقدر تختبر إيه

  • مدفوعات البطاقات بنتايج نجاح وفشل متوقّعة (شوف الجدول تحت).
  • تدفّقات 3D Secure، بما فيها النجاح والفشل والإلغاء وانتهاء المهلة (عن طريق محاكي ACS).
  • المبالغ المستردة، كاملة أو جزئية، من لوحة التحكم أو الـ API.
  • الـ Webhooks لنقطة نهاية حقيقية أو محلية، بما فيها إعادة المحاولة وإعادة الإرسال من لوحة التحكم.
  • الدفع المستضاف، وDrop-in، وواجهة Elements بالكامل من الأول للآخر.
  • التسويات، بمحاكاة على جدول الاختبار.

بطاقات الاختبار

XPay بيقبل أربع بطاقات اختبار في وضع الاختبار. رقم البطاقة بيحدّد البنك المُصدِر والشبكة، وتاريخ الانتهاء بيحدّد نتيجة الدفع.

الشبكةالبنك المُصدِررقم البطاقةالعملة
Mastercardالبنك الأهلي المصري5123 4500 0000 0008EGP
Visaبنك مصر4508 7500 1574 1019EGP
Mastercardكريدي أجريكول مصر5111 1111 1111 1118EGP
Mastercardدولية2223 0000 0000 0007USD

أي رقم بطاقة تاني بيترفض في وضع الاختبار. البطاقة الدولية هي اللي تستخدمها لما تحب تختبر شريحة الرسوم الدولية.

نتيجة الدفع حسب تاريخ الانتهاء

في وضع الاختبار، تاريخ الانتهاء هو اللي بيقرّر الدفعة هتنجح ولا هتفشل، وهتفشل إزاي. رقم البطاقة نفسه ملوش دخل.

تاريخ الانتهاءالنتيجة
01/39APPROVED
05/39DECLINED
01/27INSUFFICIENT_FUNDS
04/27EXPIRED_CARD
08/28TIMED_OUT
01/37ACQUIRER_SYSTEM_ERROR
02/37UNSPECIFIED_FAILURE
05/37UNKNOWN

استخدم 01/39 للمسار الناجح. واستخدم الباقي علشان تتأكد إن كودك بيتعامل صح مع حالات الفشل الواقعية: الـ Payment Intent بينتقل لـ payment_failed، والـ Charge بياخد failure_code، وبيوصلك الـ webhooks المطابقة (payment_intent.payment_failed، charge.failed).

نتيجة الـ CVV حسب قيمته

الـ CVV بيتحكم في نتيجة مطابقة الـ CVV اللي بتظهر على الـ Charge الناتج.

CVVالنتيجة
100MATCH
101NOT_PROCESSED
102NO_MATCH

استخدم 100 إلا لو بتختبر التعامل مع عدم تطابق الـ CVV.

الـ 3D Secure في وضع الاختبار

كل دفعة اختبار بتمر بتدفّق تحدّي 3D Secure 2 الكامل عن طريق محاكي الـ sandbox بتاع XPay. بعد ما تبعت نموذج البطاقة، بتظهر صفحة ACS (سيرفر التحكم في الوصول) بتختار منها نتيجة المصادقة:

  • نجاح. بيكمّل الدفعة على المسار الناجح.
  • رفض. البنك المُصدِر بيرفض التحدّي. الدفعة بتفشل بـ authentication_required أو card_declined على حسب رد البنك.
  • إلغاء. العميل بيقفل التحدّي.
  • انتهاء المهلة. مفيش رد جوّه المهلة اللي حدّدها البنك المُصدِر.

كده تقدر تختبر فروع فشل الـ 3DS في الدمج بتاعك من غير ما تدوّر على بطاقة حقيقية فاشلة.

رايح فين بعد كده

في الصفحة دي