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

User Journeys

User Journeys multi-step capture sessions हैं जो configured flow के साथ SDK द्वारा orchestrated होते हैं। उदाहरण के लिए, idchecktrustdocssign flow एक single session में selfie + document + signature execute करता है।

उपयोग के मामले

उपलब्ध journeys आपके integration के लिए configured flow पर निर्भर करती हैं। Use case → flow → capability की पूरी mapping के लिए Use Cases देखें।

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

Plugin underlying native SDKs को delegate करता है:

  1. Plugin SmartFrame overlay के साथ कैमरा खोलता है (Android या iOS)।
  2. Native SDK flow के लिए आवश्यक captures के sequence को orchestrate करता है (selfie, document, signature)।
  3. SDK internally Unico को results forward करता है — client कभी भी image data directly प्राप्त या manage नहीं करता।
  4. Platform channel के माध्यम से processId के साथ SuccessResult object लौटाता है।

Orchestration पूरी तरह से SDK द्वारा संभाली जाती है — आपको अपने Dart code में step sequence implement करने की आवश्यकता नहीं है।

Camera mode (smart capture)

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

UnicoCheckCameraOpener _opener = new UnicoCheck(this)
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
टिप

ऊपर की विधियों के लिए false/true मान capture अनुभव नहीं बदलते; वे केवल SDK के आंतरिक logic के लिए उपयोग किए जाते हैं।

User Journey शुरू करना
चरण 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 पर journey listeners लागू करें

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

विधिविवरण
onSuccess(SuccessResult result)Capture सफल — processId के साथ SuccessResult लौटाता है (Unico छवि को internally process करता है)
onErrorSelfie(UnicoError error)Capture विफल — code और description के साथ UnicoError लौटाता है
कोई image data नहीं

Liveness flow के विपरीत, User Journey callback base64 या encrypted नहीं लौटाता। Unico image processing internally संभालता है और केवल processId लौटाता है।

@override
void onSuccess(SuccessResult result) {
debugPrint('processId: ${result.processId}');
}

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

openCameraSelfie विधि कैमरा खोलती है। User Journeys के लिए, JSON credentials फ़ाइल के बजाय Unico द्वारा प्रदान किया गया webAppToken पास करें:

_opener.openCameraSelfie(
listener: this,
webAppToken: token,
);
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,
webAppToken: token,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

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