---
title: User Journeys
canonical: https://developer.unico.io/hi/developers/sdks-and-tools/flutter/capture-flow/user-journeys
locale: hi
generated_by: markdown-export
---

- [/hi/](/hi/)
- [SDKs और टूल्स](/hi/developers/sdks-and-tools/overview)
- [Flutter SDK](/hi/developers/sdks-and-tools/flutter/requirements)
- कैप्चर प्रवाह
- User Journeys

# User Journeys

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

उत्पादउपलब्ध journeys आपके integration के लिए configured flow पर निर्भर करती हैं। Product → flow → capability की पूरी mapping के लिए [उत्पाद](/hi/products) देखें।

यह कैसे काम करता है
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();
```

User Journey शुरू करना
**चरण 1** — `UnicoListener` लागू करें`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 नहीं होगा।
**चरण 2** — `UnicoSelfie` पर 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` लौटाता है।```
@overridevoid onSuccess(SuccessResult result) {  debugPrint('processId: ${result.processId}');}@overridevoid onErrorSelfie(UnicoError error) { }
```

**चरण 3** — `openCameraSelfie` कॉल करें`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 के लिए, [परिणाम प्राप्त करना](/hi/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result) देखें।अंतिम अपडेट 8 अक्टू॰ 2026** को