メインコンテンツへスキップ

ユーザージャーニー

ユーザージャーニーは、SDK が設定されたフローと連携してオーケストレーションするマルチステップのキャプチャセッションです。たとえば、idchecktrustdocssign フローは、1 つのセッションでセルフィー + ドキュメント + 署名を実行します。

ユースケース

利用可能なジャーニーは、インテグレーションに設定されたフローによって異なります。ユースケース → フロー → 機能の完全なマッピングについては、ユースケース を参照してください。

How it works

プラグインは基盤となるネイティブ SDK に処理を委譲します:

  1. プラグインは SmartFrame オーバーレイとともにカメラ(Android または iOS)を開きます。
  2. ネイティブ SDK はフローに必要なキャプチャのシーケンス(セルフィー、ドキュメント、署名)をオーケストレーションします。
  3. SDK は結果を内部的に Unico に転送します — クライアントは画像データを直接受け取ったり管理したりしません。
  4. プラットフォームチャンネルを通じて processId を含む SuccessResult オブジェクトを返します。

オーケストレーションは SDK が完全に処理します — Dart コードでステップシーケンスを実装する必要はありません。

Camera mode (smart capture)

SDK はデフォルトでインテリジェントフレーミング自動キャプチャが有効になっています。ビルダーでカメラモードを次のように設定します:

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

上記のメソッドの false/true の値はキャプチャエクスペリエンスを変更しません。SDK の内部ロジックにのみ使用されます。

Starting a User Journey
ステップ 1UnicoListener を実装する

UnicoListener は SDK ライフサイクルコールバックを処理します。4 つの必須メソッドを実装してください:

メソッド呼び出されるタイミング
onErrorUnico(error)SDK 操作中にエラーが発生した場合
onUserClosedCameraManually()ユーザーが手動でカメラを閉じた場合
onSystemClosedCameraTimeoutSession()40 秒のセッション制限に達した場合
onSystemChangedTypeCameraTimeoutFaceInference()13 秒間顔が検出されなかった場合 — 手動キャプチャに切り替わる
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
必須リスナーメソッド

上記 4 つのリスナーメソッドはすべてプロジェクト内に作成する必要があります(ロジックがなくても同様です)。作成しない場合、プロジェクトは正常にコンパイルされません。

ステップ 2UnicoSelfie にジャーニーリスナーを実装する

ジャーニーのコールバックをステートクラスに追加します:

メソッド説明
onSuccess(SuccessResult result)キャプチャ成功 — processId を含む SuccessResult を返す(Unico が画像を内部で処理する)
onErrorSelfie(UnicoError error)キャプチャ失敗 — コードと説明を含む UnicoError を返す
画像データなし

Liveness フローとは異なり、ユーザージャーニーのコールバックは base64encrypted返しません。Unico は画像処理を内部で処理し、processId のみを返します。

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

@override
void onErrorSelfie(UnicoError error) { }
ステップ 3openCameraSelfie を呼び出す

openCameraSelfie メソッドはカメラを開きます。ユーザージャーニーの場合は、JSON 認証情報ファイルの代わりに Unico から提供された webAppToken を渡します:

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

openCameraSelfie メソッドは、ユーザーセッションとフローの識別を支援するために UnicoCheckPrepareInfo 経由でメタデータを受け取るオーバーロードを提供します:

  • externalUserId(String、必須)— システム内のユーザー識別子。送信前に SHA-256 を使用して自動的にハッシュ化されます。
  • useCase(String、任意)— 現在実行中のコンテキストまたはフローの識別子。平文で送信されます。
_opener.openCameraSelfie(
listener: this,
webAppToken: token,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

結果処理の詳細については、結果を受け取る を参照してください。