Aller au contenu principal

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.

Cas d'usage

Les parcours disponibles dépendent du flux configuré pour votre intégration. Consultez Cas d'usage pour le mappage complet cas d'usage → 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();
conseil

Les valeurs false/true pour les méthodes ci-dessus ne modifient pas l'expérience de capture ; elles sont utilisées uniquement pour la logique interne du SDK.

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 obligatoires

Les 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 description
Aucune donnée d'image

Contrairement 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.

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

@override
void 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.