デバイスバインディングを作成する(イエローフロー)
Visaクラウドトークンフレームワーク(CTF)デバイスバインディング イエローフロー イシュアが要求する場合に発生します ステップアップ認証 を使用して 本人確認(ID&V) 方式。
このフローは、次と同じ方法で開始されます デバイスバインディングの作成(グリーンフロー)、その後エンドユーザーがステップアップ認証を完了するまで一時停止します。
前提条件:
支払いカードは既にトークン化されています。
あなたは
vProvisionedTokenId.エンドユーザーはデバイス上で認証できます(PIN、パスコード、指紋、Face IDなど)。
エンドユーザーは選択したID&V方式を完了できます(例:OTP)。
フロー
1
Thales SDKを使用してマーチャントアプリケーションからデバイスバインディングフローを開始します。
2
Thales SDKはデバイスIDとCTFキーペアを生成し、CTFキーペアをデバイスに安全に保存します。
3
Thales SDKはデバイス上でエンドユーザー認証をトリガーします。
4
Thales SDKはVisa定義のペイロードを生成して署名します。
5
Thales SDKは署名済みペイロードとCTF公開鍵をThalesバックエンドに送信します。
6
Thalesバックエンドは公開鍵をVisaのCAを使用して証明書に変換します。
7
Thalesバックエンドはデバイスを登録し、VTSにデバイスバインディングをリクエストします。
8
VTSはイシュアの決定を確認します。
9
イシュアはステップアップ認証を要求し、サポートされるID&V方式を提供します(例:OTPやアプリ間連携)。
10
Thalesバックエンドはイシュアの決定を通知されます。
11
Thales SDKはID&V方式の一覧を取得してマーチャントアプリケーションに渡します。
12
マーチャントアプリケーションはエンドユーザーに異なるオプションを表示します。
SDK統合
バインディングを作成する
呼び出す createBinding Thales SDKから。
イシュアがステップアップ認証を要求する場合、SDKは IDVSession を返します:
onIssuerAuthenticationRequired(Android)idvSessionHandler(iOS)
ID&V方式の一覧を取得する
ID&V方式の一覧は、オブジェクトから取得できます。 IDVSession object。
を使用して IDVSession オブジェクトを使って呼び出します getIdvMethods サポートされている方式の一覧を取得するには 本人確認(ID&V) methods。
を使用して IDVSession オブジェクトは、関数から返されます createBinding 関数を呼び出して idvMethods サポートされている方式の一覧を取得するには 本人確認(ID&V) methods。
ID&V方式を選択する
選択した方式がOTPベースの場合、SDKは onIssuerAuthenticationReady を呼び出し、 OtpActivationStatus.
OtpActivationStatus を提供します は次の場合にのみ返されます, OTP_EMAILOTP_SMS 、および.
// 6. IDVフローを再試行。 OTPベースの方式の場合、 selectIDVMethod OtpActivationStatusはを返します 。それ以外の場合は.
nil エラーはcompletionHandlerで返されます.
OtpActivationStatus を提供します は次の場合にのみ返されます, OTP_EMAILOTP_SMS 、および.
completionHandler
バインディングを有効化する
選択したID&V方式に基づいてバインディングを有効化:APP_TO_APP : 詳細は参照.デバイスバインディングをアプリ間連携で有効にするAPP_TO_APP CUSTOMER_SERVICE.は次の場合にのみ返されます,OTP_EMAILOTP_SMS、およびAPP_TO_APP カスタマーサービスフロー.
OTPフロー フローが中断され、バインディング状態がPENDING_ACTIVATION の場合は、を使用して再開します.
resumeBinding
使用 の場合は、を使用して再開します 保留中のバインディングを再開する フローが中断され、バインディング状態が.
バインディング状態が IDVSession オブジェクトを取得する
IDVSession オブジェクトを取得するエラーが発生した場合、コールバックが呼び出され、そうでない場合はオブジェクトが返されます。 onError callbackは呼び出されます、そうでない場合は IDVSession オブジェクトが返されます。
後に、 の場合は、を使用して再開します はを返すと、 IDVSessionを使用してID&V方式の一覧を取得し、1つを選択して前述のようにバインディングを有効化します。
オプション:フロー再開の例(Android/iOS)
List<IDVMethod> idvMethods = idvSession.getIdvMethods();guard let idvSession = VisaService.shared.idvSession else { // idvセッションがない return}// 1. idv方式の一覧を表示do { let idvMethods = try idvSession.idvMethods} catch let error { // 2. エラーを処理}
ID&V方式を選択する
IDVMethod selectedIdvMethod;idvSession.selectIdvMethod(selectedIdvMethod);アプリケーションが選択したID&V方式を送信すると、onIssuerAuthenticationReadyコールバックがアプリケーションに返されます.guard let idvSession = VisaService.shared.idvSession else { // idvセッションがない return}// 1. idv方式の一覧を表示do { let idvMethods = try idvSession.idvMethods let selectedIdvMethod = idvMethods[0] // ユーザーが利用可能なidv方式のうち1つを選択 // 2. idv方式を送信 idvSession.selectIDVMethod(selectedIdvMethod) { (result) in if let otpActivationStatus = result { // 3.1. OTP値を入力するページを表示 } else { // 3.2. 顧客サポートに問い合わせるなど、OTPに関連しない選択されたidvの処理 } }} catch let error { // エラーを処理}// 4. ステップ2(selectIDVMethod)の失敗はcompletionHandlerで処理されます。VisaService.shared.completionHandler = { (session, error) in // 5. それがselectIDVMethodエラーかどうか確認する。 if let session = session, let error = error, error.description == TMGError.invalidIdvMethod.description { VisaService.shared.idvSession = session // 6. IDVフローを再試行。 }}上記に示したTMGErrorは網羅的ではありません。ケースに最も適したエラーコードを使用してください。
completionHandler
バインディングの有効化は、選択された方式に従って次の手順を実行することで行えます:
選択したID&V方式に基づいてバインディングを有効化:APP_TO_APP アプリ間連携でバインディングを有効化する.デバイスバインディングをアプリ間連携で有効にするAPP_TO_APP CUSTOMER_SERVICE.は次の場合にのみ返されます,OTP_EMAILOTP_SMS、およびAPP_TO_APP カスタマーサービスフロー.
最終更新
役に立ちましたか?