Zum Hauptinhalt springen

User Journeys

User Journeys sind mehrstufige Aufnahmesitzungen, die vom SDK in Verbindung mit dem konfigurierten Ablauf orchestriert werden. Zum Beispiel führt der Ablauf idchecktrustdocssign Selfie + Dokument + Unterschrift in einer einzigen Sitzung aus.

Anwendungsfälle

Die verfügbaren Journeys hängen von dem für Ihre Integration konfigurierten Ablauf ab. Die vollständige Zuordnung von Anwendungsfall → Ablauf → Funktion finden Sie unter Anwendungsfälle.

How it works

Das Plugin delegiert an die zugrunde liegenden nativen SDKs:

  1. Das Plugin öffnet die Kamera (Android oder iOS) mit dem SmartFrame-Overlay.
  2. Das native SDK orchestriert die für den Ablauf erforderliche Aufnahmesequenz (Selfie, Dokument, Unterschrift).
  3. Das SDK leitet die Ergebnisse intern an Unico weiter — der Client empfängt oder verwaltet Bilddaten niemals direkt.
  4. Gibt ein SuccessResult-Objekt mit einer processId über den Plattformkanal zurück.

Die Orchestrierung wird vollständig vom SDK übernommen — Sie müssen die Schrittsequenz nicht in Ihrem Dart-Code implementieren.

Camera mode (smart capture)

Das SDK hat standardmäßig intelligentes Framing und automatische Aufnahme aktiviert. Konfigurieren Sie den Kameramodus in Ihrem Builder wie folgt:

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

Die false/true-Werte für die obigen Methoden ändern nicht das Aufnahmeerlebnis; sie werden nur für die interne Logik des SDK verwendet.

Starting a User Journey
Schritt 1UnicoListener implementieren

UnicoListener verarbeitet die SDK-Lifecycle-Callbacks. Implementieren Sie die vier obligatorischen Methoden:

MethodeWann sie aufgerufen wird
onErrorUnico(error)Ein Fehler ist während des SDK-Betriebs aufgetreten
onUserClosedCameraManually()Der Benutzer hat die Kamera manuell geschlossen
onSystemClosedCameraTimeoutSession()Das 40-Sekunden-Sitzungslimit wurde erreicht
onSystemChangedTypeCameraTimeoutFaceInference()Kein Gesicht für 13 Sekunden erkannt — wechselt zur manuellen Aufnahme
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Obligatorische Listener-Methoden

Alle vier oben genannten Listener-Methoden müssen in Ihrem Projekt erstellt werden (auch ohne jegliche Logik). Andernfalls wird das Projekt nicht erfolgreich kompiliert.

Schritt 2 — Journey-Listener für UnicoSelfie implementieren

Fügen Sie die Journey-Callbacks zu Ihrer State-Klasse hinzu:

MethodeBeschreibung
onSuccess(SuccessResult result)Aufnahme erfolgreich — gibt SuccessResult mit processId zurück (Unico verarbeitet das Bild intern)
onErrorSelfie(UnicoError error)Aufnahme fehlgeschlagen — gibt einen UnicoError mit Code und Beschreibung zurück
Keine Bilddaten

Im Gegensatz zum Liveness-Ablauf gibt der User Journey-Callback weder base64 noch encrypted zurück. Unico verarbeitet das Bild intern und gibt nur eine processId zurück.

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

@override
void onErrorSelfie(UnicoError error) { }
Schritt 3openCameraSelfie aufrufen

Die Methode openCameraSelfie öffnet die Kamera. Für User Journeys übergeben Sie das von Unico bereitgestellte webAppToken anstelle einer JSON-Anmeldeinformationsdatei:

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

Die Methode openCameraSelfie bietet eine Überladung, die Metadaten über UnicoCheckPrepareInfo akzeptiert, um die Identifizierung der Benutzersitzung und des Ablaufs zu unterstützen:

  • externalUserId (String, erforderlich) — Benutzeridentifikator in Ihrem System. Wird automatisch mit SHA-256 gehasht, bevor die Übertragung erfolgt.
  • useCase (String, optional) — Identifikator für den aktuell ausgeführten Kontext oder Ablauf. Wird im Klartext übertragen.
_opener.openCameraSelfie(
listener: this,
webAppToken: token,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

Die vollständige Ergebnisverarbeitung finden Sie unter Ergebnis empfangen.