概要
関連付けフローの目的は、長期間有効なトークン(不透明な識別子)を確立することです。このトークンは、決済インテグレータ(Google のシステム内で支払い方法を設定する会社)と Google の両方が同意し、Google のユーザー アカウントとインテグレータのユーザー アカウントのリンクを表します。この有効期間が長いトークンは Google 支払いトークン(GPT
)と呼ばれます。支払い方法とは、Google のさまざまなエコシステムやマーケットプレイス内でサービスや商品の支払いを行うための手段です。Google のお客様は複数のお支払い方法をお持ちかもしれません。
フローの仕組み
- Google は、Google の顧客とインテグレータのユーザー アカウントのリンクを表すトークンのネゴシエーションを行います。
- Google は、
GPT
を作成して確立するために必要な初回セットアップに必要な情報を収集します。
最初に、認証フローを通じて本人確認と認証の証明を確立する必要があります。認証フローの出力は associateAccount
メソッドに渡されます。その後、関連付けフローによって、Google ユーザー アカウントと Google のお支払い方法が関連付けられます。これにより、そのお支払い方法が支払いに使用されるようになります。
次の図に、関連付けフローの詳細を示します。
関連付けフローのシーケンス図
以下は、オブジェクトとそれらが表すもののリストです。
- ユーザー: Google アカウントにお支払い方法を追加するユーザーです。
- Google UI: お客様がお支払い方法の設定を開始する Google のインターフェース。
- 決済インテグレータ UI: 当該アカウントでお客様がアクセスできるインテグレータのインターフェース(ウェブまたは Android)。
- Google サーバー: 認証チェックを実行し、ユーザーのインテグレーター アカウントを
GPT
(Google 支払いトークン)に関連付ける Google のバックエンド サーバー。 - 決済インテグレータ サーバー: ユーザーがアカウントを持っているインテグレータのバックエンド サーバー。
これは関連付けフローです。ここでは、ユーザーの Google アカウントが Google トークンによってインテグレータ アカウントにリンクされます。このフローの仕組みは次のとおりです。
- ユーザーが Google UI(ウェブやアプリのインターフェースなど)でフローを開始します。
- Google UI は Google のサーバーにメッセージを送信して認証リクエスト(認証データのリクエスト)を提供します。
- Google サーバーが認証のリクエスト(
authenticationRequest
)を Google UI に返します。 - Google の UI は、ユーザーを決済インテグレーターの UI(
authenticationRequest
)に接続します。 - ユーザーは ID と認証情報の入力を求められます。
- 決済インテグレータ UI は、レスポンスを決済インテグレータ サーバーに送信します。
- 決済インテグレータ サーバーはレスポンスを認証し、認証レスポンス(
authenticationResponse
)を決済インテグレータ UI に送信します。 - この認証レスポンスが Google UI に転送されます。
- Google UI が Google サーバーにメッセージを送信して、インテグレータからのレスポンスを検証します(ユーザー支払い方法をセットアップします)。
- Google サーバーは署名を検証してレスポンスを検証し、その後、ユーザーのアカウントを Google の
GPT
および関連付け ID(authenticationRequestID
、associationID
)とともに決済インテグレーターに関連付けます。 - Google のサーバーに成功メッセージが送信されます。
- Google UI に成功メッセージが送信されます。
- 支払い方法が使用可能であることを示す成功メッセージがユーザーに送信されます。
ベスト プラクティスとその他の考慮事項
複数の楽器
インテグレータは、多数の GPT
を単一のユーザーのインテグレータ アカウントに関連付けることを許可する必要があります。たとえば、ユーザーが自分の支払い方法を削除し、同じインテグレーター ユーザー アカウントで新しい支払い方法を作成した場合などに必要になります。
2 人の Google ユーザーが同じユーザーのインテグレータ アカウントに関連付けることができます。その場合、ユーザーごとに異なる支払い方法が関連付けられます。支払い方法ごとに、独立した関連付けフローと一意の GPT
があります。
安全対策
ユーザーのインテグレーター アカウントにアカウントが乗っ取られたと思われる場合、そのアカウントの新しい関連付けは拒否され、すでに関連付けられている既存の支払い方法が今後の購入時に不承認コードを返すことがあります。
GPT の有効期間
GPT
は長期間存続することが想定されており、デフォルトでは有効期限はありません。有効期限のない GPT
の使用を強くおすすめします。これにより、ユーザーは中断なしで購入できるようになります。
有効期限のないトークンをサポートできないインテグレータの場合、インテグレータは associateAccount
メソッドの tokenExpirationTime
フィールドを使用して有効期限を指定できます。トークンの有効期限が近づくと、トークンの有効期限を延長するために、Google はユーザーに更新トークンのフローを送信します。
その他の識別子
GPT
以外にも、関連付けの際に交換される識別子があります。以下に、該当する言語のリストと、詳細情報へのリンクを示します。
AssociationId
: Google が定義する公開されているトークン。Google のお客様のアカウントとお支払い方法の関連付けを識別します。GPT
はサーバー間リクエストでのみ使用されますが、AssociationId
はクライアントで同等です。(詳しくは用語集のエントリをご覧ください)。AccountId:
ベンダーが定義する識別子(多くの場合、アカウント番号)。不正行為を発見し、アカウントの関係を把握するために使用されます。また、Google の顧客オペレーション エージェントもこの情報を使用して、お客様の問題を特定し、診断しています。(詳しくは用語集のエントリをご覧ください)。AccountNickname
(またはfullAccountNickname
): ベンダーが顧客を識別するために使用する文字列。表示目的でも使用されます。AccountNickname
は SPII のためベンダーによってマスクされ、fullAccountNickname
はマスクされません。