Objetos de respuesta

En esta referencia se describen las opciones del objeto de respuesta de la API de Google Pay que puedes usar en tu sitio web. Los objetos de respuesta son objetos que devuelven los métodos de cliente de la API de Google Pay.

IsReadyToPayResponse

Este objeto proporciona información sobre la capacidad de un visitante de un sitio web para proporcionar información de pago al sitio que la solicita.

Propiedad Tipo Siempre existe Descripción
result booleano El visitante actual puede proporcionar información de pago al sitio que la solicite. La capacidad de un visitante para pagar puede estar vinculada a la capacidad de su navegador web para mostrar los componentes necesarios de los métodos de pago especificados. Esto incluye los casos en los que inician sesión en una cuenta de Google y proporcionan un método de pago.
paymentMethodPresent booleano No

Si true, el visitante tiene uno o varios métodos de pago tal como se especifica en la propiedad allowedPaymentMethods del IsReadyToPayRequest proporcionado.

Solo existe cuando existingPaymentMethodRequired se ha definido como true en IsReadyToPayRequest.

Si PaymentsClient se inicializa con una propiedad environment de TEST, siempre se considera que hay un método de pago.

Ejemplo

En el siguiente ejemplo se muestra cuándo puede proporcionar el visitante actual información para pagos al sitio que la solicita.

{
  "result": true
}

PaymentData

Es un objeto de respuesta que devuelve Google después de que un pagador apruebe el pago.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
Propiedad Tipo Siempre existe Descripción
apiVersion número Versión principal de la API. El valor de la respuesta coincide con el valor proporcionado en PaymentDataRequest.
apiVersionMinor número Versión secundaria de la API. El valor de la respuesta coincide con el valor proporcionado en PaymentDataRequest.
paymentMethodData PaymentMethodData Datos sobre el método de pago seleccionado.
email string No Dirección de correo electrónico, si emailRequired se define como true en PaymentDataRequest. Si otra solicitud tiene la propiedad definida como true, no tendrá ningún efecto.
shippingAddress Dirección No Dirección de envío, si shippingAddressRequired se ha definido como true en PaymentDataRequest.

Ejemplo

En este ejemplo de respuesta de la versión 2.0 de la API de Google Pay se muestra un método de pago CARD seleccionado en la hoja de pago de Google Pay. Se ha generado un token de método de pago para la pasarela 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

La API de Google Pay devuelve este objeto onPaymentDataChanged() cuando se cambia la dirección de envío o las opciones de envío en la hoja de pago.

Propiedad Tipo Necesidad Descripción
callbackTrigger Cadena Opcional

Describe el motivo por el que se ha invocado la retrollamada de datos de pago.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData Opcional El código promocional proporcionado por el usuario.
shippingAddress IntermediateAddress Opcional La dirección seleccionada en la hoja de pago.
shippingOptionData SelectionOptionData Opcional Opción de envío seleccionada en la hoja de pago.

Ejemplo

En este ejemplo se muestra la carga útil intermedia devuelta por la API de 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 proporciona datos de un método de pago seleccionado.

Propiedad Tipo Siempre existe Descripción
type string PaymentMethod type seleccionada en la hoja de pago de Google Pay.
description string

Mensaje visible para el usuario que describe el método de pago con el que se financia esta transacción.

info objeto El valor de esta propiedad depende del método de pago type devuelto. Para CARD, consulta CardInfo.
tokenizationData PaymentMethodTokenizationData No Datos de tokenización del pago del método de pago seleccionado.

Ejemplo

En este ejemplo de respuesta se muestra cómo un método de pago CARD seleccionado en la hoja de pago de Google Pay genera un token de método de pago para la pasarela example.

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

CardInfo

Este objeto proporciona información sobre la tarjeta de pago seleccionada.

Propiedad Tipo Siempre existe Descripción
cardDetails string Los detalles de la tarjeta. Este valor suele ser los cuatro últimos dígitos del número de la cuenta de pago seleccionada.
assuranceDetails AssuranceDetailsSpecifications Este objeto proporciona información sobre la validación realizada en los datos de pago devueltos si assuranceDetailsRequired se define como true en CardParameters.
cardNetwork string

La red de tarjetas de pago del pago seleccionado. Los valores devueltos coinciden con el formato de allowedCardNetworks en CardParameters.

Este valor de la red de la tarjeta no debe mostrarse al comprador. Se usa cuando se necesitan los detalles de la tarjeta de un comprador. Por ejemplo, si el equipo de asistencia necesita este valor para identificar la tarjeta que ha usado un comprador en su transacción. Para obtener una descripción visible para el usuario, usa la propiedad description de PaymentMethodData.

billingAddress Dirección No La dirección de facturación asociada al método de pago proporcionado, si billingAddressRequired se ha definido como true en CardParameters.
cardFundingSource string

Origen de los fondos de la tarjeta del método de pago seleccionado.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

Ejemplo

En este ejemplo se muestra una tarjeta de la red Visa.

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

AssuranceDetailsSpecifications

Este objeto proporciona información sobre la validación que se ha realizado en las credenciales de pago devueltas para que se puedan aplicar las comprobaciones de riesgo del instrumento adecuadas.

Nombre Tipo Descripción
accountVerified booleano Si true, indica que se ha realizado la validación de posesión de Cardholder en la credencial de pago devuelta.
cardHolderAuthenticated booleano

Si true, indica que se ha realizado la identificación y verificación (ID&V) en la credencial de pago devuelta.

Si false, se puede realizar la misma autenticación basada en riesgo que en las transacciones con tarjeta. Esta autenticación basada en el riesgo puede incluir, entre otras cosas, la verificación adicional con el protocolo 3D Secure, si procede.

Puedes recibir y procesar el objeto de respuesta aunque no uses el campo assuranceDetails. Para recibir este objeto, incluye assuranceDetailsRequired: true en el objeto Request CardParameters.

PaymentMethodTokenizationData

Este objeto proporciona datos de tokenización del método de pago.

Propiedad Tipo Siempre existe Descripción
type string El tipo de tokenización que se aplicará al método de pago seleccionado. Este valor coincide con el type definido en PaymentMethodTokenizationSpecification.
token string No

Token del método de pago generado.

Ejemplo

Este es un ejemplo de una respuesta tokenizada preparada para la pasarela example.

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

PaymentAuthorizationResult

Este objeto proporciona información sobre el resultado de la autorización de pago.

Propiedad Tipo Necesidad Descripción
transactionState Cadena Obligatorio El estado de la transacción se resuelve con uno de los siguientes resultados del comerciante:
  • SUCCESS
  • ERROR
error PaymentDataError Opcional Error que se mostrará en la hoja de pago al usuario cuando sea necesario volver a intentar el pago.

Ejemplo

En el siguiente ejemplo se muestra el resultado de pago devuelto después de procesar un pago:

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

PaymentDataError

Propiedad Tipo Necesidad Descripción
reason Cadena Obligatorio

Lista de motivos de error predefinidos:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message Cadena Obligatorio Mensaje de error que se muestra al usuario en un cuadro de diálogo.
intent Cadena Obligatorio

La intención del error. Debe ser una que se haya registrado en PaymentDataRequest desde el inicio del flujo.

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Ejemplo

En este ejemplo se muestra el intent de error y el mensaje que se va a renderizar en la hoja de pago.

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

Dirección

Este objeto proporciona información sobre una dirección postal solicitada. Todas las propiedades son cadenas.

Las direcciones se pueden devolver en formatos MIN, FULL y FULL-ISO3166. Las propiedades de cada formato se pueden consultar en la siguiente tabla.

Propiedad Formato de dirección Descripción
name MIN, FULL y FULL-ISO3166 El nombre completo del destinatario.
postalCode MIN, FULL y FULL-ISO3166 El código postal.
countryCode MIN, FULL y FULL-ISO3166 Código de país ISO 3166-1 alfa-2.
phoneNumber MIN, FULL y FULL-ISO3166 Un número de teléfono, si phoneNumberRequired se ha definido como true en PaymentDataRequest.
address1 FULL, FULL-ISO3166 La primera línea de la dirección.
address2 FULL, FULL-ISO3166 Segunda línea de la dirección.
address3 FULL, FULL-ISO3166 Tercera línea de la dirección.
locality FULL, FULL-ISO3166 Ciudad, pueblo, barrio o zona residencial.
administrativeArea FULL, FULL-ISO3166 Una subdivisión de un país, como un estado o una provincia.
sortingCode FULL, FULL-ISO3166 El código de ordenación.
iso3166AdministrativeArea FULL-ISO3166 Código de área administrativa ISO 3166-2 correspondiente a administrativeArea.

Ejemplo

Este es un ejemplo de dirección con formato FULL-ISO3166 de Estados Unidos con varias líneas de datos de la dirección.

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

Propiedad Tipo Necesidad Descripción
administrativeArea Cadena Obligatorio Una subdivisión de un país, como un estado o una provincia.
countryCode Cadena Obligatorio Código de país ISO 3166-1 alfa-2.
locality Cadena Obligatorio Ciudad, pueblo, barrio o zona residencial.
postalCode Cadena Obligatorio El código postal censurado en función del país. En el caso de Canadá y el Reino Unido, solo contiene los tres primeros caracteres. En EE. UU., contiene los cinco primeros dígitos.
iso3166AdministrativeArea Cadena Opcional Código de área administrativa ISO 3166-2 correspondiente a administrativeArea. Solo se incluye si el formato de la dirección de envío es FULL-ISO3166.

Ejemplo

En este ejemplo se muestra la dirección seleccionada en la hoja de pago.

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

SelectionOptionData

Propiedad Tipo Necesidad Descripción
id Cadena Obligatorio Coincidencias con SelectionOption.id

Ejemplo

En este ejemplo se muestra la opción de envío seleccionada en la hoja de pago.

{
  "id": "shipping-001"
}

OfferData

Este objeto proporciona información sobre un código de oferta introducido en la hoja de pago.

Propiedad Tipo Necesidad Descripción
redemptionCodes array Siempre existe Conjunto de códigos promocionales introducidos en la hoja de pago. Incluye los códigos que ya se han aprobado.

Ejemplo

En el siguiente ejemplo se muestra un objeto OfferData con un array redemptionCodes.

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