Method: associateAccount

고객의 계정을 결제 대행업체와 추가할 Google 결제 수단에 연결합니다.

계정 연결은 통합업체가 사용자를 인증한 후에 발생합니다. 연결은 연결된 인증 흐름의 requestId (authenticationRequestId), associationId, googlePaymentToken (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

필수: 통합업체가 이 계정과 연결된 주소를 제공하기를 원하는 경우 참입니다.

googlePaymentToken

string

필수: Google에서 결제 대행업체를 통해 구매를 시작하는 데 사용할 토큰입니다.

이 문자열은 최대 길이가 100자인 문자열입니다.

associationId

string

필수: 이 연결의 식별자입니다. 이 식별자는 Google에서 생성되며 인증이 필요한 계정을 식별하기 위해 재인증 흐름에서 전송됩니다.

이 문자열은 최대 길이가 100자인 문자열입니다.

통합 필드 account_verification.

account_verification는 다음 중 하나여야 합니다.

authenticationRequestId

string

선택사항: 이 호출 전에 발생한 인증 요청의 requestId입니다. 이 식별자는 인증 과정 중에 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를 알고 있어야 합니다.

이 값은 계정을 유지하는 동안 변경할 수 없습니다.

userMessage
(deprecated)

string

지원 중단됨: 결과가 SUCCESS가 아닌 경우 사용자에게 표시되는 결과에 대한 설명입니다.

userInformation

object (UserInformation)

필수: 통합업체가 이 고객에 대해 알고 있으며 Google과 공유할 사용자 정보입니다. 위험 정보 및 주소 자동 입력에 사용됩니다.

result

enum (AssociateAccountResultCode)

필수: 이 연결의 결과입니다.

통합 필드 account_names.

account_names는 다음 중 하나여야 합니다.

accountNickname

string

선택사항: 표시를 위해 사용자가 이 계정을 알고 있는 문자열입니다. 계정 닉네임의 접미사입니다. 예를 들어 전화번호의 마지막 4자리 숫자를 입력할 수 있습니다. Google은 이 이름이 닉네임의 접미사일 뿐임을 사용자 인터페이스를 통해 표시합니다.

이 값은 사용자가 결제 수단을 구별할 수 있도록 구매 흐름과 같은 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을 사용합니다.

예: 미국 도시, IT 코뮌, 영국 우체국

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가 만료되었습니다.