Objetos de respuesta JSON

En esta referencia, se describen las opciones de objetos de respuesta de la API de Google Pay que puedes usar con tu aplicación. Los objetos de respuesta son objetos que devuelven los métodos de cliente de la API de Google Pay.

PaymentData

Este es un objeto de respuesta que devuelve Google después de que un pagador aprueba el pago.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
Propiedad Tipo Siempre existe Descripción
apiVersion número Sí Versión principal de la API. El valor de la respuesta coincide con el valor proporcionado en
apiVersionMinor número Sí Versión secundaria de la API. El valor de la respuesta coincide con el valor proporcionado en
paymentMethodData PaymentMethodData Sí Son los datos sobre la forma de pago seleccionada.
email string No Dirección de correo electrónico, si emailRequired se establece en true en PaymentDataRequest. Si otra solicitud tiene la propiedad establecida en true, no hay ningún efecto.
shippingAddress Dirección No Es la dirección de envío, si shippingAddressRequired se establece en true en

Ejemplo

En este ejemplo de respuesta para la versión 2.0 de la API de Google Pay, se muestra una forma de pago CARD seleccionada en la hoja de pago de Google Pay. Se generó un token de forma de pago para la puerta de enlace 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"
    }
  }
}

PaymentMethodData

Este objeto proporciona datos para una forma de pago seleccionada.

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

Es el mensaje para el usuario que describe la forma de pago que financia esta transacción.

info objeto Sí El valor de esta propiedad depende de la forma de pago que se devuelva en type. Para CARD, consulta CardInfo.
tokenizationData PaymentMethodTokenizationData No Son los datos de asignación de token de pago para la forma de pago seleccionada.

Ejemplo

En esta respuesta de ejemplo, se muestra cómo una forma de pago CARD que se selecciona en la hoja de pago de Google Pay genera un token de forma de pago para la puerta de enlace 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 Sí Los detalles de la tarjeta. Este valor suele ser los últimos cuatro dígitos del número de cuenta de pagos seleccionado.
assuranceDetails AssuranceDetailsSpecifications Sí Este objeto proporciona información sobre la validación que se realizó en los datos de pago devueltos si assuranceDetailsRequired se establece en true en el CardParameters.
cardNetwork string Sí

Es la red de tarjetas de pago del pago seleccionado. Los valores que se devuelven coinciden con el formato de allowedCardNetworks en CardParameters.

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

billingAddress Dirección No Es la dirección de facturación asociada a la forma de pago proporcionada, si billingAddressRequired se establece en true en CardParameters.
cardFundingSource string Sí

Es la fuente de financiación de la tarjeta para la forma de pago seleccionada.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

Ejemplo

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

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

AssuranceDetailsSpecifications

Este objeto proporciona información sobre la validación que se realizó en las credenciales de pago devueltas para que se puedan aplicar las verificaciones de riesgo de instrumentos adecuadas.

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

Si es true, indica que se realizaron la identificación y las verificaciones (IDyV) en la credencial de pago que se devolvió.

Si es false, se puede realizar la misma autenticación basada en el riesgo que harías para las transacciones con tarjeta. Esta autenticación basada en el riesgo puede incluir, entre otros, la autenticación de nivel superior con el protocolo 3D Secure, si corresponde.

Puedes recibir y procesar el objeto de respuesta incluso si no usas el campo assuranceDetails. Para recibir este objeto, incluye assuranceDetailsRequired: true en el objeto CardParameters.

PaymentMethodTokenizationData

Este objeto proporciona datos de asignación de token para la forma de pago.

Propiedad Tipo Siempre existe Descripción
type string Sí Es el tipo de asignación de token que se aplicará a la forma de pago seleccionada. Este valor coincide con el type establecido en PaymentMethodTokenizationSpecification.
token string No

Es el token de la forma de pago generada.

Ejemplo

Este es un ejemplo de una respuesta con asignación de token preparada para la puerta de enlace de example.

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

PaymentAuthorizationResult

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

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

Ejemplo

En el siguiente ejemplo, se muestra el resultado del pago que se devuelve después de que se procesa 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 String Obligatorio

Lista de motivos de error predefinidos:

  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message String Obligatorio Es el mensaje de error para el usuario que se muestra en un diálogo.
intent String Obligatorio

Es el intent del error.

  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Ejemplo

En este ejemplo, se muestran el intent y el mensaje de error que se renderizarán 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 los formatos MIN,FULL y FULL-ISO3166. Las propiedades que pertenecen a cada formato se pueden ver en la siguiente tabla.

Propiedad Formato de la dirección Descripción
name MIN, FULL, FULL-ISO3166 Es el nombre completo del destinatario.
postalCode MIN, FULL, FULL-ISO3166 Es el código postal.
countryCode MIN, FULL, FULL-ISO3166 Código de país ISO 3166-1 alpha-2.
phoneNumber MIN, FULL, FULL-ISO3166 Es un número de teléfono, si phoneNumberRequired se establece en true en PaymentDataRequest.
address1 FULL, FULL-ISO3166 Es la primera línea de la dirección.
address2 FULL, FULL-ISO3166 Es la segunda línea de la dirección.
address3 FULL, FULL-ISO3166 La tercera línea de la dirección.
locality FULL, FULL-ISO3166 Ciudad, localidad, vecindario o suburbio.
administrativeArea FULL, FULL-ISO3166 Es una subdivisión de un país, como un estado o una provincia.
sortingCode FULL, FULL-ISO3166 Es el código de clasificación.
iso3166AdministrativeArea FULL-ISO3166 Es el código de área administrativa ISO 3166-2 que corresponde a administrativeArea.

Ejemplo

Este es un ejemplo de dirección con formato FULL-ISO3166 en Estados Unidos con varias líneas de datos de 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"
}

IntermediatePaymentData

La entrada onPaymentDataChanged() de la API de Google Pay devuelve este objeto 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 String Opcional

Describe el motivo por el que se invocó la devolución de llamada de los datos de pago.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • PAYMENT_METHOD
shippingAddress IntermediateAddress Opcional La dirección seleccionada en la hoja de pago.
shippingOptionData SelectionOptionData Opcional La opción de envío seleccionada en la hoja de pago.
paymentMethodData IntermediatePaymentMethodData Opcional Son los datos de la forma de pago seleccionada en la hoja de pago.

Ejemplos

En este ejemplo, se muestra la carga útil intermedia que se devuelve desde la API de Google Pay para los cambios de dirección de envío.

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

En este ejemplo, se muestra la carga útil intermedia que se devuelve cuando cambia la forma de pago.

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

IntermediateAddress

La dirección intermedia contiene una dirección de envío redactada (sin líneas de dirección a nivel de calle ni nombres de destinatarios) para permitir el cálculo de los impuestos y las opciones de envío aplicables antes de que el usuario autorice el pago.

Propiedad Tipo Necesidad Descripción
administrativeArea String Obligatorio Es una subdivisión de un país, como un estado o una provincia.
countryCode String Obligatorio Código de país ISO 3166-1 alpha-2.
locality String Obligatorio Ciudad, localidad, vecindario o suburbio.
postalCode String Obligatorio Es el código postal ocultado según el país. En el caso de Canadá y el Reino Unido, solo contiene los primeros tres caracteres. En el caso de EE.UU., contiene los primeros cinco dígitos.
iso3166AdministrativeArea String Opcional Es el código de área administrativa ISO 3166-2 que corresponde a administrativeArea. Solo está presente 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 String Obligatorio Coincide con SelectionOption.id

Ejemplo

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

{
  "id": "shipping-001"
}

IntermediatePaymentMethodData

Este objeto contiene información limitada sobre la forma de pago seleccionada para las devoluciones de llamada de los desarrolladores.

Propiedad Tipo Necesidad Descripción
type string Obligatorio Tipo de forma de pago. Solo se admite CARD para esta devolución de llamada.
info IntermediateCardInfo Opcional Información sobre la tarjeta seleccionada. Solo está presente si type es CARD.

IntermediateCardInfo

Este objeto contiene información limitada sobre la tarjeta seleccionada, que se usa en las devoluciones de llamada de los desarrolladores.

Propiedad Tipo Necesidad Descripción
billingAddress IntermediateAddress Opcional Es la dirección de facturación asociada a la tarjeta. Solo se completa cuando la dirección de facturación se establece como obligatoria.
cardNetwork string Opcional

Es la red de la tarjeta de pago seleccionada. Los valores que se devuelven coinciden con el formato de allowedCardNetworks en CardParameters.

Este valor de red de tarjetas no se debe mostrar al comprador.

cardFundingSource string Opcional

Es el método de financiación de la tarjeta de pago seleccionada.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID