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 문자열 예 카드에 관한 세부정보입니다. 이 값은 일반적으로 선택한 결제 계좌 번호의 마지막 4자리 숫자입니다.
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 필드를 사용하지 않더라도 응답 객체를 수신하고 처리할 수 있습니다. 이 객체를 수신하려면 Request 객체의 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 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
  • PAYMENT_METHOD
shippingAddress IntermediateAddress 선택사항 결제 시트에서 선택한 주소입니다.
shippingOptionData SelectionOptionData 선택사항 결제 명세서에서 선택한 배송 옵션입니다.
paymentMethodData IntermediatePaymentMethodData 선택사항 결제 명세서에서 선택한 결제 수단 데이터입니다.

예

이 예에서는 배송지 주소 변경을 위해 Google Pay API에서 반환된 중간 페이로드를 보여줍니다.

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

이 예시에서는 결제 수단이 변경될 때 반환되는 중간 페이로드를 보여줍니다.

{
  "callbackTrigger": "PAYMENT_METHOD",
  "paymentMethodData": {
    "type": "CARD",
    "info": {
      "cardNetwork": "VISA",
      "cardFundingSource": "CREDIT",
      "billingAddress": {
        "administrativeArea": "NY",
        "countryCode": "US",
        "locality": "New York",
        "postalCode": "10011"
      }
    }
  }
}

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"
}

IntermediatePaymentMethodData

이 객체에는 개발자 콜백을 위해 선택된 결제 수단에 관한 제한된 정보가 포함됩니다.

속성 유형 필요성 설명
type 문자열 필수 결제 수단 유형입니다. 이 콜백에는 CARD만 지원됩니다.
info IntermediateCardInfo 선택사항 선택한 카드에 관한 정보입니다. type가 CARD인 경우에만 표시됩니다.

IntermediateCardInfo

이 객체에는 개발자 콜백에 사용되는 선택된 카드에 관한 제한된 정보가 포함됩니다.

속성 유형 필요성 설명
billingAddress IntermediateAddress 선택사항 카드와 연결된 청구서 수신 주소입니다. 청구서 수신 주소가 필수로 설정된 경우에만 채워집니다.
cardNetwork 문자열 선택사항

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

이 카드 네트워크 값은 구매자에게 표시되지 않아야 합니다.

cardFundingSource 문자열 선택사항

선택한 결제 카드의 카드 대금 지급 수단입니다.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID