ステップアップ認証とは
決済処理を行う際に、ユーザーの操作や一定のリスクシグナルに基づいて追加の認証手段を義務づける手法をステップアップ認証(略して「ステップアップ」)と言います。例として、ユーザーを 3D セキュアにリダイレクトして取引の認証を行うことが挙げられます。これにより、詐欺や支払拒否の可能性を下げることができます。次の図は、取引にステップアップが必要な場合に処理内容を決定するおおまかなフローを示しています。
|
図 1: ステップアップが必要な場合は、取引を認可に送る前にリスクエンジンを起動する |
状況により、取引の際に Google Pay API は次のどちらかの応答を返します。
- 追加でステップアップや認証を行うことなく処理できる承認済みのペイロード。たとえば、ユーザーが決済用のカードを Google Wallet に追加する場合。この場合、発行銀行によるユーザーの本人確認が完了している。
- 3D セキュアなどの追加の認証手段が必要なクレジットカード番号(PAN)。たとえば、Chrome の自動入力に保存してある決済カードで購入する場合。
allowedAuthMethods
パラメータを使うと、Google Pay の取引で使えるようにしたい認証手段を指定できます。
"allowedAuthMethods": [ "CRYPTOGRAM_3DS", "PAN_ONLY" ] |
この例では、両方のタイプの決済シートを表示するように Google Pay にリクエストしています。たとえば、決済時にユーザーが決済シートから
PAN_ONLY
カード(トークン化されておらず、非接触に対応していないカード)を選択すると、ステップアップが必要になります。実例を 2 つ挙げましょう。
最初のシナリオでは、Google Wallet に追加してあるカードが Google Pay シートに表示されています。カードのイメージと発行銀行の名前も表示されています。決済時にユーザーがこのカードを選択した場合、CRYPTOGRAM_3DS
認証手段に該当するので、ステップアップは不要です。
一方、2 つ目のシナリオのシートには、通常のカード ネットワークのアイコンが表示されています。これは PAN_ONLY
認証手段を表しているので、ステップアップが必要です。
PAN_ONLY vs. CRYPTOGRAM_3DS
両方の決済形態を認めるかどうかは、皆さんの判断です。CRYPTOGRAM_3DS
の場合、Google Pay API は cryptogram
も返します。また、ネットワークによっては、eciIndicator
も返します。認可を続けるうえで、これらのプロパティを活用してください。
PAN_ONLY | この認証手段は、ユーザーの Google アカウントの決済カードに紐付けられています。返される決済データには、PAN と有効期限年月が含まれます。 |
CRYPTOGRAM_3DS | この認証手段は、発行者が提供する Android デバイス トークンとして保存されているカードに紐付けられています。返される決済データには、デバイスで生成された暗号文が含まれます。 |
Google Pay の取引でステップアップを使うべきタイミング
loadPaymentData
メソッドを呼び出すと、Google Pay API は暗号化した決済トークン (paymentData.paymentMethodData.tokenizationData.token)
を返します。復号化した paymentMethodDetails
オブジェクトには assuranceDetails
プロパティが含まれています。これは次のような形式になっています。
"assuranceDetails": { "cardHolderAuthenticated": true, "accountVerified": true } |
cardHolderAuthenticated
と
accountVerified
の値によって、ステップアップ認証が必要になる場合があります。次の表に、考えられるシナリオと、取引にステップアップ認証を使うことを Google が推奨しているかどうかを示します。
cardHolderAuthenticated | accountVerified | ステップアップが必要 |
true | true | いいえ |
false | true | はい |
cardHolderAuthenticated
と accountVerified
の両方が true を返した場合のみ、ステップアップを省略できます。
次のステップ
まだ assuranceDetails
を使っていない方は、利用を検討し、必要に応じて取引のステップアップを行ってください。また、欧州経済領域(EEA)で決済処理を行う場合は、強力な顧客認証(SCA)ガイドもご覧ください。Twitter で @GooglePayDevs をフォローすると、今後の最新情報を受け取ることができます。質問がある方は、ツイートに #AskGooglePayDevs を含めて、@GooglePayDevs をメンションしてください。