نظرة عامة
الـ sandbox هو المكان الذي تثبت فيه أن تكاملك يتعامل مع الرفض والاسترداد والدفعة غير المؤكدة — وهي نتائج لا يمكنك إنتاجها عند الطلب بأموال حقيقية.معرّف الحساب الذي ترسله هو الذي يختار النتيجة. وكل سيناريو أدناه حتمي: المعرّف نفسه يُنتج دائماً النتيجة نفسها.يستخدم الـ sandbox نفس المضيف، ونفس المسارات، ونفس ترويسة المفتاح التي يستخدمها الإنتاج. الشيء الوحيد الذي يتغيّر هو المفتاح. استدعِ التحقق من مفتاح API واقرأ
key.type لتأكيد البيئة التي أنت فيها.ما الذي يبقى كما هو
كل ما يهم كودك:- الـ base URL، وهو
https://billapi.oneclickdz.com - ترويسة
X-Access-Token - المسارات الثمانية جميعها
- غلاف الاستجابة و
requestIdوترويسةX-Request-Id - الحالات السبع ودورة الحياة غير المتزامنة
- الاستطلاع، وعدم التكرار عبر
ref، وحمايتا403/409 - أكواد الأخطاء وحالات HTTP المقابلة لها
ما الذي يختلف
- طلب الـ sandbox لا يصل أبداً إلى جهة مُصدِرة للفاتورة ولا يحرّك أي مال.
- تُختار النتائج بمعرّف الحساب، لا بما يدين به الحساب فعلاً.
- يُعيد
GET /v3/partnersخريطة ثابتة بدلاً من التوفّر الحيّ. - تُعاد فواتير الـ sandbox بـ
fee: 0، فيساويtotalقيمةamount. اقرأfeeوtotalمن الاستجابة — ففي الإنتاج لن يكونا صفراً. - الانتقالات سريعة: يُحسم الاستكشاف في أقل من ثانية بكثير، والدفع في نحو نصف ثانية. أما سيناريو
UNKNOWNفيبقى عمداً نحو 60 ثانية كي تتمكن من اختبار مسار المراجعة لديك.
سيناريوهات سير العمل التجاري
أرسل المعرّف داخل كائنaccount للشريك المذكور. “الاستكشاف” هو ما تصل إليه المعاملة بعد POST /v3/bills/discover؛ و”الدفع” هو ما تصل إليه بعد POST /v3/bills/pay.صفّا SEAAL وصفّ AADL. كل من
SEAAL وAADL معطّل حالياً في البيئتين، ويجري هذا الفحص قبل اختيار سيناريو الـ sandbox — لذا تُجيب هذه المعرّفات الثلاثة بـ 503 PARTNER_UNAVAILABLE بدلاً من النتيجة التي يصفها سيناريو كل منها. وهي مذكورة هنا لأنها تصبح قابلة للوصول لحظة إعادة تشغيل هاتين الجهتين. ولاختبار “لا فواتير مستحقة” و”حساب غير صالح” اليوم، استخدم صفوف ADE.سيناريوهات المصادقة والتحكّم
تشغيل كامل من البداية إلى النهاية في الـ sandbox
المسار السعيد لـADE، من الاستكشاف إلى الإيصال. كل قيمة أدناه حقيقية وقابلة لإعادة الإنتاج.استخدم
ref جديداً في كل تشغيل، وإلا فسيُجيب التشغيل الثاني بـ 403 DUPLICATED_REF. وإضافة عدّاد تشغيل الاختبار الخاص بك كلاحقة للـ ref هي أبسط الطرق.التحقق الموصى به من التكامل
ثلاثة فحوص تثبت العقد قبل أن تمضي أبعد:1
تحقّق من شكل /v3/validate
account.id وaccount.status وaccount.currency وkey.type كلها موجودة، وقيمة key.type هي SANDBOX.2
تأكّد من خريطة /v3/partners
خمسة مفاتيح، لكل منها
status بقيمة ACTIVE أو UNAVAILABLE، بما في ذلك Algérie Télécom بعلامات التشكيل الفرنسية الموجودة فيه.3
نفّذ دورة كاملة واحدة
استكشاف ودفع وبحث بالـ
ref — بما يثبت أن ref الخاص بك يعيدك إلى المعاملة التي أنشأتها.سيناريوهات تستحق الأتمتة
إلى جانب المسار السعيد، هذه الأربعة هي التي تكشف الأخطاء الحقيقية:الانتقال إلى الإنتاج
1
بدّل المفتاح ولا تغيّر شيئاً آخر
نفس الـ base URL، ونفس الترويسة، ونفس المسارات. قيمة المفتاح وحدها هي التي تتغيّر.
2
تحقّق من البيئة عند الإقلاع
استدعِ
/v3/validate وأفشِل تسلسل الإقلاع إذا لم تكن قيمة key.type هي ما يتوقعه ذلك النشر.→ التحقق من مفتاح API3
أعد قراءة fee وtotal من الاستجابة
يُعيد الـ sandbox القيمة
fee: 0. أما الإنتاج فلا. وإذا افترض أي جزء من كودك أن الرسوم صفر، فسينكسر هنا.4
تأكّد أن مستطلِعك يتعامل مع UNKNOWN
في الإنتاج هذه الحالة نادرة ومكلفة إن أخطأت في معالجتها. أثبت وجود هذا الفرع قبل أن تحتاج إليه.
5
تأكّد أن مهمة المطابقة لديك تعمل
ينبغي أن تكون قد عملت على الـ sandbox من قبل دون أن تجد شيئاً. وفي أول يوم إنتاج تكون شبكة الأمان الخاصة بك.→ الإيصالات والمطابقة
6
احتفظ بمفتاح sandbox
كل تغيير مستقبلي يُختبر على هذه السيناريوهات قبل أن يصل إلى الإنتاج.
قائمة تحقّق الانتقال إلى الإنتاج
أفضل الممارسات
أتمت السيناريوهات الأربعة الصعبة
فواتير فارغة، ورفض، واسترداد، ومراجعة. جميعها حتمية النتيجة، لذا تنتمي إلى مجموعة اختباراتك.
لا تفترض التوفّر انطلاقاً من الـ sandbox
خريطة شركاء الـ sandbox ثابتة. أما توفّر الإنتاج فحيّ ومتغيّر.
غيّر الـ ref في كل تشغيل
وإلا فسيفشل التشغيل الثاني لمجموعة اختباراتك بسبب
DUPLICATED_REF.استمر في الاختبار بعد الانتقال إلى الإنتاج
الـ sandbox لا يكلّف شيئاً. شغّل مجموعة الاختبارات مع كل إصدار.
صفحات ذات الصلة
التحقق من مفتاح API
أثبت البيئة التي ينتمي إليها المفتاح
نظرة عامة على دفع الفواتير
الخريطة المكوّنة من خمس خطوات
استطلاع الحالة
التعامل مع
UNKNOWN وREFUNDEDمعالجة الأخطاء
كل أكواد الأخطاء في مكان واحد

