मुख्य सामग्री पर जाएं

Liveness (बायोमेट्रिक सेल्फी)

एम्बेडेड liveness सत्यापन के साथ बायोमेट्रिक सेल्फी कैप्चर। SDK SmartFrames के माध्यम से उपयोगकर्ता को तब तक guide करता है जब तक बायोमेट्रिक रूप से वैध फ्रेम प्राप्त न हो जाए और छवि को Base64 + JWT के रूप में लौटाता है।

क्षमता

यह कैप्चर प्रकार Liveness क्षमता का उपयोग करता है। Liveness कैसे काम करता है इसके वैचारिक अवलोकन के लिए, Liveness capability पृष्ठ देखें।

यह कैसे काम करता है

Plugin अंतर्निहित native SDK को delegate करता है:

  1. Plugin SmartFrame overlay के साथ कैमरा खोलता है (Android या iOS)।
  2. Native SDK उपयोगकर्ता को frame के अंदर अपना चेहरा स्थित करने के लिए guide करता है।
  3. Liveness validate करता है — session केवल तभी पूरा होता है जब उपयोगकर्ता शारीरिक रूप से उपस्थित हो।
  4. Platform channel के माध्यम से base64 और encrypted (JWT) के साथ ResultCamera object लौटाता है।
Camera mode (smart capture)

SDK में intelligent framing और automatic capture डिफ़ॉल्ट रूप से सक्षम हैं। निम्नानुसार अपने builder में camera mode configure करें:

UnicoCheckCameraOpener _opener = _unicoCheck
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
Liveness capture शुरू करना
चरण 1UnicoListener लागू करें

UnicoListener SDK lifecycle callbacks को संभालता है। चार अनिवार्य विधियां लागू करें:

विधिजब यह कॉल की जाती है
onErrorUnico(error)SDK संचालन के दौरान त्रुटि हुई
onUserClosedCameraManually()उपयोगकर्ता ने मैन्युअल रूप से कैमरा बंद किया
onSystemClosedCameraTimeoutSession()40-सेकंड session सीमा पहुंच गई
onSystemChangedTypeCameraTimeoutFaceInference()13 सेकंड तक कोई चेहरा नहीं पहचाना — manual capture पर स्विच
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
अनिवार्य listener विधियां

ऊपर की सभी चार listener विधियां आपके project में बनाई जानी चाहिए (चाहे बिना किसी logic के भी)। अन्यथा, project सफलतापूर्वक compile नहीं होगा।

चरण 2UnicoSelfie पर selfie listeners लागू करें

अपने state class में selfie callbacks जोड़ें:

विधिविवरण
onSuccessSelfie(ResultCamera result)Capture सफल — base64 (preview) और encrypted (API के लिए JWT) के साथ ResultCamera लौटाता है
onErrorSelfie(UnicoError error)Capture विफल — code और description के साथ UnicoError लौटाता है
Token समाप्ति

encrypted generate करने और उसे API पर submit करने के बीच का अंतराल 10 मिनट से अधिक नहीं होना चाहिए।

@override
void onSuccessSelfie(ResultCamera result) { }

@override
void onErrorSelfie(UnicoError error) { }
चरण 3openCameraSelfie कॉल करें

openCameraSelfie विधि कैमरा खोलती है। यह UnicoSelfie listener का implementation लेती है:

_opener.openCameraSelfie(listener: this);
Monitoring data collection

openCameraSelfie विधि एक overload प्रदान करती है जो उपयोगकर्ता session और flow की पहचान करने में सहायता के लिए UnicoCheckPrepareInfo के माध्यम से metadata स्वीकार करती है:

  • externalUserId (String, आवश्यक) — आपके सिस्टम में उपयोगकर्ता पहचानकर्ता। Transmission से पहले SHA-256 का उपयोग करके स्वचालित रूप से hashed।
  • useCase (String, वैकल्पिक) — वर्तमान में चल रहे context या flow के लिए पहचानकर्ता। Plain text में transmitted।
_opener.openCameraSelfie(
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

पूर्ण result handling के लिए, परिणाम प्राप्त करना देखें।