JSON 응답 객체

이 참조에서는 애플리케이션에서 사용할 Google Pay API 응답 객체 옵션을 설명합니다. 응답 객체는 Google Pay API 클라이언트 메서드에 의해 반환되는 객체입니다.

PaymentData

결제자가 결제를 승인한 후 Google에서 반환하는 응답 객체입니다.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest
속성 유형 항상 존재함 설명
apiVersion 숫자 예 주 API 버전입니다. 대답의 값이
apiVersionMinor 숫자 예 마이너 API 버전입니다. 대답의 값이
paymentMethodData PaymentMethodData 예 선택한 결제 수단에 관한 데이터입니다.
email 문자열 아니요 PaymentDataRequest. 다른 요청에 속성이 true로 설정되어 있으면 아무런 효과가 없습니다.
shippingAddress 주소 아니요

예

Google Pay API 버전 2.0의 이 응답 예시에서는 Google Pay 결제 시트에서 선택된 CARD 결제 수단을 보여줍니다. example 게이트웨이의 결제 수단 토큰이 생성되었습니다.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "paymentMethodData": {
    "type": "CARD",
    "description": "Visa •••• 1234",
    "info": {
      "cardNetwork": "VISA",
      "cardDetails": "1234",
      "cardFundingSource": "CREDIT"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

PaymentMethodData

이 객체는 선택된 결제 수단의 데이터를 제공합니다.

속성 유형 항상 존재함 설명
type 문자열 예 PaymentMethod Google Pay 결제 시트에서 선택된 type
description 문자열 예

이 거래에 사용된 결제 수단을 설명하는 사용자 대상 메시지입니다.

info 객체 예 이 속성의 값은 반환된 결제 수단 type에 따라 달라집니다. CARD의 경우 CardInfo를 참고하세요.
tokenizationData PaymentMethodTokenizationData 아니요 선택한 결제 수단의 결제 토큰화 데이터입니다.

예

이 응답 예시에서는 Google Pay 결제 시트에서 선택한 CARD 결제 수단이 example 게이트웨이의 결제 수단 토큰을 생성하는 방법을 보여줍니다.

{
  "type": "CARD",
  "description": "Visa •••• 1234",
  "info": {
    "cardNetwork": "VISA",
    "cardDetails": "1234"
  },
  "tokenizationData": {
    "type": "PAYMENT_GATEWAY",
    "token": "examplePaymentMethodToken"
  }
}

CardInfo

이 객체는 선택한 결제 카드에 대한 정보를 제공합니다.

속성 유형 항상 존재함 설명
cardDetails 문자열 예 카드에 관한 세부정보입니다. 이 값은 일반적으로 선택한 결제 계좌 번호의 마지막 네 자리 숫자입니다.
assuranceDetails AssuranceDetailsSpecifications 예 이 객체는 CardParameters.
cardNetwork 문자열 예

선택한 결제의 결제 카드 네트워크입니다. 반환된 값은 CardParameters.

이 카드 네트워크 값은 구매자에게 표시하면 안 됩니다. 구매자의 카드 세부정보가 필요한 경우에 사용됩니다. 예를 들어 고객 지원팀이 구매자가 거래에 사용한 카드를 식별하기 위해 이 값이 필요한 경우입니다. 사용자에게 표시되는 설명의 경우 PaymentMethodData의 description 속성을 대신 사용하세요.

billingAddress 주소 아니요 제공된 결제 수단과 연결된 청구서 수신 주소입니다. billingAddressRequired이 CardParameters.
cardFundingSource 문자열 예

선택한 결제 수단의 카드 자금 조달 소스입니다.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

예

이 예시에서는 Visa 네트워크의 카드를 보여줍니다.

{
  "cardNetwork": "VISA",
  "cardDetails": "1234",
  "cardFundingSource": "CREDIT",
  "assuranceDetails": {
    "cardHolderAuthenticated": false,
    "accountVerified": true
  }
}

AssuranceDetailsSpecifications

이 객체는 반환된 결제 사용자 인증 정보에 대해 수행된 유효성 검사에 대한 정보를 제공하므로 적절한 계측 위험 확인을 적용할 수 있습니다.

이름 유형 설명
accountVerified 부울 true인 경우 반환된 결제 사용자 인증 정보에 Cardholder 소유권 확인이 수행되었음을 나타냅니다.
cardHolderAuthenticated 부울

true인 경우 반환된 결제 사용자 인증 정보에 확인 및 인증 (ID&V)이 수행되었음을 나타냅니다.

false인 경우 카드 거래에 사용하는 것과 동일한 위험 기반 인증을 수행할 수 있습니다. 이 위험도에 따른 인증에는 해당하는 경우 3D Secure 프로토콜을 사용한 상향 조정이 포함될 수 있지만 이에 국한되지 않습니다.

assuranceDetails 필드를 사용하지 않더라도 응답 객체를 수신하고 처리할 수 있습니다. 이 객체를 수신하려면 요청 객체의 CardParameters.

PaymentMethodTokenizationData

이 객체는 결제 수단의 토큰화 데이터를 제공합니다.

속성 유형 항상 존재함 설명
type 문자열 예 선택한 결제 수단에 적용할 토큰화 유형입니다. 이 값은 PaymentMethodTokenizationSpecification.
token 문자열 아니요

생성된 결제 수단 토큰입니다.

  • PAYMENT_GATEWAY: 게이트웨이에서 발급한 청구 가능한 토큰이 포함된 JSON 객체 문자열입니다.
  • DIRECT: protocolVersion, signature, 복호화를 위한 signedMessage 자세한 내용은 결제 수단 토큰 구조 를 참고하세요.

예

다음은 example 게이트웨이를 위해 준비된 토큰화된 응답의 예시입니다.

{
  "type": "PAYMENT_GATEWAY",
  "token": "examplePaymentMethodToken"
}

PaymentAuthorizationResult

이 객체는 결제 승인 결과에 관한 정보를 제공합니다.

속성 유형 필요성 설명
transactionState 문자열 필수 거래 상태는 다음 판매자 결과 중 하나로 확인됩니다.
  • SUCCESS
  • ERROR
error PaymentDataError 선택사항 결제를 재시도해야 할 때 사용자에게 결제 시트에 렌더링할 오류입니다.

예

다음 예시는 결제가 처리된 후 반환되는 결제 결과를 보여줍니다.

{
  "transactionState": "ERROR",
  "error": {
    "reason": "PAYMENT_DATA_INVALID",
    "message": "Cannot pay with payment credentials",
    "intent": "PAYMENT_AUTHORIZATION"
  }
}

PaymentDataError

속성 유형 필요성 설명
reason 문자열 필수

사전 정의된 오류 이유 목록:

  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message 문자열 필수 대화상자에 표시되는 사용자에게 표시되는 오류 메시지입니다.
intent 문자열 필수

오류의 의도입니다.

  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

예

이 예시에서는 결제 시트에 렌더링할 오류 인텐트와 메시지를 보여줍니다.

{
  "error": {
    "reason": "SHIPPING_OPTION_INVALID",
    "message": "This shipping option is invalid for the given address",
    "intent": "SHIPPING_OPTION"
  }
}

주소

이 객체는 요청된 우편 주소에 관한 정보를 제공합니다. 모든 속성은 문자열입니다.

주소는 MIN,FULL, FULL-ISO3166 형식으로 반환될 수 있습니다. 각 형식에 속하는 속성은 다음 표에서 확인할 수 있습니다.

속성 주소 형식 설명
name MIN, FULL, FULL-ISO3166 수신자의 전체 이름입니다.
postalCode MIN, FULL, FULL-ISO3166 우편번호입니다.
countryCode MIN, FULL, FULL-ISO3166 ISO 3166-1 alpha-2 국가 코드입니다.
phoneNumber MIN, FULL, FULL-ISO3166 phoneNumberRequired가 PaymentDataRequest.
address1 FULL, FULL-ISO3166 주소의 첫 번째 줄입니다.
address2 FULL, FULL-ISO3166 주소의 두 번째 줄입니다.
address3 FULL, FULL-ISO3166 주소의 세 번째 줄입니다.
locality FULL, FULL-ISO3166 도시, 읍, 동, 교외 지역
administrativeArea FULL, FULL-ISO3166 주 또는 도와 같은 국가 하위 행정 구역입니다.
sortingCode FULL, FULL-ISO3166 정렬 코드입니다.
iso3166AdministrativeArea FULL-ISO3166 administrativeArea에 해당하는 ISO 3166-2 행정 구역 코드입니다.

예

다음은 여러 줄의 상세 주소 데이터가 있는 미국의 FULL-ISO3166 형식 주소의 예입니다.

{
  "name": "John Doe",
  "address1": "c/o Google LLC",
  "address2": "1600 Amphitheatre Pkwy",
  "address3": "Building 40",
  "locality": "Mountain View",
  "administrativeArea": "CA",
  "countryCode": "US",
  "postalCode": "94043",
  "sortingCode": ""
  "iso3166AdministrativeArea": "US-CA"
}

IntermediatePaymentData

이 객체는 결제 시트에서 배송지 주소 또는 배송 옵션이 변경될 때 Google Pay API onPaymentDataChanged() 입력에 의해 반환됩니다.

속성 유형 필요성 설명
callbackTrigger 문자열 선택사항

결제 데이터 콜백이 호출된 이유를 설명합니다.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
shippingAddress IntermediateAddress 선택사항 결제 시트에서 선택한 주소입니다.
shippingOptionData SelectionOptionData 선택사항 결제 시트에서 선택한 배송 옵션입니다.

예

이 예시에서는 Google Pay API에서 반환된 중간 페이로드를 보여줍니다.

{
  "callbackTrigger": "SHIPPING_ADDRESS",
  "shippingAddress": {
    "administrativeArea": "NY",
    "countryCode": "US",
    "locality": "New York",
    "postalCode": "10011"
  },
  "shippingOptionData": {
    "id": "shipping-001"
  }
}

IntermediateAddress

중간 주소에는 사용자가 결제를 승인하기 전에 관련 세금 및 배송 옵션을 계산할 수 있도록 수정된 배송지 주소 (세부 주소 또는 수신자 이름 제외)가 포함되어 있습니다.

속성 유형 필요성 설명
administrativeArea 문자열 필수 주 또는 도와 같은 국가 하위 행정 구역입니다.
countryCode 문자열 필수 ISO 3166-1 alpha-2 국가 코드입니다.
locality 문자열 필수 도시, 읍, 동, 교외 지역
postalCode 문자열 필수 국가를 기반으로 수정된 우편번호입니다. 캐나다와 영국의 경우 처음 세 글자만 포함됩니다. 미국의 경우 처음 5자리가 포함됩니다.
iso3166AdministrativeArea 문자열 선택사항 administrativeArea에 해당하는 ISO 3166-2 행정 구역 코드입니다. 배송지 주소 형식이 FULL-ISO3166인 경우에만 표시됩니다.

예

이 예에서는 결제 시트에서 선택한 주소를 보여줍니다.

{
  "administrativeArea": "NY",
  "countryCode": "US",
  "locality": "New York",
  "postalCode": "10011"
  "iso3166AdministrativeArea": "US-NY"
}

SelectionOptionData

속성 유형 필요성 설명
id 문자열 필수 SelectionOption.id과 일치

예

이 예에서는 결제 시트에서 선택한 배송 옵션을 보여줍니다.

{
  "id": "shipping-001"
}