बिना क्रेडिट खर्च किए सैंडबॉक्स में टेस्टिंग
सैंडबॉक्स एक प्रति-application मोड है जहां हर प्रोवाइडर मॉक होता है, कुछ भी बिल नहीं होता, और आप किसी भी ज़रूरी वेरिफिकेशन परिणाम को जबरन ला सकते हैं - approved, declined, या in review।
सैंडबॉक्स आपकी लाइव application के अंदर कोई स्विच नहीं, बल्कि एक application पर मोड है। सैंडबॉक्स मोड में दूसरी application बनाएं, उसकी API key इस्तेमाल करें, और हर चेक मॉक हो जाता है, कुछ भी बिल नहीं होता, और आप कोई भी परिणाम जबरन ला सकते हैं। अगर आपको सिर्फ़ एक प्रोडक्शन application दिखती है, तो आपको सैंडबॉक्स वाली बनानी होगी - मोड हर application के हिसाब से चुना जाता है।
Didit का सैंडबॉक्स किसी पेमेंट प्रोवाइडर के टेस्ट कार्ड जैसा है: यह आपको बिना असली प्रोवाइडर को कॉल किए, बिना असली पर्सनल डेटा हैंडल किए, और बिना अपना बैलेंस छुए, मांगे जाने पर किसी भी वेरिफिकेशन परिणाम को दोहराने देता है।
#सैंडबॉक्स एक application पर मोड है
यही वह हिस्सा है जिसमें ज़्यादातर लोग अटक जाते हैं। Live और sandbox एक ही ऑर्गेनाइज़ेशन के अंदर अलग-अलग application होते हैं, इसलिए टेस्ट ट्रैफ़िक और प्रोडक्शन डेटा कभी नहीं मिलते। हर application का मोड या तो live होता है या sandbox।

- एक key एक ही application से जुड़ी होती है - sandbox app की key live सेशन को छू नहीं सकती।
- लाइव वाली को दोबारा इस्तेमाल करने की बजाय टेस्टिंग के लिए एक अलग key बनाएं।
- एक दूसरी application बनाएं
कंसोल में, ऊपर मौजूद application switcher खोलें और एक नई application बनाएं। इसके मोड के तौर पर sandbox चुनें।
- उस application की API key इस्तेमाल करें
sandbox application चुने रहते हुए API & Webhooks से API key लें। किसी live application पर कोई अलग "test key" नहीं होती - key ही एनवायरनमेंट है।
- इसमें एक वर्कफ़्लो बनाएं
Sandbox application की अपनी वर्कफ़्लो होती हैं। जिस फ्लो को टेस्ट करना है उसे दोबारा बनाएं (या कॉपी करें)।
- हमेशा की तरह सेशन बनाएं
वही एंडपॉइंट, वही कोड पाथ। बस फ़र्क़ इतना है कि आप कौन सी key भेज रहे हैं।
अगर आपके कंसोल में सिर्फ़ एक प्रोडक्शन application दिखती है और sandbox जोड़ने का कोई तरीका नहीं दिखता, तो अपने ऑर्गेनाइज़ेशन के लिए sandbox application बनाने की सुविधा ऑन करवाने के लिए सपोर्ट से कहें - यह एक अकाउंट-लेवल सेटिंग है, कुछ ऐसा नहीं जो आपने गलत कॉन्फ़िगर किया हो।
#सैंडबॉक्स क्या बदलता है, और क्या नहीं
| Sandbox | Live | |
|---|---|---|
| एक्सटर्नल प्रोवाइडर | सभी मॉक - किसी थर्ड पार्टी को कभी कॉल नहीं किया जाता | असली |
| बिलिंग | कभी बिल नहीं होती; बैलेंस चेक स्किप हो जाता है | हर पूरे हुए फीचर पर बिल होती है |
| सेशन बनाने की लिमिट | प्रति application, 24 घंटे में 500 | आपका बैलेंस |
| वेबहुक पेलोड | "environment": "sandbox" | "environment": "live" |
| निकाला गया डेटा और स्टेटस | आपके चुने गए सिनेरियो से सिमुलेटेड | असली कैप्चर से निकाला गया |
| कैप्चर किया गया मीडिया | असल में स्टोर होता है, बिल्कुल live सेशन की तरह | स्टोर होता है |
Sandbox भी वही मीडिया स्टोर करता है जो वह कैप्चर करता है - डॉक्यूमेंट, सेल्फ़ी, लाइवनेस वीडियो, प्रूफ़-ऑफ़-एड्रेस फ़ाइलें - बिल्कुल एक live सेशन की तरह। परिणाम सिमुलेटेड होता है, लेकिन अपलोड असली होता है, इसलिए असली आइडेंटिटी डॉक्यूमेंट या असली पर्सनल जानकारी की बजाय फ्लो में दिए गए सैंपल डॉक्यूमेंट और टेस्ट डेटा इस्तेमाल करें।
क्योंकि परिणाम कभी भी पिक्सेल पर निर्भर नहीं करते, जानबूझकर ली गई एक खराब फ़ोटो भी sandbox में डिक्लाइन नहीं देगी। सिनेरियो ही तय करता है।
#परिणाम चुनना
सेशन बनाते समय sandbox_scenario के तौर पर एक सिनेरियो स्लग पास करें, या टेस्टर को खुद चुनने दें: होस्टेड फ्लो में sandbox सेशन कैप्चर शुरू होने से पहले एक इन-कार्ड scenario picker दिखाते हैं, साथ ही अपलोड कंपोनेंट के नीचे सैंपल डॉक्यूमेंट की एक पट्टी और एक स्थायी "test data only" बैनर भी।
सिनेरियो वे सभी परिणाम कवर करते हैं जिनके खिलाफ़ आपको असल में बनाना होता है:
| क्या टेस्ट करना है | सिनेरियो |
|---|---|
| सब कुछ अप्रूव हो | approve |
| एक्सपायर्ड डॉक्यूमेंट | decline_document_expired |
| न पढ़ा जा सकने वाला डॉक्यूमेंट | decline_could_not_recognize_document |
| MRZ चेकसम फेलियर | decline_mrz_validation |
| न्यूनतम उम्र से कम | decline_minimum_age |
| फेस मैच बहुत कम | decline_face_match_low_similarity |
| लाइवनेस पर प्रेजेंटेशन अटैक | decline_liveness_attack |
| AML सैंक्शन / PEP हिट | decline_aml_hit |
| ब्लॉक किया गया IP एड्रेस | decline_ip_blocklist |
| प्रूफ़ ऑफ़ एड्रेस पर एड्रेस मिसमैच | decline_poa_address_mismatch |
| NFC चिप इंटीग्रिटी फेल हुई | decline_nfc_chip_not_verified |
| डेटाबेस वैलिडेशन में कुछ नहीं मिला | decline_database_no_match |
| मैनुअल रिव्यू चाहिए (AML) | review_aml_possible_match |
| मैनुअल रिव्यू चाहिए (बॉर्डरलाइन फेस मैच) | review_face_match_borderline |
| मैनुअल रिव्यू चाहिए (आंशिक एड्रेस मैच) | review_poa_partial_match |
| KYB रजिस्ट्री मिसमैच | decline_kyb_registry_mismatch |
review_* सिनेरियो इसलिए हैं ताकि आप बिना किसी डिक्लाइन-लेवल इनपुट के, पूरे मैनुअल-रिव्यू पाथ को आज़मा सकें - कंसोल की रिव्यू क्यू, In Review वेबहुक, किसी रिव्यूअर का अप्रूव करना या रीसबमिशन मांगना।
सिनेरियो और मैजिक वैल्यू की लाइव कैटलॉग खुद API पर
GET /v1/sandbox/scenarios/ से मिलती है। अगर यहां दिया गया कोई स्लग कभी
पुराना लगे, तो एंडपॉइंट पर भरोसा करें। पूरा रेफ़रेंस:
sandbox testing।
#अपने कोड में दोनों को अलग पहचानना
हर वेबहुक एक environment फ़ील्ड लेकर आता है - "sandbox" या "live"। key से एनवायरनमेंट का अंदाज़ा लगाने की बजाय इस पर ब्रांच करें, और आप कभी किसी टेस्ट सेशन को असली कस्टमर नहीं समझेंगे।
#सैंडबॉक्स क्या नहीं करेगा
- यह किसी असली कंपनी के लिए असली रजिस्ट्री डेटा नहीं देगा। Sandbox KYB मॉक की गई रजिस्ट्री रिस्पॉन्स इस्तेमाल करता है।
- यह कोई असली SMS या ईमेल नहीं भेजेगा। फ़ोन और ईमेल वेरिफिकेशन मॉक होते हैं, इसलिए आप असली मैसेज डिलीवरी की झलक पाने के लिए sandbox इस्तेमाल नहीं कर सकते।
- यह आपके फ्री मंथली अलाउंस इस्तेमाल नहीं करेगा - जिसका मतलब यह भी है कि एक sandbox रन आपको आपके बचे हुए फ्री चेक के बारे में कुछ नहीं बताता।
#अगर आपको असली टेस्ट वेरिफिकेशन चाहिए
कुछ चीज़ों के लिए असल में एक live कॉल ज़रूरी होती है - जैसे यह चेक करना कि किसी खास देश की डेटाबेस सर्विस आपके लिए प्रोविज़न हुई है या नहीं, या किसी खास कैरियर पर SMS डिलीवरी की पुष्टि करना। इसके लिए sandbox की बजाय live application पर छोटा टॉप-अप चाहिए होगा। इस पर खर्च करने से पहले सपोर्ट से पूछें, ताकि वे पहले यह पुष्टि कर सकें कि सर्विस आपके अकाउंट पर असल में ऑन है।
