サイレント認証
サイレント認証を使用すると、以前に検証済みの再来訪ユーザーが、キャプチャ画面を表示することなくカード非提示認証の取引を完了できます。ユーザーに新しいセルフィーを求める代わりに、Unicoのテクノロジーがバックグラウンドでシグナルと再来訪の履歴を評価し、取引をサイレントに承認できるかどうかを判断します。
サイレント認証は別個のプロダクトではなく、決済取引およびクレジットカードOnboardingで説明されている、同じ取引作成フローの上に追加される1つのステップです。SDKでコンテキストシグナルを収集し、取引作成時に同じ外部キーを送信することが、サイレント承認の可能性を実現します。
- サイレント認証は、Unicoのテクノロジーがシグナルを通じてそのユーザーを評価できるだけの十分な履歴がある場合に適用されます。
- 履歴不足などの 理由でこの評価ができない場合、取引は標準の画面表示フローにフォールバックします。これは、たとえばあるユーザーがネットワーク上で初めて確認された場合などに起こり得ます。
通常どおり、お使いのプラットフォーム用のCapture SDKをインストールして初期化してください — サイレント認証によってこのセットアップが変わることはありません。externalUserIdを送信するために、各プラットフォームのMonitoring Data Collectionガイドに従ってください。
Flutterはまだサイレント認証に対応していません。
Monitoring Data Collectionガイドでは、externalUserIdは「SDKのキャプチャ動作やAPIレスポンスを変更しない」任意のテレメトリとして説明されています。 それはSDK単体としては事実です。カード非提示認証では、この同じフィールドを使って、バックエンドが取引をサイレントに承認できるかどうかを判断します。 これを送信することが、その取引に対してサイレント認証を有効にする条件であり、ここでは無関係な項目ではありません。
フローをサイレントに保つためには、標準的なキャプチャ設定に対して2つの調整が必要です。
- モバイル(Android / iOS):
externalUserIdを含むPrepareInfoオブジェクトを受け取るprepareCamera/prepareSelfieCameraのオーバーロードを使用し、そのセッションで実際に完全な画面表示フローを望む場合を除き、成功コールバック内でカメラを開くメソッドを呼び出さないでください。
unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {
// ここで cameraOpener?.open() を呼び出す必要はありません — バックグラウンドでの収集は既に開始されています。
}
override fun onCameraFailed(message: String?) { /* handle error */ }
}, PrepareInfo("YOUR_EXTERNAL_USER_ID"))
- Web:
prepareCamera/prepareSelfieCameraを呼び出す前に、UnicoCheckBuilderインスタンスでsetSilentInfo(externalUserId, useCase)を呼び出し、同様に成功コールバック内でのカメラ起動をスキップしてください。
unicoCamera.setSilentInfo("YOUR_EXTERNAL_USER_ID");
await unicoCamera.prepareSelfieCamera(config, SelfieCameraTypes.SMART);
// ここでカメラを開く必要はありません — バックグラウンドでの収集は既に開始されています。
SDKはバックグラウンドでデータを収集するため、取引を作成する前に最小限の間隔を空ける必要があります。
- SDKの準備は、取引APIを呼び出す少なくとも4秒前に開始してください — 早すぎると、収集が完了していない可能性があります。
- 収集されたデータは最大5分間有効です — 遅すぎると、取引作成時にはすでに期限切れになっています。
externalUserIDは任意ですが、これがない場合、その取引に対してサイレント認証は行われません。取引を作成する際 — 決済取引またはクレジットカードOnboarding経由 — SDKで使用したものとまったく同じexternalUserIDを、additionalInfo内に含めて送信してください。
{
"additionalInfo": {
"externalUserID": "YOUR_EXTERNAL_USER_ID"
}
}
省略してもエラーにはなりません — 取引は通常どおり作成され、単に常に視覚的な摩擦を伴う標準フローに従うだけです。
取引が条件を満たし、サイレントに承認された場合、それ以上の対応は不要です。
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "approved"
}
それ以外の場合、レスポンスには標準の画面表示フローを完了するためのlinkが含まれます。これは、サイレント認証なしで作成された取引とまったく同じです。
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "waiting",
"link": "https://aces.so/example",
"token": "eyJhbGciOiJIUzI1NiIsInR5cC[...]Ok6yJV_adQssw5c"
}
その他のステータスについては、返されたlinkを使用して標準フローに従ってください。ステータスの全リストについては、エクスペリエンスの制御と列挙値をご覧ください。