Method: associateAccount

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

アカウントの関連付けは、インテグレータがユーザーを認証した後に行われます。関連付けはサーバー間呼び出しによって行われます。この呼び出しには、関連する認証フローの requestIdauthenticationRequestId)、associationIdgooglePaymentToken(GPT)が含まれます。決済代行業者は、認証のために associationIdgooglePaymentToken をお客様のアカウントに関連付ける必要があります。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": 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 を明細書やアカウントへのログイン後にウェブサイトに表示して、その ID を知っているもの)。

この値は、アカウントの存続期間中は不変である必要があります。

userMessage
(deprecated)

string

非推奨: 結果が 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

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

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 の有効期限が切れています。