الاختبار في sandbox دون إنفاق الرصيد

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

Short answer

sandbox هو وضع على مستوى التطبيق، لا مفتاح داخل تطبيقك الفعلي. أنشئ تطبيقًا ثانيًا في وضع sandbox، واستخدم مفتاح API الخاص به، وسيُحاكى كل فحص، ولن يُفوتر شيء، ويمكنك فرض أي نتيجة تريدها. إذا كنت ترى تطبيق إنتاج واحدًا فقط، فأنت بحاجة إلى إنشاء تطبيق sandbox؛ الوضع يُختار لكل تطبيق على حدة.

sandbox في Didit هو مكافئ بطاقات الاختبار لدى مزوّد دفع: يتيح لك إعادة إنتاج أي نتيجة تحقق عند الطلب، دون استدعاء مزوّدين حقيقيين، أو التعامل مع بيانات شخصية حقيقية، أو المساس برصيدك.

#sandbox وضع على مستوى التطبيق

هذا هو الجزء الذي يوقع فيه معظم الناس. التطبيق الفعلي وتطبيق sandbox هما تطبيقان منفصلان داخل المؤسسة نفسها، لذا لا تختلط حركة الاختبار ببيانات الإنتاج أبدًا. لكل تطبيق وضع إما live أو sandbox.

صفحة مفاتيح API في كونسول Didit، حيث ينتمي كل مفتاح إلى تطبيق واحد
  1. ينتمي المفتاح إلى تطبيق واحد؛ مفتاح تطبيق sandbox لا يستطيع لمس الجلسات الفعلية.
  2. أنشئ مفتاحًا منفصلًا للاختبار بدلًا من إعادة استخدام المفتاح الفعلي.
المفاتيح لكل تطبيق، لذا لا يمكن لمفتاح sandbox أن يصل أبدًا إلى بيانات فعلية.
  1. أنشئ تطبيقًا ثانيًا

    في الكونسول، افتح مبدّل التطبيقات في الأعلى وأنشئ تطبيقًا جديدًا. اختر sandbox وضعًا له.

  2. استخدم مفتاح API الخاص بذلك التطبيق

    احصل على مفتاح API من API والـ Webhooks بينما تطبيق sandbox محدَّد. لا يوجد "مفتاح اختبار" منفصل على تطبيق فعلي؛ المفتاح هو البيئة نفسها.

  3. ابنِ سير عمل فيه

    لتطبيقات sandbox سير عملها الخاص. أعد بناء (أو انسخ) التدفق الذي تريد اختباره.

  4. أنشئ الجلسات كالمعتاد

    نفس نقطة النهاية، ونفس مسار الكود. الفرق الوحيد هو المفتاح الذي ترسله.

Note

إذا كان الكونسول لديك يعرض تطبيق إنتاج واحدًا فقط ولا توجد طريقة لإضافة تطبيق sandbox، اطلب من الدعم تفعيل إنشاء تطبيقات sandbox لمؤسستك؛ هذا إعداد على مستوى الحساب، لا شيء أعددته أنت بشكل خاطئ.

#ما الذي يغيّره sandbox وما لا يغيّره

sandboxالفعلي
المزوّدون الخارجيونكلهم مُحاكون، لا يُستدعى أي طرف ثالث أبدًاحقيقيون
الفوترةلا تُفوتر أبدًا؛ يُتجاوز فحص الرصيدتُفوتر لكل ميزة مكتملة
حد إنشاء الجلسات500 كل 24 ساعة، لكل تطبيقرصيدك
حمولة الـ webhook"environment": "sandbox""environment": "live"
البيانات والحالة المستخرجةمُحاكاة وفق السيناريو الذي تختارهمستمدة من الالتقاط الحقيقي
الوسائط الملتقطةتُخزَّن فعليًا، تمامًا مثل جلسة فعليةتُخزَّن
Important

يخزّن sandbox الوسائط التي يلتقطها: المستندات، الصورة الذاتية، فيديو فحص الحيوية، ملفات إثبات العنوان، تمامًا كما تفعل جلسة فعلية. النتيجة هي المحاكاة، لكن الرفع حقيقي، لذا استخدم المستندات النموذجية وبيانات الاختبار التي يوفرها التدفق بدلًا من مستند هوية حقيقي أو معلومات شخصية حقيقية.

بما أن النتائج لا تعتمد أبدًا على وحدات البكسل، فإن صورة سيئة عمدًا لن تُنتج رفضًا في sandbox. السيناريو هو ما يقرر.

#اختيار النتيجة

مرّر معرّف سيناريو كـ sandbox_scenario عند إنشاء الجلسة، أو اترك المختبِر يختار واحدًا: تعرض جلسات sandbox في التدفق المستضاف منتقي سيناريو داخل البطاقة قبل بدء الالتقاط، بالإضافة إلى شريط من المستندات النموذجية أسفل مكوّن الرفع وشعار دائم "بيانات اختبار فقط".

تغطي السيناريوهات النتائج التي تحتاجها فعلًا للبناء:

تريد اختبارالسيناريو
قبول كل شيءapprove
مستند منتهي الصلاحيةdecline_document_expired
مستند غير قابل للقراءةdecline_could_not_recognize_document
فشل التحقق من قيمة MRZdecline_mrz_validation
أقل من الحد الأدنى للعمرdecline_minimum_age
مطابقة وجه منخفضة جدًاdecline_face_match_low_similarity
هجوم تمثيل على فحص الحيويةdecline_liveness_attack
تطابق عقوبات / PEP في AMLdecline_aml_hit
عنوان IP محظورdecline_ip_blocklist
عدم تطابق العنوان في إثبات العنوانdecline_poa_address_mismatch
فشل سلامة شريحة NFCdecline_nfc_chip_not_verified
لم يجد التحقق من قاعدة البيانات أي تطابقdecline_database_no_match
يحتاج مراجعة يدوية (AML)review_aml_possible_match
يحتاج مراجعة يدوية (مطابقة وجه حدّية)review_face_match_borderline
يحتاج مراجعة يدوية (تطابق عنوان جزئي)review_poa_partial_match
عدم تطابق سجل KYBdecline_kyb_registry_mismatch

توجد سيناريوهات review_* لتتمكن من اختبار مسار المراجعة اليدوية بالكامل: طابور مراجعة الكونسول، وwebhook حالة In Review، وموافقة المراجع أو طلبه إعادة الإرسال، دون الحاجة إلى مدخل بدرجة رفض.

Tip

الكتالوج الحي للسيناريوهات والقيم السحرية يُقدَّم عبر الـ API نفسها على GET /v1/sandbox/scenarios/. إذا بدا أي معرّف هنا قديمًا، ثق بنقطة النهاية. مرجع كامل: اختبار sandbox.

#التمييز بين البيئتين في الكود الخاص بك

يحمل كل webhook حقل environment بقيمة "sandbox" أو "live". افرع بناءً على ذلك بدلًا من محاولة استنتاج البيئة من المفتاح، ولن تخلط أبدًا بين جلسة اختبارية وعميل حقيقي.

#ما لن يفعله sandbox

  • لن يُعيد بيانات سجل حقيقية لشركة حقيقية. يستخدم KYB في sandbox استجابات سجل مُحاكاة.
  • لن يرسل رسالة SMS أو بريدًا إلكترونيًا حقيقيًا. التحقق من الهاتف والبريد الإلكتروني مُحاكى، لذا لا يمكنك استخدام sandbox لمعاينة إمكانية توصيل رسالة حقيقية.
  • لن يستهلك رصيدك الشهري المجاني، وهذا يعني أيضًا أن تشغيلة sandbox لا تخبرك بشيء عن فحوصاتك المجانية المتبقية.

#إذا احتجت عمليات تحقق اختبارية حقيقية

بعض الأمور تتطلب فعليًا استدعاءً فعليًا: التحقق من أن خدمة قاعدة بيانات دولة معينة مُفعّلة لك، أو تأكيد توصيل SMS إلى مشغّل شبكة معين. هذا يحتاج شحن رصيد صغير على تطبيق فعلي بدلًا من sandbox. اسأل الدعم قبل إنفاق أي مبلغ عليه، حتى يتمكنوا من تأكيد أن الخدمة مُفعّلة فعليًا في حسابك أولًا.