मुख्य सामग्री पर जाएं
न्यूनतम कॉन्फ़िगरेशन की ज़रूरत वाला एक हल्का, सर्वर-संचालित Android SDK, जो पहचान सत्यापन के लिए है।

GitHub रिपॉज़िटरी

GitHub पर सोर्स कोड और उदाहरण देखें

नेटिव SDK: Android ऐप्स के लिए यही अनुशंसित तरीका है। नेटिव SDK सबसे अच्छा उपयोगकर्ता अनुभव, अनुकूलित कैमरा हैंडलिंग और पूर्ण NFC समर्थन देते हैं।


आवश्यकताएँ

API स्तर के अनुसार सुविधा उपलब्धता: दस्तावेज़ और चेहरे की स्वतः पहचान के लिए API 24+ आवश्यक है (Didit के अपने हल्के डिटेक्टर, जो didit-sdk-core में शामिल हैं)। API 23 डिवाइस पर SDK टाइमर वाले शटर बटन के साथ मैन्युअल कैप्चर पर वापस चला जाता है। अन्य सभी सुविधाएँ API 23+ की पूरी रेंज में काम करती हैं।
बायोमेट्रिक सहमति के लिए नेटिव 4.10.0 या उसके बाद का संस्करण चाहिए। Illinois, Texas या Colorado के कानून के अधीन आने वाले लोगों के लिए Didit पहले चेहरे के कैप्चर से पहले स्पष्ट बायोमेट्रिक सहमति मांग सकता है। Android SDK 4.10.0 और उसके बाद के संस्करण यह चरण दिखाते हैं। पुराने संस्करण यह चरण नहीं दिखा सकते: उनके सत्र पहले की तरह चलते हैं, और निर्णय में सहमति एकत्र न होने की जानकारी दर्ज होती है (biometric_consent.reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK")। यदि आप उन राज्यों में लोगों की पहचान सत्यापित करते हैं, तो अपग्रेड करें।

इंस्टॉलेशन

चरण 1: रिपॉज़िटरी जोड़ें

अपनी settings.gradle.kts फ़ाइल के repositories ब्लॉक में Didit Maven रिपॉज़िटरी जोड़ें:
या यदि आप settings.gradle (Groovy) का उपयोग करते हैं:

चरण 2: डिपेंडेंसी जोड़ें

अपने ऐप की build.gradle.kts फ़ाइल में SDK डिपेंडेंसी जोड़ें: (!) संस्करण के बारे में, नवीनतम संस्करण के लिए GitHub रिपॉज़िटरी देखना सुनिश्चित करें।
या यदि आप build.gradle (Groovy) का उपयोग करते हैं:

SDK वेरिएंट

Android SDK अलग-अलग आर्टिफ़ैक्ट के रूप में आता है, इसलिए आपका ऐप केवल उन सुविधाओं की बाइनरी लागत चुकाता है जिनका वह उपयोग करता है। ऊपर दिया गया me.didit:didit-sdk पूरा बंडल है। अपने ऐप के अनुरूप एक चुनें: 4.6.0 से, नेटिव WalletConnect वॉलेट-साइनिंग अपने अलग वैकल्पिक ऐड-ऑन, me.didit:didit-sdk-wallet के रूप में आता है। पूरे me.didit:didit-sdk बंडल में यह पहले से शामिल है, इसलिए यदि आप बंडल इंस्टॉल करते हैं तो कुछ नहीं बदलता। यदि आप छोटे आर्टिफ़ैक्ट में से कोई एक उपयोग करते हैं और चाहते हैं कि वॉलेट-स्वामित्व की पुष्टि आपके ऐप के भीतर नेटिव रूप से चले, तो उसके साथ me.didit:didit-sdk-wallet जोड़ें; ऐड-ऑन के बिना SDK वॉलेट-स्वामित्व एक सुरक्षित ब्राउज़र फ़्लो के माध्यम से पूरा करता है, इसलिए सुविधा दोनों तरह से काम करती रहती है। WalletConnect को didit-sdk-core से बाहर ले जाने से उन सभी बिल्ड से, जिन्हें इनकी ज़रूरत नहीं है, वॉलेट डिपेंडेंसी के कई मेगाबाइट भी हट गए। सभी आर्टिफ़ैक्ट एक ही संस्करण पर प्रकाशित होते हैं, इसलिए उन्हें 4.13.2 पर रखें।

डाउनलोड का आकार छोटा रखना

ऑटो-कैप्चर के लिए उपयोग होने वाले डिटेक्शन मॉडल रनटाइम पर डाउनलोड होते हैं और कैश किए जाते हैं, इसलिए वे कभी आपके ऐप के आकार में नहीं गिने जाते। ऑटो-कैप्चर आपके ऐप में ML रनटाइम की नेटिव लाइब्रेरी जोड़ता है, और यह लागत प्रति CPU आर्किटेक्चर अलग होती है: arm64-v8a के लिए लगभग 10 MB, armeabi-v7a के लिए 7 MB, और दो x86 एमुलेटर आर्किटेक्चर में से प्रत्येक के लिए 13 MB। यह लागत केवल एक बार चुकाने के लिए:
  1. Android App Bundle (AAB) प्रकाशित करें। Google Play केवल डिवाइस का अपना आर्किटेक्चर और भाषाएँ भेजता है, इसलिए arm64 फ़ोन में लगभग 10 MB नेटिव कोड इंस्टॉल होता है (संपीड़ित डाउनलोड लगभग 4 MB)। इसके विपरीत, यूनिवर्सल APK में चारों आर्किटेक्चर पैक होते हैं, जो 40 MB से अधिक है, और आकार के अप्रत्याशित रूप से अधिक होने का यह सबसे आम कारण है।
  2. यदि आप एक ही APK वितरित करते हैं और आपके उपयोगकर्ता ARM फ़ोन और टैबलेट हैं, तो बंडल किए गए आर्किटेक्चर सीमित करें:
    अपने उपयोगकर्ताओं द्वारा वास्तव में चलाए जाने वाले हर ABI को रखें; यदि आप Chromebook या अन्य x86 डिवाइस को लक्षित करते हैं तो x86_64 जोड़ें, या प्रति-ABI APK स्प्लिट प्रकाशित करें ताकि कोई भी डिवाइस समर्थन न खोए।
  3. R8 सक्षम करें: अपने रिलीज़ बिल्ड टाइप में isMinifyEnabled = true और isShrinkResources = true सेट करें (यदि आप Groovy build.gradle उपयोग करते हैं तो minifyEnabled true / shrinkResources true)। SDK अपने साथ अपने कंज़्यूमर नियम लेकर आता है, इसलिए उपयोग न होने वाला SDK कोड बिना किसी अतिरिक्त कॉन्फ़िगरेशन के हटा दिया जाता है।
  4. बंडल की गई भाषाएँ सीमित करें resConfigs(...) से, यदि आपको APK बिल्ड में SDK के सभी 48 लोकेल की ज़रूरत नहीं है; AAB भाषा स्प्लिट Google Play पर यह अपने-आप संभाल लेते हैं।

चरण 3: पैकेजिंग अपवर्जन जोड़ें

बिल्ड टकराव से बचने के लिए इसे अपने ऐप के android ब्लॉक में जोड़ें:
बस इतना ही! Gradle सभी ट्रांज़िटिव डिपेंडेंसी अपने-आप हल कर देगा।

अनुमतियाँ

SDK को निम्नलिखित अनुमतियों की आवश्यकता है। ये SDK के AndroidManifest.xml में घोषित हैं और आपके ऐप के मैनिफ़ेस्ट में अपने-आप मर्ज हो जाएँगी:

कैमरा और NFC सुविधाएँ

SDK android.hardware.camera और android.hardware.nfc को वैकल्पिक सुविधाओं (android:required="false") के रूप में घोषित करता है। इससे आपका ऐप उन डिवाइसों पर इंस्टॉल हो सकता है जिनमें कैमरा या NFC हार्डवेयर नहीं है। रनटाइम पर SDK अनुपलब्ध हार्डवेयर को सुचारु रूप से संभाल लेगा।

त्वरित शुरुआत

चरण 1: SDK को आरंभ करें

अपने Application.onCreate() में SDK को आरंभ करें:

चरण 2: सत्यापन शुरू करें और परिणाम संभालें


एकीकरण के तरीके

SDK दो एकीकरण विधियों का समर्थन करता है: कोई बैकएंड आवश्यक नहीं है। SDK, Didit Console के आपके वर्कफ़्लो ID का उपयोग करके सीधे सत्र बनाता है। यह केवल vendorData तक सीमित है।

विधि 2: बैकएंड सत्र (प्रोडक्शन के लिए अनुशंसित)

आपका बैकएंड Create Verification Session API (POST /v3/session/) के माध्यम से सत्र बनाता है, जिसमें पूर्ण पैरामीटर समर्थन (contact_details, expected_details, metadata, callback आदि) है। फिर वह session_token को SDK को पास करता है।
यह तरीका आपको इन पर पूरा नियंत्रण देता है:
  • उपयोगकर्ताओं के साथ सत्रों को जोड़ना (vendor_data)
  • कस्टम मेटाडेटा सेट करना
  • प्रति सत्र कॉलबैक कॉन्फ़िगर करना
  • क्रॉस-सत्यापन के लिए संपर्क विवरण और अपेक्षित विवरण प्रदान करना

कॉन्फ़िगरेशन

SDK के व्यवहार को अनुकूलित करें:

कॉन्फ़िगरेशन विकल्प

कैमरा विकल्प

कैमरा विकल्प Web SDK कैमरा विकल्पों से मेल खाते हैं। प्रत्येक लेंस CameraLens.FRONT या CameraLens.BACK है। यदि डिवाइस में माँगा गया लेंस नहीं है, तो SDK पहले उपलब्ध कैमरे का उपयोग करता है। कैमरा स्विचर उन डिवाइसों पर भी छिपा रहता है जिनमें केवल एक कैमरा है। उपयोगकर्ता को उस चरण के डिफ़ॉल्ट लेंस तक सीमित रखने के लिए किसी स्विचर विकल्प को false पर सेट करें।
विकल्प showLanguageSelector, showCloseButton, showExitConfirmation, और closeOnComplete Web SDK के DiditSdkConfiguration से मेल खाते हैं। मोबाइल-विशिष्ट विकल्प languageLocale और fontFamily इसलिए हैं क्योंकि मोबाइल SDK पूरा सत्यापन UI नेटिव रूप से रेंडर करता है (जबकि Web SDK iframe के अंदर होस्टेड फ़्रंटएंड को सौंपता है)।
थीम और रंग: रंग, बैकग्राउंड और इंट्रो स्क्रीन की सेटिंग SDK कॉन्फ़िगरेशन में नहीं, बल्कि Didit Console में आपकी व्हाइट लेबल सेटिंग्स से तय होती है। इससे सभी प्लेटफ़ॉर्म पर एक जैसी ब्रांडिंग सुनिश्चित होती है।

भाषा समर्थन

SDK 54 भाषाओं का समर्थन करता है। यदि कोई भाषा निर्दिष्ट नहीं है, तो SDK डिवाइस लोकेल का उपयोग करता है और भाषा उपलब्ध न होने पर अंग्रेज़ी पर फ़ॉलबैक करता है।
सभी समर्थित भाषाएँ देखें →

उन्नत विकल्प

उन्नत सत्र पैरामीटर (contact_details, expected_details, metadata, callback) के लिए बैकएंड सत्र विधि का उपयोग करें। आपका बैकएंड पूर्ण पैरामीटर के साथ Create Verification Session API को कॉल करता है, फिर session_token को SDK को पास करता है।

परिणामों को संभालना

VerificationResult sealed class सत्यापन का परिणाम देती है:

परिणाम के मामले

SessionData गुण

त्रुटि प्रकार

सभी त्रुटियाँ me.didit.sdk.VerificationError की sealed subclasses हैं:

कनेक्शन टूटना

सत्यापन के दौरान यदि डिवाइस का कनेक्शन टूट जाता है, तो SDK प्रवाह को “No internet connection” स्क्रीन से ढक देता है, न कि किसी चरण को लोड होते हुए छोड़ता है। यह पृष्ठभूमि में लगातार जाँच करता रहता है और Didit से फिर से संपर्क होते ही स्क्रीन को अपने आप बंद कर देता है। उपयोगकर्ता जिस चरण पर था, वहीं से आगे बढ़ता है। इस स्क्रीन पर Try Again और, जब showCloseButton true हो (डिफ़ॉल्ट मान), Exit Verification विकल्प दिखते हैं। बाहर निकलने पर सत्यापन VerificationResult.Failed(error = VerificationError.NetworkError, session = ...) के साथ समाप्त होता है, ताकि आपका ऐप जान सके कि उपयोगकर्ता कनेक्शन की वजह से बाहर गया।

परिणाम संभालने का पूरा उदाहरण


SDK स्थिति का अवलोकन

कस्टम लोडिंग UI के लिए आप SDK स्थिति का अवलोकन कर सकते हैं:

ProGuard / R8

SDK में अपने consumer ProGuard नियम शामिल हैं। किसी अतिरिक्त कॉन्फ़िगरेशन की ज़रूरत नहीं है। यदि आप R8 full mode इस्तेमाल करते हैं, तो आपको अपनी gradle.properties में यह जोड़ना पड़ सकता है:

एंड-टू-एंड उदाहरण (बैकएंड सत्र → Android SDK → परिणाम)

यह पैटर्न प्रोडक्शन के लिए तैयार इंटीग्रेशन है। आपका बैकएंड सत्र बनाता है, आपका Android ऐप session_token प्राप्त करता है, और SDK प्रवाह चलाता है।

1. बैकएंड: सत्र बनाएँ

2. Android: एक्सचेंज करें और SDK शुरू करें

3. बैकएंड: webhook के ज़रिए अंतिम निर्णय प्राप्त करें

SDK का परिणाम UI फ़ीडबैक के लिए सुविधाजनक है, लेकिन अंतिम और प्रामाणिक परिणाम webhook के ज़रिए आता है। HMAC सत्यापन के लिए Webhooks गाइड देखें।

पूरा उदाहरण


अंतिम संशोधन 7 नवंबर 2026