Skip to main content

نظرة عامة

الـ 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 ثانية كي تتمكن من اختبار مسار المراجعة لديك.
الـ sandbox ليس اختبار حمل ولا اختبار توفّر. فالجهة المُصدِرة للفاتورة التي تكون ACTIVE في خريطة الـ sandbox قد تكون معطّلة في الإنتاج — تعامل مع 503 PARTNER_UNAVAILABLE بغضّ النظر عمّا أخبرك به الـ sandbox.

سيناريوهات سير العمل التجاري

أرسل المعرّف داخل كائن account للشريك المذكور. “الاستكشاف” هو ما تصل إليه المعاملة بعد POST /v3/bills/discover؛ و”الدفع” هو ما تصل إليه بعد POST /v3/bills/pay.
صفّا SEAAL وصفّ AADL. كل من SEAAL وAADL معطّل حالياً في البيئتين، ويجري هذا الفحص قبل اختيار سيناريو الـ sandbox — لذا تُجيب هذه المعرّفات الثلاثة بـ 503 PARTNER_UNAVAILABLE بدلاً من النتيجة التي يصفها سيناريو كل منها. وهي مذكورة هنا لأنها تصبح قابلة للوصول لحظة إعادة تشغيل هاتين الجهتين. ولاختبار “لا فواتير مستحقة” و”حساب غير صالح” اليوم، استخدم صفوف ADE.
الصيغ الكاملة للكائنات، للنسخ:

سيناريوهات المصادقة والتحكّم

نفّذ الثلاثة جميعاً. ومسار 403 DUPLICATED_REF تحديداً هو ما يعتمد عليه منطق التعافي لديك — فإذا فاجأت إعادة استخدام ref كودك في الـ sandbox، فستفاجئه في الإنتاج مع وجود أموال حقيقية.

تشغيل كامل من البداية إلى النهاية في الـ 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 هي ما يتوقعه ذلك النشر.التحقق من مفتاح API
3

أعد قراءة fee وtotal من الاستجابة

يُعيد الـ sandbox القيمة fee: 0. أما الإنتاج فلا. وإذا افترض أي جزء من كودك أن الرسوم صفر، فسينكسر هنا.
4

تأكّد أن مستطلِعك يتعامل مع UNKNOWN

في الإنتاج هذه الحالة نادرة ومكلفة إن أخطأت في معالجتها. أثبت وجود هذا الفرع قبل أن تحتاج إليه.
5

تأكّد أن مهمة المطابقة لديك تعمل

ينبغي أن تكون قد عملت على الـ sandbox من قبل دون أن تجد شيئاً. وفي أول يوم إنتاج تكون شبكة الأمان الخاصة بك.الإيصالات والمطابقة
6

احتفظ بمفتاح sandbox

كل تغيير مستقبلي يُختبر على هذه السيناريوهات قبل أن يصل إلى الإنتاج.

قائمة تحقّق الانتقال إلى الإنتاج

أفضل الممارسات

أتمت السيناريوهات الأربعة الصعبة

فواتير فارغة، ورفض، واسترداد، ومراجعة. جميعها حتمية النتيجة، لذا تنتمي إلى مجموعة اختباراتك.

لا تفترض التوفّر انطلاقاً من الـ sandbox

خريطة شركاء الـ sandbox ثابتة. أما توفّر الإنتاج فحيّ ومتغيّر.

غيّر الـ ref في كل تشغيل

وإلا فسيفشل التشغيل الثاني لمجموعة اختباراتك بسبب DUPLICATED_REF.

استمر في الاختبار بعد الانتقال إلى الإنتاج

الـ sandbox لا يكلّف شيئاً. شغّل مجموعة الاختبارات مع كل إصدار.

صفحات ذات الصلة

التحقق من مفتاح API

أثبت البيئة التي ينتمي إليها المفتاح

نظرة عامة على دفع الفواتير

الخريطة المكوّنة من خمس خطوات

استطلاع الحالة

التعامل مع UNKNOWN وREFUNDED

معالجة الأخطاء

كل أكواد الأخطاء في مكان واحد