ユーザージャーニー
ユーザージャーニーは、SDK が設定されたフローと連携してオーケストレーションするマルチステップのキャプチャセッションです。たとえば、idchecktrustdocssign フローは、1 つのセッションでセルフィー + ドキュメント + 署名を実行します。
利用可能なジャーニーは、インテグレーションに設定されたフローによって異なります。製品 → フロー → 機能の完全なマッピングについては、製品 を参照してください。
プラグインは基盤となるネイテ ィブ SDK に処理を委譲します:
- プラグインは SmartFrame オーバーレイとともにカメラ(Android または iOS)を開きます。
- ネイティブ SDK はフローに必要なキャプチャのシーケンス(セルフィー、ドキュメント、署名)をオーケストレーションします。
- SDK は結果を内部的に Unico に転送します — クライアントは画像データを直接受け取ったり管理したりしません。
- プラットフォームチャンネルを通じて
processIdを含むSuccessResultオブジェクトを返します。
オーケストレーションは SDK が完全に処理します — Dart コードでステップシーケンスを実装する必要はありません。
SDK はデフォルトでインテリジェントフレーミングと自動キャプチャが有効になっています。ビルダーでカメラモードを次のように設定します:
UnicoCheckCameraOpener _opener = new UnicoCheck(this)
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
ステップ 1 — UnicoListener を実装する
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 つのリスナーメソッドはすべてプロジェクト内に作成する必要があります(ロジックがなくても同様です)。作成しない場合、プロジェクトは正常にコンパイルされません。
ステップ 2 — UnicoSelfie にジャーニーリスナー を実装する
ジャーニーのコールバックをステートクラスに追加します:
| メソッド | 説明 |
|---|---|
onSuccess(SuccessResult result) | キャプチャ成功 — processId を含む SuccessResult を返す(Unico が画像を内部で処理する) |
onErrorSelfie(UnicoError error) | キャプチャ失敗 — コードと説明を含む UnicoError を返す |
Liveness フローとは異なり、ユーザージャーニーのコールバックは base64 や encrypted を返しません。Unico は画像処理を内部で処理し、processId のみを返します。
@override
void onSuccess(SuccessResult result) {
debugPrint('processId: ${result.processId}');
}
@override
void onErrorSelfie(UnicoError error) { }
ステップ 3 — openCameraSelfie を呼び出す
openCameraSelfie メソッドはカメラを開きます。ユーザージャーニーの場合は、JSON 認証情報ファイルの代わりに Unico から提供された webAppToken を渡します:
_opener.openCameraSelfie(
listener: this,
webAppToken: token,
);
openCameraSelfie メソッドは、ユーザーセッションとフローの識別を支援するために UnicoCheckPrepareInfo 経由でメタデータを受け取るオーバーロードを提供します:
externalUserId(String、必須)— システム内のユーザー識別子。送信前に SHA-256 を使用して自動的にハッシュ化されます。useCase(String、任意)— 現在実行中のコンテキストまたはフローの識別子。平文で送信されます。
_opener.openCameraSelfie(
listener: this,
webAppToken: token,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);
結果処理の詳細については、結果を受け取る を参照してください。