Objetos de resposta

Nesta referência, descrevemos as opções de objeto de resposta da API Google Pay para usar com seu site. Os objetos de resposta são aqueles retornados pelos métodos do cliente da API Google Pay.

IsReadyToPayResponse

Este objeto contém informações sobre a capacidade de um visitante do site de fornecer informações de pagamento ao site que as solicita.

Propriedade Tipo Sempre existe Descrição
result boolean Sim O visitante atual pode fornecer informações de pagamento ao site que as solicita. A capacidade de pagamento de um visitante pode estar vinculada à capacidade do navegador da Web de exibir os componentes necessários para as formas de pagamento especificadas. Isso inclui o momento em que eles fazem login em uma Conta do Google e fornecem uma forma de pagamento.
paymentMethodPresent boolean Não

Se o valor for true, o visitante terá uma ou mais das formas de pagamento especificadas na propriedade allowedPaymentMethods do IsReadyToPayRequest fornecido.

Existe apenas quando existingPaymentMethodRequired foi definido como true em IsReadyToPayRequest.

Se PaymentsClient for inicializado com uma propriedade environment de TEST, uma forma de pagamento será sempre considerada presente.

Exemplo

O exemplo a seguir mostra quando o visitante atual pode fornecer informações de pagamento ao site que as solicita.

{
  "result": true
}

PaymentData

Esse é um objeto de resposta retornado pelo Google depois que um pagador aprova o pagamento.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
Propriedade Tipo Sempre existe Descrição
apiVersion number Sim Versão principal da API. O valor na resposta corresponde ao valor fornecido em PaymentDataRequest.
apiVersionMinor number Sim Versão secundária da API. O valor na resposta corresponde ao valor fornecido em PaymentDataRequest.
paymentMethodData PaymentMethodData Sim Dados da forma de pagamento selecionada.
email string Não Endereço de e-mail, se emailRequired estiver definido como true no PaymentDataRequest. Essa propriedade não terá efeito se outra solicitação tiver a propriedade definida como true.
shippingAddress Address Não Endereço de entrega, se shippingAddressRequired estiver definido como true no PaymentDataRequest.

Exemplo

Neste exemplo de resposta para a API Google Pay versão 2.0, mostramos uma forma de pagamento CARD selecionada na página de pagamento do Google Pay. Um token de forma de pagamento foi gerado para o gateway de 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

Esse objeto é retornado pela entrada onPaymentDataChanged() da API Google Pay quando o endereço de entrega ou as opções de envio são alteradas na página de pagamento.

Propriedade Tipo Necessidade Descrição
callbackTrigger String Opcional

Descreve por que o callback dos dados de pagamento foi invocado.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData Opcional O código promocional fornecido pelo usuário.
shippingAddress IntermediateAddress Opcional O endereço selecionado na página de pagamento.
shippingOptionData SelectionOptionData Opcional A opção de envio selecionada na página de pagamento.

Exemplo

Este exemplo mostra o payload intermediário retornado pela API Google Pay.

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

PaymentMethodData

Este objeto fornece dados para uma forma de pagamento selecionada.

Propriedade Tipo Sempre existe Descrição
type string Sim PaymentMethod type selecionado na folha de pagamento do Google Pay.
description string Sim

Mensagem direcionada ao usuário para descrever a forma de pagamento que financia essa transação.

info objeto Sim O valor dessa propriedade depende da forma de pagamento type retornada. Para CARD, consulte CardInfo.
tokenizationData PaymentMethodTokenizationData Não Dados de tokenização de pagamento da forma de pagamento selecionada.

Exemplo

Nesta resposta de exemplo, mostramos como uma forma de pagamento CARD selecionada na página de finalização da compra do Google Pay gera um token para o gateway example.

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

CardInfo

Este objeto apresenta informações sobre o cartão de pagamento selecionado.

Propriedade Tipo Sempre existe Descrição
cardDetails string Sim Os detalhes sobre o cartão. Normalmente, esse valor corresponde aos últimos quatro dígitos do número da conta para pagamentos selecionada.
assuranceDetails AssuranceDetailsSpecifications (em inglês) Sim Esse objeto apresenta informações sobre a validação realizada nos dados de pagamento retornados se assuranceDetailsRequired estiver definido como true em CardParameters.
cardNetwork string Sim

A rede do cartão de pagamento do pagamento selecionado. Os valores retornados correspondem ao formato de allowedCardNetworks em CardParameters.

Este valor da rede do cartão não deve ser exibido para o comprador. Ele é usado quando são necessários os dados do cartão de um comprador. Por exemplo, se o suporte ao cliente precisar desse valor para identificar o cartão usado na transação. Para exibir a descrição ao usuário, use a propriedade description de PaymentMethodData.

billingAddress Address Não O endereço de faturamento associado à forma de pagamento fornecida, se billingAddressRequired estiver definido como true em CardParameters.
cardFundingSource string Sim

Fonte de financiamento do cartão para a forma de pagamento selecionada.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

Exemplo

Este exemplo mostra um cartão na rede Visa.

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

AssuranceDetailsSpecifications (em inglês)

Esse objeto apresenta informações sobre qual validação foi realizada nas credenciais de pagamento retornadas para que as verificações de risco de instrumento adequadas possam ser aplicadas.

Nome Tipo Descrição
accountVerified booleano Se true, isso indica que a validação de posse de Cardholder foi realizada na credencial de pagamento retornada.
cardHolderAuthenticated booleano

Se true, isso indica que a identificação e as verificações (ID&V) foram realizadas na credencial de pagamento retornada.

Se false, a mesma autenticação com base em risco poderá ser realizada como em transações com cartão. Essa autenticação com base em risco pode incluir, mas não se limita a, autenticação por etapas com o protocolo 3D Secure, se aplicável.

Você pode receber e processar o objeto de resposta mesmo que não use o campo assuranceDetails. Para receber esse objeto, inclua assuranceDetailsRequired: true nos CardParameters do objeto de solicitação.

PaymentMethodTokenizationData

Este objeto fornece dados de tokenização para a forma de pagamento.

Propriedade Tipo Sempre existe Descrição
type string Sim O tipo de tokenização a ser aplicado à forma de pagamento selecionada. Esse valor corresponde ao type definido em PaymentMethodTokenizationSpecification.
token string Não

O token gerado da forma de pagamento.

Exemplo

Este é um exemplo de uma resposta tokenizada preparada para o gateway example.

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

PaymentAuthorizationResult

Este objeto apresenta informações sobre o resultado da autorização de pagamento.

Propriedade Tipo Necessidade Descrição
transactionState String Obrigatório O estado da transação é resolvido por um dos seguintes resultados do comerciante:
  • SUCCESS
  • ERROR
error PaymentDataError Opcional O erro exibido ao usuário na página de pagamento quando for necessário repetir a transação.

Exemplo

O exemplo a seguir mostra o retorno do resultado do pagamento após o processamento dele:

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

PaymentDataError

Propriedade Tipo Necessidade Descrição
reason String Obrigatório

Lista de motivos de erro predefinidos:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message String Obrigatório Mensagem de erro para o usuário exibida em uma caixa de diálogo.
intent String Obrigatório

O intent do erro. Precisa ser aquela registrada em PaymentDataRequest no início do fluxo.

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Exemplo

Este exemplo mostra o intent do erro e a mensagem a ser renderizada na página de pagamento.

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

Address

Este objeto fornece informações sobre um endereço postal solicitado. Todas as propriedades são strings.

Os endereços podem ser retornados nos formatos MIN, FULL e FULL-ISO3166. As propriedades de cada formato podem ser vistas na tabela a seguir.

Propriedade Formato do endereço Descrição
name MIN, FULL, FULL-ISO3166 O nome completo do destinatário.
postalCode MIN, FULL, FULL-ISO3166 O código postal ou CEP.
countryCode MIN, FULL, FULL-ISO3166 Código do país de acordo com a norma ISO 3166-1 alfa-2.
phoneNumber MIN, FULL, FULL-ISO3166 Um número de telefone, se phoneNumberRequired estiver definido como true no PaymentDataRequest.
address1 FULL, FULL-ISO3166 A primeira linha do endereço.
address2 FULL, FULL-ISO3166 A segunda linha do endereço.
address3 FULL, FULL-ISO3166 A terceira linha do endereço.
locality FULL, FULL-ISO3166 Cidade, município, bairro ou subúrbio.
administrativeArea FULL, FULL-ISO3166 Uma subdivisão de país, como um estado ou província.
sortingCode FULL, FULL-ISO3166 O código de classificação.
iso3166AdministrativeArea FULL-ISO3166 Código da área administrativa ISO 3166-2 correspondente a "administrativeArea".

Exemplo

Este é um exemplo de endereço no formato FULL-ISO3166 nos Estados Unidos com várias linhas de dados.

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

Propriedade Tipo Necessidade Descrição
administrativeArea String Obrigatório Uma subdivisão de país, como um estado ou província.
countryCode String Obrigatório Código do país de acordo com a norma ISO 3166-1 alfa-2.
locality String Obrigatório Cidade, município, bairro ou subúrbio.
postalCode String Obrigatório O código postal editado de acordo com o país. Para o Canadá e o Reino Unido, essa informação contém apenas os três primeiros caracteres. Para os Estados Unidos, ela contém os cinco primeiros dígitos.
iso3166AdministrativeArea String Opcional Código da área administrativa ISO 3166-2 correspondente a "administrativeArea". Presente somente se o formato do endereço de entrega for FULL-ISO3166.

Exemplo

Este exemplo mostra o endereço selecionado na página de pagamento.

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

SelectionOptionData

Propriedade Tipo Necessidade Descrição
id String Obrigatório Corresponde a SelectionOption.id

Exemplo

Este exemplo mostra a opção de envio selecionada na página de pagamento.

{
  "id": "shipping-001"
}

OfferData

Esse objeto apresenta informações sobre um código de oferta inserido na página de pagamento.

Propriedade Tipo Necessidade Descrição
redemptionCodes matriz Sempre existe O conjunto de códigos promocionais inseridos na página de pagamento. Inclui códigos que já foram aprovados.

Exemplo

O exemplo a seguir mostra um objeto OfferData com uma matriz redemptionCodes.

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