응답 객체

이 참조 페이지에서는 웹사이트에 사용할 Google Pay API 응답 객체 옵션을 설명합니다. 응답 객체는 Google Pay API 클라이언트 메서드에서 반환하는 객체입니다.

IsReadyToPayResponse

이 객체는 웹사이트 방문자가 결제 정보를 요청하는 사이트에 해당 정보를 제공할 수 있는지에 대한 정보를 제공합니다.

속성 유형 항상 존재 설명
result 부울 현재 방문자는 결제 정보를 요청하는 사이트에 해당 정보를 제공할 수 있습니다. 방문자의 결제 능력은 지정된 결제 수단에 필요한 구성요소를 표시하는 웹브라우저의 기능과 연관되어 있을 수 있습니다. Google 계정에 로그인하여 결제 수단을 제공하는 경우도 여기에 포함됩니다.
paymentMethodPresent 부울 아니요

true이면 제공된 IsReadyToPayRequestallowedPaymentMethods 속성에 지정된 대로 방문자에게 하나 이상의 결제 수단이 있습니다.

IsReadyToPayRequest에서 existingPaymentMethodRequiredtrue로 설정된 경우에만 존재합니다.

PaymentsClientTEST environment 속성으로 초기화되는 경우 결제 수단은 항상 존재하는 것으로 간주됩니다.

다음 예시에서는 현재 방문자가 결제 정보를 요청하는 사이트에 해당 정보를 제공할 수 있는 경우를 보여줍니다.

{
  "result": true
}

PaymentData

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

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
속성 유형 항상 존재 설명
apiVersion 숫자 API 주 버전입니다. 응답의 값은 PaymentDataRequest에 제공된 값과 일치합니다.
apiVersionMinor 숫자 API 부 버전입니다. 응답의 값은 PaymentDataRequest에 제공된 값과 일치합니다.
paymentMethodData PaymentMethodData 선택한 결제 수단에 대한 데이터입니다.
email 문자열 아니요 PaymentDataRequest에서 emailRequiredtrue로 설정된 경우 이메일 주소입니다. 다른 요청의 속성이 true로 설정되어 있으면 아무런 효과가 없습니다.
shippingAddress 주소 아니요 PaymentDataRequest에서 shippingAddressRequiredtrue로 설정된 경우 배송지 주소입니다.

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

IntermediatePaymentData

결제 명세서에서 배송지 주소 또는 배송 옵션이 변경되면 Google Pay API의 onPaymentDataChanged() 입력에서 이 객체가 반환됩니다.

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

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

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData 선택사항 사용자가 제공한 프로모션 코드입니다.
shippingAddress IntermediateAddress 선택사항 결제 명세서에서 선택한 주소입니다.
shippingOptionData SelectionOptionData 선택사항 결제 명세서에서 선택한 배송 옵션입니다.

예시

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

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

PaymentMethodData

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

속성 유형 항상 존재 설명
type 문자열 Google Pay 결제 명세서에서 선택된 PaymentMethod 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 assuranceDetailsRequired CardParameters에서 true로 설정된 경우 이 객체는 반환된 결제 데이터에 대해 수행된 유효성 검사에 대한 정보를 제공합니다.
cardNetwork 문자열

선택한 결제의 결제 카드 네트워크입니다. 반환된 값은 CardParametersallowedCardNetworks 형식과 일치합니다.

이 카드 네트워크 값을 구매자에게 표시해서는 안 됩니다. 구매자 카드의 세부정보가 필요할 때 사용됩니다. 예를 들어 고객지원에서 구매자가 거래에 사용한 카드를 식별하려면 이 값이 필요합니다. 사용자에게 표시되는 설명에는 PaymentMethodDatadescription 속성을 대신 사용하세요.

billingAddress 주소 아니요 CardParameters에서 billingAddressRequiredtrue로 설정된 경우 제공된 결제 수단과 연결된 청구서 수신 주소입니다.
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 필드를 사용하지 않더라도 응답 객체를 수신하고 처리할 수 있습니다. 이 객체를 수신하려면 요청 객체의 CardParametersassuranceDetailsRequired: true를 포함합니다.

PaymentMethodTokenizationData

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

속성 유형 항상 존재 설명
type 문자열 선택한 결제 수단에 적용할 토큰화 유형입니다. 이 값은 PaymentMethodTokenizationSpecification에 설정된 type과 일치합니다.
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 문자열 필수

사전 정의된 오류 이유 목록입니다.

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

오류의 인텐트입니다. 흐름의 시작부터 PaymentDataRequest에 등록된 인텐트여야 합니다.

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

예시

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

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

Address

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

주소는 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에서 phoneNumberRequiredtrue로 설정된 경우 전화번호입니다.
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"
}

IntermediateAddress

속성 유형 필요성 설명
administrativeArea 문자열 필수 주 또는 도와 같은 행정 구역입니다.
countryCode 문자열 필수 ISO 3166-1 alpha-2 국가 코드입니다.
locality 문자열 필수 구/군/시, 단지, 교외 지역입니다.
postalCode 문자열 필수 국가에 따라 수정된 우편번호입니다. 캐나다와 영국의 경우 처음 세 자만 포함됩니다. 미국의 경우 처음 다섯 자리 숫자가 포함됩니다.
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"
}

OfferData

이 객체는 결제 시트에 입력된 혜택 코드에 대한 정보를 제공합니다.

속성 유형 필요성 설명
redemptionCodes 배열 항상 존재 결제 시트에 입력된 프로모션 코드 집합입니다. 이미 승인된 코드를 포함합니다.

다음 예시는 redemptionCodes 배열이 있는 OfferData 객체를 보여줍니다.

"offerData": {
    "redemptionCodes": ["PROMOTIONALCODE"]
}