追加する Google のお支払い方法に、お客様のアカウントを決済代行業者に関連付けます。
アカウントの関連付けは、インテグレータがユーザーを認証した後に行われます。関連付けはサーバー間呼び出しによって行われます。この呼び出しには、関連する認証フローの requestId
(authenticationRequestId
)、associationId
、googlePaymentToken
(GPT)が含まれます。決済代行業者は、認証のために associationId
と googlePaymentToken
をお客様のアカウントに関連付ける必要があります。GPT を使用して支払いを開始します。associationId
は、再認証の呼び出し時に、認証対象のアカウントを識別するために使用されます。
Google が associationId
または googlePaymentToken
を送信すると、インテグレータが別の関連付けですでに確認しているとエラーがスローされます。
リクエストの処理中にエンドポイントでエラーが発生した場合、このエンドポイントからのレスポンスの本文は
型になります。ErrorResponse
リクエストの例を次に示します。
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "cmVxdWVzdDE",
"requestTimestamp": "1481899949606"
},
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
"authenticationRequestId": "bnAxdWTydDX==",
"associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
"provideUserInformation": true
}
レスポンスの例を次に示します。
{
"responseHeader": {
"responseTimestamp": "1481899949611"
},
"paymentIntegratorAssociateAccountId": "xx77df88934hfd",
"accountId": "1234-5678-91",
"accountNickname": "***-91",
"tokenExpirationTime": "0",
"userInformation": {
"name": "Example Customer",
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"result": "SUCCESS"
}
HTTP リクエスト
POST https://www.integratorhost.example.com/v1/associateAccount
リクエスト本文
リクエストの本文には、次の構造のデータが含まれます。
JSON 表現 |
---|
{ "requestHeader": { object ( |
フィールド | |
---|---|
requestHeader |
必須: すべてのリクエストに共通のヘッダー。 |
provideUserInformation |
必須: このアカウントに関連付けられた住所をインテグレータに提供する場合は True。 |
googlePaymentToken |
必須: Google が決済代行業者で購入を開始するために使用するトークン。 これは最大 100 文字までの文字列です。 |
associationId |
必須: この関連付けの ID。この識別子は Google によって作成され、認証する必要があるアカウントを識別するために再認証フローの際に送信されます。 これは最大 100 文字までの文字列です。 |
共用体フィールド
|
|
authenticationRequestId |
省略可: この呼び出しの前の認証リクエストの |
otpVerification |
省略可: |
レスポンスの本文
アカウントの関連付けメソッドのレスポンス オブジェクト。
成功すると、レスポンスの本文に次の構造のデータが含まれます。
JSON 表現 |
---|
{ "responseHeader": { object ( |
フィールド | |
---|---|
responseHeader |
必須: すべてのレスポンスに共通のヘッダー。 |
paymentIntegratorAssociateAccountId |
必須: この識別子はインテグレータに固有であり、インテグレータによって生成されます。この呼び出しを特定するためだけに、デバッグ目的で使用されます。これは、インテグレータがこの呼び出しを認識するための識別子です。 |
tokenExpirationTime |
省略可: トークンの有効期限が切れたときのエポックからのミリ秒数。 |
accountId |
必須: ユーザーがインテグレータで使用しているアカウント ID。これは、Google のリスクチームがアカウントの再利用やアカウントとの関係を把握し、Google のカスタマー オペレーション エージェントがお客様の問題の診断をサポートするために使用されます。この ID は、ユーザーが認識できるものである必要があります(たとえば、ユーザーがこの ID を明細書やアカウントへのログイン後にウェブサイトに表示して、その ID を知っているもの)。 この値は、アカウントの存続期間中は不変である必要があります。 |
userMessage |
非推奨: 結果が |
userInformation |
必須: インテグレータが認識しており、このお客様について Google と共有するユーザー情報。リスク情報および事前入力に対処するために使用します。 |
result |
必須: この関連付けの結果。 |
共用体フィールド
|
|
accountNickname |
省略可: ユーザーがこのアカウントを認識して表示するために使用する文字列。アカウントのニックネームの末尾です。たとえば、電話番号の下 4 桁などです。これは、ニックネームのサフィックスのみであることがユーザー インターフェースに表示されます。 この値は、購入フローなどの UI に表示され、ユーザーがお支払い方法を区別できるようにします。 |
fullAccountNickname |
省略可: ユーザーがこのアカウントを認識して表示するために使用する文字列。 この値は、購入フローなどの UI に表示され、ユーザーがお支払い方法を区別できるようにします。 |
UserInformation
ユーザーに関する情報を保持する構造。
JSON 表現 |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string, "phone": string, "emailAddress": string } |
フィールド | |
---|---|
name |
省略可: お客様の氏名。 |
addressLine[] |
省略可: 構造化されていない住所テキストが含まれます。 |
localityName |
省略可: ファジーな用語ですが、通常は住所の都市や町の部分を指します。地域区分が明確に定義されていない、またはこの構造にうまく当てはまらない地域(日本や中国など)では、localityName を空にして addressLine を使用します。 例: 米国の市、イタリアのコミューン、英国の郵便区域 |
administrativeAreaName |
省略可: この国の最上位の行政区域。例: 米国の州、イタリアの地域、中国の州、日本の都道府県 |
postalCodeNumber |
省略可: 名前にかかわらず、postalCodeNumber 値は多くの場合英数字です。例: 「94043」、「SW1W」、「SW1W 9TQ」。 |
countryCode |
省略可: お客様の住所の国コード。ISO-3166-1 Alpha-2 である必要があります。 |
phone |
省略可: お客様の電話番号。 |
emailAddress |
省略可: お客様のメールアドレス。 |
AssociateAccountResultCode
関連アカウントの結果コード。
列挙型 | |
---|---|
UNKNOWN_RESULT |
このデフォルト値は決して設定しないでください。 |
SUCCESS |
関連付けに成功しました。 |
USER_AUTHENTICATION_FAILED |
アカウント認証バンドルが返されましたが、ユーザー認証が失敗しました。 |
NOT_ELIGIBLE |
お客様のアカウントでは、このサービスをご利用いただけません。 |
OTP_NOT_MATCHED |
OTP がインテグレータが送信したものと一致しません。 |
OTP_ALREADY_USED |
OTP はすでに使用されています。 |
OTP_LIMIT_REACHED |
ユーザーがリクエストまたは確認しようとした OTP の数が多すぎます。 |
OTP_EXPIRED |
OTP の有効期限が切れています。 |