Method: associateAccount

追加する Google の支払い方法にお客様のアカウントと決済代行業者を関連付けます。

アカウントの関連付けは、インテグレータがユーザーを認証した後に行われます。関連付けは、関連する認証フロー(authenticationRequestId)の requestIdassociationIdgooglePaymentToken(GPT)を含むサーバー間呼び出しを介して行われます。決済代行業者は、認証のため、associationIdgooglePaymentToken をお客様のアカウントに関連付ける必要があります。GPT は支払いの開始に使用されます。associationId は、再認証呼び出し時に認証対象のアカウントを識別するために使用されます。

インテグレータがすでに別の関連付けで認識している associationId または googlePaymentToken を Google が送信した場合は、エラーがスローされます。

リクエストの処理中にエンドポイントでエラーが発生した場合、このエンドポイントからのレスポンス本文は 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": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
フィールド
requestHeader

object (RequestHeader)

必須: すべてのリクエストに共通のヘッダー。

provideUserInformation

boolean

必須: このアカウントに関連付けられている住所をインテグレータに提供する場合は true。

googlePaymentToken

string

必須: Google が決済代行業者で購入を開始するために使用するトークン。

これは最大 100 文字の文字列です。

associationId

string

必須: この関連付けの識別子。この ID は Google によって作成され、どのアカウントを認証するかを識別するために再認証フローの際に送信されます。

これは最大 100 文字の文字列です。

共用体フィールド account_verification

account_verification は次のいずれかになります。

authenticationRequestId

string

省略可: この呼び出しの前に実行された認証リクエストの requestId。この ID は認証フロー中に Google によって生成されたものです。これは、ユーザーが Android アプリ認証、ウェブ認証、または authenticationResultNotification を使用する非同期認証方法を実行した場合にのみ表示されます。

otpVerification

object (OtpVerification)

省略可: sendOtp から生成された OTP の検証に必要なデータ。これは、ユーザーが sendOtp パスを通過した場合にのみ表示されます。

レスポンスの本文

アカウントの関連付け メソッドのレスポンス オブジェクト。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
フィールド
responseHeader

object (ResponseHeader)

必須: すべてのレスポンスに共通のヘッダー。

paymentIntegratorAssociateAccountId

string

必須: この識別子はインテグレータに固有のものであり、インテグレータによって生成されます。この呼び出しを特定するためだけに、デバッグ目的で使用されます。これは、インテグレータがこの呼び出しを認識するための識別子です。

tokenExpirationTime

string (int64 format)

省略可: トークンが期限切れになるエポックからのミリ秒。0 を使用して、トークンに有効期限がないことを通知します。

accountId

string

必須: ユーザーがインテグレータに登録しているアカウント ID。これは、Google のリスクがアカウントの再利用とアカウントの関係を把握するためのものであり、Google のカスタマー オペレーション エージェントがお客様の問題の診断をサポートするために使用します。この ID はユーザーが認識できるものである必要があります(たとえば、ユーザーがこの ID を知っている理由は、明細書やアカウントへのログイン後にウェブサイトに表示されるからです)。

この値は、アカウントが有効である限り変更できません。

userMessage
(deprecated)

string

DEPRECATED: 結果が SUCCESS でない場合にユーザーに表示される結果の説明。

userInformation

object (UserInformation)

必須: インテグレータが把握しており、このお客様について Google と共有するユーザー情報。リスク情報と事前入力のアドレス入力に使用されます。

result

enum (AssociateAccountResultCode)

必須: この関連付けの結果。

共用体フィールド account_names

account_names は次のいずれかになります。

accountNickname

string

省略可: 表示のためにユーザーがこのアカウントを認識するための文字列。アカウントのニックネームの接尾辞です。たとえば、電話番号の下 4 桁などです。ニックネームの接尾辞にすぎないことがユーザー インターフェースに表示されます。

この値は購入フローなどの UI に表示され、ユーザーが支払い方法を区別できるようになります。

fullAccountNickname

string

省略可: 表示のためにユーザーがこのアカウントを認識するための文字列。accountNickname とは異なり、これはアカウントの完全なニックネームです。たとえば、電話番号の場合は 56565-56501、メール ID の場合は sally@sample-email.com です。

この値は購入フローなどの UI に表示され、ユーザーが支払い方法を区別できるようになります。

UserInformation

ユーザーに関する情報を保持する構造。

JSON 表現
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
フィールド
name

string

省略可: 顧客の氏名。

addressLine[]

string

省略可: 構造化されていない住所テキストを保持します。

localityName

string

省略可: 曖昧な用語ですが、通常は住所の市区町村の部分を指します。地域区分が十分に定義されていない地域や、この構造にうまく適合しない地域(日本や中国など)では、localityName を空にして、addressLine を使用します。

例: 米国の都市、イタリアのコミューン、英国の郵便区域。

administrativeAreaName

string

省略可: この国の最上位の行政区域例: 米国の州、IT 地域、中国の都道府県、日本の都道府県。

postalCodeNumber

string

省略可: その名前にもかかわらず、postalCodeNumber の値には英数字が使用されることがよくあります。例: 「94043」、「SW1W」、「SW1W 9TQ」

countryCode

string

省略可: お客様の住所の国コード。ISO-3166-1 Alpha-2 が想定されます。

phone

string

省略可: お客様の電話番号。

emailAddress

string

省略可: お客様のメールアドレス。

AssociateAccountResultCode

関連付けアカウントの結果コード。

列挙型
UNKNOWN_RESULT このデフォルト値は設定しないでください。
SUCCESS 関連付けに成功しました。
USER_AUTHENTICATION_FAILED アカウント認証バンドルが返されましたが、ユーザー認証に失敗しています。
NOT_ELIGIBLE お客様のアカウントではこのサービスをご利用いただけません。
OTP_NOT_MATCHED OTP がインテグレータから送信されたものと一致しない。
OTP_ALREADY_USED OTP はすでに使用されています。
OTP_LIMIT_REACHED ユーザーが OTP をリクエストまたは確認しようとした回数が多すぎます。
OTP_EXPIRED OTP の有効期限が切れています。