Botón web de JavaScript

La API de la Billetera de Google permite que tus usuarios agreguen un objeto a la Billetera de Google desde la Web. Los usuarios pueden agregar sus tarjetas directamente desde tu sitio web.

En esta referencia, se proporcionan detalles sobre el elemento HTML g:savetoandroidpay que renderiza un botón de la API de la Billetera de Google y el token web JSON que describe tu servicio web a Google.

JavaScript de la API de la Billetera de Google

Para analizar automáticamente las etiquetas HTML g:savetoandroidpay en la carga, incluye la etiqueta JavaScript

<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>

Para aplicaciones AJAX y renderización explícita de los botones de la API de la Billetera de Google, incluye el parámetro "parsetags": "explicit".

<script src="https://apis.google.com/js/platform.js" type="text/javascript">
  {"parsetags": "explicit"}
</script>

Etiqueta HTML g:savetoandroidpay

La etiqueta de espacio de nombres g:savetoandroidpay define la y varios atributos del campo Agregar a Botón de la Billetera de Google Usa esta etiqueta si renderizas HTML y JWT del servidor.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Campo Tipo Obligatorio Descripción
height String N Altura del botón que se mostrará. Los valores posibles son small (30 px de alto) y standard (38 px de alto). El valor predeterminado de height es small. Consulta Botones de la API de la Billetera de Google. para ver ejemplos de botones con diferentes parámetros de configuración de height.
jwt String Y JWT de la API de Google Wallet.
onsuccess String N Nombre de cadena de la función del controlador de devolución de llamada que se guardó correctamente
onfailure String N Nombre de cadena de la función del controlador de devolución de llamada de error de guardado. A esta función se le pasa un un objeto de error que contiene un errorCode y errorMessage.
onprovidejwt String N Nombre de cadena de la función de controlador de JWT de suministro. El propósito de esta función es interceptar y manipular potencialmente los datos de JWT antes de que el objeto se agregue a la Billetera de Google Esta función no tiene parámetros y debe mostrar el JWT como una cadena. Cuando se implementa el controlador de eventos, se pueden recuperar los datos de JWT originales en el campo this.getOpenParams().renderData.userParams.jwt.
size String N Ancho del botón que se mostrará. Puedes configurar size como matchparent para que el ancho coincida con el ancho del elemento superior. También puedes salir de size Indefinido para que el ancho se extienda para ajustarse al ancho del parámetro de configuración text. Consulta Botones de la API de la Billetera de Google. para ver ejemplos de botones con diferentes parámetros de configuración de size.
text String N Obsoleto
textsize String N Cuando se especifica textsize=large, muestra aumentó drásticamente el tamaño del texto y el tamaño del botón, para casos con requisitos especiales de IU.
theme String N Tema del botón que se mostrará. Los valores posibles son dark y light El tema predeterminado es dark. Consulta Botones de la API de la Billetera de Google para ver ejemplos de botones con diferentes parámetros de configuración de theme.

JWT de la API de la Billetera de Google

El JWT de la API de Google Wallet define los objetos y las clases que se guardarán.

Representación JSON

{
  "iss": "example_service_account@developer.gserviceaccount.com",
  "aud": "google",
  "typ": "savetowallet",
  "iat": 1368029586,
  "payload": {
    "eventTicketClasses": [{
      ... //Event ticket Class JSON
    }],
    "eventTicketObjects": [{
      // Event ticket Object JSON
    }],
    "flightClasses": [{
      // Flight Class JSON
    }],
    "flightObjects": [{
      // Flight Object JSON
    }],
    "giftCardClasses": [{
      // Gift card Class JSON
    }],
    "giftCardObjects": [{
      // Gift card Object JSON
    }],
    "loyaltyClasses": [{
      // Loyalty Class JSON
    }],
    "loyaltyObjects": [{
      // Loyalty Object JSON
    }],
    "offerClasses": [{
      // Offer Class JSON
    }],
    "offerObjects": [{
      // Offer Object JSON
    }],
    "transitClasses": [{
      // Transit Class JSON
    }],
    "transitObjects": [{
      // Transit Object JSON
    }]
  },
  "origins": ["http://baconrista.com", "https://baconrista.com"]
}

Campos

Campo Tipo Obligatorio Descripción
iss String Y Dirección de correo electrónico generada por la cuenta de servicio de Google Cloud.
aud String Y Público. El público de los objetos de la API de Google Wallet siempre será google
typ String Y Tipo de JWT. El público de los objetos de la API de Google Wallet siempre será savetowallet
iat Número entero Y Emitido en un momento en segundos desde el ciclo de entrenamiento.
payload Objeto Y Payload.
payload.eventTicketClasses Arreglo N Clase de entrada para evento para guardar.
payload.eventTicketObjects Arreglo N Objeto de entrada de evento para guardar.
payload.flightClasses Arreglo N Clase de vuelo para guardar.
payload.flightObjects Arreglo N Objeto de vuelo para guardar.
payload.giftCardClasses Arreglo N Clase de tarjeta de regalo para guardar.
payload.giftCardObjects Arreglo N Objeto de tarjeta de regalo para guardar.
payload.loyaltyClasses Arreglo N Clase de lealtad para guardar.
payload.loyaltyObjects Arreglo N Objeto de lealtad que se debe guardar.
payload.offerObjects Arreglo N Objeto de oferta para guardar.
payload.offerClasses Arreglo N Ofrece la clase para guardar.
payload.transitObjects Arreglo N Objeto de transporte público para guardar.
payload.transitClasses Arreglo N de Google Transit para guardar.
origins Arreglo Y Array de dominios para aprobar la funcionalidad de guardado de JWT. API de la Billetera de Google no se renderizará cuando no se defina el campo origins. Podrías es posible que aparezca el error "Load denied por X-Frame-Options" o "Se negó a mostrarlo" mensajes en la la consola del navegador cuando el campo de orígenes no está definido.

El JWT codificado debería ser similar al siguiente ejemplo:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

Función gapi.savetoandroidpay.render

Esta función te permite renderizar explícitamente el botón de la API de la Billetera de Google.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
Campo Tipo Obligatorio Descripción
dom-container String Y ID del contenedor para colocar el botón de la API de la Billetera de Google.
jwt String Y JWT que define el contenido que se guardará.
onsuccess String N Nombre de cadena de la función del controlador de devolución de llamada que se guardó correctamente
onfailure String N Nombre de cadena de la función del controlador de devolución de llamada de error de guardado. A esta función se le pasa un un objeto de error que contiene un errorCode y errorMessage.
onprovidejwt String N Nombre de cadena de la función de controlador de JWT de suministro. El propósito de esta función es interceptar y manipular potencialmente los datos de JWT antes de que el objeto se agregue a la Billetera de Google Esta función no tiene parámetros y debe mostrar el JWT como una cadena. Cuando se implementa el controlador de eventos, se pueden recuperar los datos de JWT originales en el campo this.getOpenParams().renderData.userParams.jwt.

Códigos y mensajes de error de la API de la Billetera de Google

En las siguientes tablas, se indican los códigos de error y los mensajes de error predeterminados que se pasaron en el error objeto a la función de devolución de llamada de error, cuando un objeto no se guarda correctamente con el botón de JavaScript.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE Se produjo un error en el servidor de la Billetera de Google.
CLASS_NOT_FOUND No se encontró la clase a la que se hace referencia en el objeto.
CLASS_MISMATCH El objeto debe estar presente, del mismo tipo y debe hacer referencia a la clase encerrada.
ORIGIN_MISMATCH El origen del botón no coincide con los especificados en la lista de orígenes.
INVALID_NUM_TYPES Solo se puede especificar un tipo de objeto.
INVALID_SIGNATURE No se pudo verificar la firma.
INVALID_DUPLICATE_IDS No se permiten objetos o clases duplicados.
INVALID_JWT JWT no válido
INVALID_EXP_IAT El JWT venció o se emitió en el futuro.
INVALID_AUD El valor para el campo AUD no es válido.
INVALID_TYP El valor para el campo TYP no es válido.
INVALID_NUM_OBJECTS Se pueden especificar exactamente un objeto y, como máximo, una clase para tarjetas de lealtad, tarjetas de regalo y ofertas.
MALFORMED_ORIGIN_URL La URL de origen no tiene el formato correcto. La URL debe contener un protocolo y un dominio.
MISSING_ORIGIN Se debe especificar el origen.
MISSING_FIELDS Faltan campos obligatorios en el objeto o la clase cerrados.

Localización

El idioma del botón de JavaScript cambia en función de los siguientes criterios:

  1. Si el usuario accedió a Google, el botón se reproduce en el idioma preferido que se indica en la el perfil de la Cuenta de Google del usuario. Un usuario puede leer Cómo cambiar el idioma para aprender a cambiar el idioma de preferencia de su Cuenta de Google.
  2. Si el usuario no accedió a Google, el botón usa el valor ACCEPT-LANGUAGE. en el encabezado HTTP.

Si notas que el botón no se renderiza en el idioma correcto según la lógica anterior, o si la redacción es antinatural, comunícate con nuestro equipo de asistencia al cliente.