---
title: Parcours utilisateur
canonical: https://developer.unico.io/fr/developers/sdks-and-tools/flutter/capture-flow/user-journeys
locale: fr
generated_by: markdown-export
---

- [/fr/](/fr/)
- [SDKs et outils](/fr/developers/sdks-and-tools/overview)
- [Flutter SDK](/fr/developers/sdks-and-tools/flutter/requirements)
- Flux de capture
- Parcours utilisateur

# Parcours utilisateur

Les parcours utilisateur sont des sessions de capture multi-étapes orchestrées par le SDK conjointement avec le flux configuré. Par exemple, le flux `idchecktrustdocssign` exécute selfie + document + signature en une seule session.

ProduitsLes parcours disponibles dépendent du flux configuré pour votre intégration. Consultez [Produits](/fr/products) pour le mappage complet produit → flux → capacité.

Fonctionnement
Le plugin délègue aux SDK natifs sous-jacents :

1. Le plugin ouvre la caméra (Android ou iOS) avec la superposition SmartFrame.
2. Le SDK natif orchestre la séquence de captures requises pour le flux (selfie, document, signature).
3. Le SDK transmet les résultats à Unico en interne — le client ne reçoit ni ne gère les données d'image directement.
4. Retourne un objet `SuccessResult` avec un `processId` via le canal de plateforme.

L'orchestration est entièrement gérée par le SDK — vous n'avez pas besoin d'implémenter la séquence d'étapes dans votre code Dart.

Mode caméra (capture intelligente)
Le SDK a le **cadrage intelligent** et la **capture automatique** activés par défaut. Configurez le mode caméra dans votre builder comme suit :

```
UnicoCheckCameraOpener _opener = new UnicoCheck(this)**    .setAutoCapture(autoCapture: true)    .setSmartFrame(smartFrame: true)    .build();
```

Démarrer un parcours utilisateur
**Étape 1** — Implémenter `UnicoListener``UnicoListener` gère les callbacks du cycle de vie du SDK. Implémentez les quatre méthodes obligatoires :MéthodeQuand elle est appelée`onErrorUnico(error)`Une erreur s'est produite lors de l'opération du SDK`onUserClosedCameraManually()`L'utilisateur a fermé la caméra manuellement`onSystemClosedCameraTimeoutSession()`La limite de session de 40 secondes a été atteinte`onSystemChangedTypeCameraTimeoutFaceInference()`Aucun visage détecté pendant 13 secondes — bascule vers la capture manuelle```
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {  late UnicoCheckBuilder _unicoCheck;  @override  void onErrorUnico(UnicoError error) {}  @override  void onUserClosedCameraManually() {}  @override  void onSystemClosedCameraTimeoutSession() {}  @override  void onSystemChangedTypeCameraTimeoutFaceInference() {}}
```

Méthodes listener obligatoiresLes quatre méthodes listener ci-dessus doivent être créées dans votre projet (même sans aucune logique). Sinon, le projet ne compilera pas correctement.
**Étape 2** — Implémenter les listeners de parcours sur `UnicoSelfie`Ajoutez les callbacks de parcours à votre classe d'état :MéthodeDescription`onSuccess(SuccessResult result)`Capture réussie — retourne `SuccessResult` avec `processId` (Unico traite l'image en interne)`onErrorSelfie(UnicoError error)`Capture échouée — retourne un `UnicoError` avec le code et la descriptionAucune donnée d'imageContrairement au flux Liveness, le callback User Journey ne retourne **pas** de `base64` ni d'`encrypted`. Unico gère le traitement de l'image en interne et retourne uniquement un `processId`.```
@overridevoid onSuccess(SuccessResult result) {  debugPrint('processId: ${result.processId}');}@overridevoid onErrorSelfie(UnicoError error) { }
```

**Étape 3** — Appeler `openCameraSelfie`La méthode `openCameraSelfie` ouvre la caméra. Pour les parcours utilisateur, passez le `webAppToken` fourni par Unico au lieu d'un fichier JSON d'identifiants :```
_opener.openCameraSelfie(  listener: this,  webAppToken: token,);
```

Collecte de données de surveillance
La méthode `openCameraSelfie` fournit une surcharge qui accepte des métadonnées via `UnicoCheckPrepareInfo` pour aider à identifier la session utilisateur et le flux :

`externalUserId` (String, **obligatoire**) — Identifiant de l'utilisateur dans votre système. Automatiquement haché en SHA-256 avant transmission.
`useCase` (String, optionnel) — Identifiant du contexte ou du flux en cours d'exécution. Transmis en clair.

```
_opener.openCameraSelfie(  listener: this,  webAppToken: token,  prepareInfo: UnicoCheckPrepareInfo(    externalUserId: 'external_user_id',    useCase: 'use_case', // optional  ),);
```

Pour la gestion complète du résultat, consultez [Réception du résultat](/fr/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result).Dernière mise à jour le 8 oct. 2026**