सुविधाएँ
- सरल API - सिंगलटन पैटर्न के साथ आसानी से उपयोग होने वाली विधियाँ
- लचीला एकीकरण - सीधे UniLink URL का उपयोग करें या बैकएंड के ज़रिए सत्र बनाएँ
- प्रतिक्रियाशील - डेस्कटॉप और मोबाइल ब्राउज़र दोनों पर काम करता है
- अनुकूलन योग्य - स्टाइलिंग और व्यवहार के लिए कॉन्फ़िगरेशन विकल्प
- एकाधिक फ़ॉर्मेट - ESM, CommonJS और UMD बिल्ड
- TypeScript सहायता - पूर्ण टाइप परिभाषाएँ शामिल हैं
- मोडल और इनलाइन मोड - मोडल ओवरले या इनलाइन एम्बेडिंग में से चुनें
- इवेंट कॉलबैक - सत्यापन की प्रगति के लिए रीयल-टाइम इवेंट (शुरू हुआ, चरण पूरा हुआ, समाप्त हुआ)
- स्थिति प्रबंधन - कस्टम UI के लिए SDK की स्थिति देखें
इंस्टॉलेशन
NPM/Yarn
CDN (UMD)
npm पर प्रकाशित नवीनतम रिलीज़
0.5.1 है।
0.5.0 ने DiditSdk.shared.submitEvent() जोड़ा (देखें इवेंट सबमिट करना), और 0.5.1 होस्टेड फ़्लो को SDK के भीतर डिजिटल ID वॉलेट से उपयोगकर्ता की ID माँगने देता है, और विफल लॉन्च को उसके errorMessage के साथ error स्थिति में रखता है।
0.4.0 ने वे कैमरा विकल्प जोड़े जो नेटिव SDK पहले से देते हैं, जिनमें defaultLivenessCamera भी शामिल है, जो चेहरे का कैप्चर पीछे वाले कैमरे पर खोलता है (देखें कैमरा विकल्प)।इंस्टॉल किए गए संस्करण की जाँच करें
इंस्टॉल किए गए रिलीज़ के लिए आपका पैकेज मैनेजर ही अधिकृत स्रोत है:0.3.1 से यह एक्सपोर्ट हर JavaScript फ़ॉर्मेट (ESM, CommonJS, UMD, minified UMD) और TypeScript डिक्लेरेशन में पैकेज के संस्करण से बनाया जाता है, इसलिए यह हमेशा इंस्टॉल किए गए रिलीज़ से मेल खाता है।
0.3.0 और उससे पहले के संस्करण इस एक्सपोर्ट से इंस्टॉल किए गए संस्करण की परवाह किए बिना 0.2.1 दिखाते हैं। उन रिलीज़ पर npm list या अपनी lockfile का उपयोग करें।
वेनिला JavaScript
ES Modules / TypeScript
स्क्रिप्ट टैग (UMD)
फ़्रेमवर्क उदाहरण
SDK वेब उदाहरण
React, Angular, Svelte, Next.js, Nuxt, Vue और अन्य, हर फ़्रेमवर्क के लिए उदाहरण और दस्तावेज़ के साथ।
इंटीग्रेशन के तरीके
SDK को एकीकृत करने के दो तरीके हैं:तरीका 1: UniLink URL (सबसे सरल)
Didit Console से अपने वर्कफ़्लो का UniLink URL सीधे उपयोग करें। इसके लिए बैकएंड की आवश्यकता नहीं है।तरीका 2: बैकएंड सत्र (प्रोडक्शन के लिए अनुशंसित)
आपका बैकएंड Didit API के ज़रिए सत्र बनाता है और होस्टेड सत्यापन URL लौटाता है। इससे आपकोvendor_data, प्रति-सत्र callback और metadata पर नियंत्रण मिलता है, और आप उपयोगकर्ता के फ़्रंटएंड तक पहुँचने से पहले ही सत्र बना सकते हैं।
अधिक जानकारी के लिए सत्र बनाने वाले API का संदर्भ पढ़ें।
बैकएंड (Node.js / Express)
सत्र-निर्माण रिस्पॉन्स में फ़ील्ड का नाम
url है (देखें सत्र बनाने वाले OpenAPI स्कीमा)। इसे सीधे startVerification({ url }) को पास करें।कॉन्फ़िगरेशन
कैमरा विकल्प
कैमरा विकल्पों के लिए
@didit-protocol/sdk-web 0.4.0 या उसके बाद का संस्करण चाहिए।defaultLivenessCamera: 'back' सेट करें। उदाहरण के लिए, किसी कियोस्क पर, या जब कोई ऑपरेटर डिवाइस पकड़कर सत्यापित किए जा रहे व्यक्ति की ओर करता है।
- मान्य लेंस मान
'front'और'back'हैं। कोई दूसरा मान अनदेखा किया जाता है, और जो स्विचर फ़्लैग बूलियन नहीं है, वह भी अनदेखा किया जाता है। - जिस डिवाइस में माँगा गया कैमरा नहीं है, वह अपना मौजूदा कैमरा ही इस्तेमाल करता है। उदाहरण के लिए,
'back'माँगने पर लैपटॉप अपना वेबकैम ही इस्तेमाल करेगा। एक-कैमरा वाले डिवाइस पर स्विचर फ़्लैग चाहे जो भी हों, स्विचर छिपा रहता है। - लाइवनेस विकल्प पैसिव लाइवनेस जाँच पर लागू होते हैं। एक्टिव लाइवनेस पर इनका कोई असर नहीं पड़ता।
- SDK ये विकल्प सत्यापन URL के क्वेरी पैरामीटर के रूप में सत्यापन पेज तक भेजता है:
document_camera,liveness_camera,document_camera_switchऔरliveness_camera_switch। अगर आप SDK के बजाय सत्यापन URL सीधे खोलते हैं, तो इन्हें खुद सेट करें: बिना क्वेरी स्ट्रिंग वाले URL में?liveness_camera=backजोड़ें, और जिस URL में पहले से पैरामीटर हैं उसमें&liveness_camera=backजोड़ें। याURLAPI से सेट करें, जिससे दोनों स्थितियाँ अपने आप संभल जाएँ:
इवेंट सबमिट करें
DiditSdk.shared.submitEvent() अंतिम उपयोगकर्ता के इवेंट (साइन-अप, लॉगिन, विफल लॉगिन, लॉगआउट, पासवर्ड रीसेट, MFA, डिवाइस बदलना) को Didit की इवेंट निगरानी के लिए कतार में रखता है।
आपका बैकएंड व्यक्ति के लिए एक निगरानी टोकन बनाता है, और SDK डिवाइस फ़िंगरप्रिंट के साथ इवेंट बैच में भेजता है।
कभी भी API कुंजी ब्राउज़र तक न भेजें।
मोडल का आकार और स्क्रॉलिंग
नीचे दिया गया आकार-व्यवहार 0.3.1 या उसके बाद के संस्करण में चाहिए। 0.3.0 और उससे पहले के संस्करण छोटे डेस्कटॉप और लैंडस्केप व्यूपोर्ट पर सत्यापन फ़्लो को काट सकते हैं।
dvh का उपयोग करता है, और पुराने समर्थित ब्राउज़र पर vh पर लौट आता है। 540px और उससे कम चौड़ाई पर मोडल दिखने वाले व्यूपोर्ट को पूरी तरह भर देता है। क्लोज़ बटन और बाहर निकलने की पुष्टि मोडल के भीतर ही रहते हैं।
नए डिज़ाइन वाला सत्यापन फ़्लो
इस सेक्शन की सभी बातें संस्करण 0.5.0 से लागू होती हैं, जो अभी प्रकाशित नहीं हुआ है। अपग्रेड करने तक मोडल ऊपर बताए आकार पर ही रहता है।
didit:layout मैसेज के ज़रिए अपना लेआउट बताता है, तब मोडल नए डिज़ाइन वाले सत्यापन फ़्लो के हिसाब से अपना आकार तय करता है:
- शुरुआती आकार, संस्करण 0.5.0 से: जब तक पेज अपना लेआउट नहीं बताता, और जो पेज कभी नहीं बताते उनके लिए, मोडल 500px बाय 700px की मौजूदा अधिकतम सीमा पर रहता है। यह छोटी विंडो में भी फिट रहता है और 540px या उससे कम पर पूरी स्क्रीन रहता है।
- क्लोज़ बटन, संस्करण 0.5.0 से: पेज की शीर्ष पट्टी के ऊपर 44px का गोल बटन। यह पेज की लाइट या डार्क थीम के अनुसार चलता है, और दाएँ-से-बाएँ भाषाओं में बाईं ओर चला जाता है।
- एम्बेडेड मोड, संस्करण 0.5.0 से: पहले की तरह यह अपने होस्ट एलिमेंट को भरता रहता है (देखें एम्बेडेड मोड)।
- सत्यापन URL, संस्करण 0.5.0 से: SDK
sdk_presentation(modalयाembedded) जोड़ता है और मोडल मेंsdk_close_button(trueयाfalse, जोshowCloseButtonके अनुसार होता है) जोड़ता है, ताकि पेज को पता रहे कि वह कैसे दिखाया जा रहा है। - इवेंट, संस्करण 0.5.0 से: SDK
didit:layoutको खुद संभालता है और उसेonEventतक नहीं भेजता।
एम्बेडेड मोड
एम्बेडेड मोड में मोडल की 500px बाय 700px की सीमा लागू नहीं होती। SDK होस्ट एलिमेंट के कंटेंट बॉक्स को भरता है, इसलिए उस एलिमेंट को स्पष्ट या किसी अन्य तरीके से हल होने वाली ऊँचाई दें:सत्यापन परिणाम
SDK तीन प्रकार के परिणाम लौटाता है:पूर्ण
सत्यापन फ़्लो पूरा हो गया (स्वीकृत, लंबित, या अस्वीकृत)।TypeScript टाइप
'Approved' | 'Pending' | 'Declined' घोषित करता है, लेकिन यह मान होस्टेड फ़्लो के सत्र की स्थिति से जस का तस आता है, इसलिए आपको In Review जैसी अन्य स्थितियाँ भी मिल सकती हैं। जब फ़्लो ने कोई स्थिति नहीं भेजी, तब Pending SDK का डिफ़ॉल्ट मान होता है। status को केवल एक संकेत मानें और अंतिम निर्णय के लिए webhook पर भरोसा करें।रद्द
उपयोगकर्ता ने सत्यापन मोडल बंद कर दिया। जबsessionId पहले से ज्ञात हो, तब session शामिल होता है (यदि उपयोगकर्ता ने iframe द्वारा उसे रिपोर्ट करने से पहले रद्द किया हो, तो यह undefined हो सकता है)।
विफल
सत्यापन के दौरान एक त्रुटि हुई।स्टेट प्रबंधन
आप कस्टम UI के लिए SDK की स्थिति देख सकते हैं:API संदर्भ
DiditSdk.shared
सिंगलटन SDK इंस्टेंस।मेथड
प्रॉपर्टी
कॉलबैक
विस्तृत इवेंट
onEvent कॉलबैक से सत्यापन की प्रगति पर नज़र रखें:
इवेंट संदर्भ
कनेक्शन टूटना
अगर उपयोगकर्ता का कनेक्शन टूट जाता है, तो सत्यापन पेज किसी चरण को लोड होता छोड़ने के बजाय “No internet connection” स्क्रीन से पूरे फ़्लो को ढक देता है। यह पृष्ठभूमि में लगातार जाँच करता रहता है और Didit से दोबारा संपर्क होते ही स्क्रीन अपने-आप बंद कर देता है, और उपयोगकर्ता जिस चरण पर था वहीं से आगे बढ़ता है। SDK के मोडल या iframe के अंदर यह स्क्रीन Exit Verification का विकल्प भी देती है: तब पेजerror: "network_error" के साथ didit:error भेजता है, उसके बाद didit:cancelled भेजता है, और SDK मोडल बंद करके type: "cancelled" के साथ onComplete कॉल करता है।
संस्करण 0.5.0 से, पेज का didit:layout मैसेज मोडल का आकार तय करता है और onEvent तक नहीं पहुँचता। अगर आप पेज को अपने iframe में एम्बेड करते हैं, तो didit:layout से iframe का आकार तय करें देखें।
चरण के मान
step फ़ील्ड इनमें से कोई एक हो सकता है:
document_selection- दस्तावेज़ प्रकार का चयनdocument_front- दस्तावेज़ का सामने वाला हिस्साdocument_back- दस्तावेज़ का पीछे वाला हिस्साface- चेहरा/लाइवनेस सत्यापनemail- ईमेल सत्यापनphone- फ़ोन सत्यापनpoa- पते का प्रमाणquestionnaire- प्रश्नावली चरण
चैनल के मान
code_sent में channel फ़ील्ड इनमें से कोई एक हो सकता है:
email- कोड ईमेल से भेजा गयाsms- कोड SMS से भेजा गयाwhatsapp- कोड WhatsApp से भेजा गया
कोड का आकार
code_sent में codeSize फ़ील्ड OTP कोड की लंबाई बताता है (जैसे 4 या 6 अंक)।