Botón web de JavaScript

La API de la Billetera de Google permite a tus usuarios agregar 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 procesa un botón de la API de la Billetera de Google, así como el Token web JSON que describe tu servicio web para Google.

JavaScript de la API de Billetera de Google

Para analizar automáticamente las etiquetas HTML g:savetoandroidpay durante la carga, incluye el código JavaScript estándar.

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

Para las aplicaciones AJAX y la 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 posición y varios atributos del botón Agregar a la Billetera de Google. Usa esta etiqueta si renderizas código HTML y JWT en el 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 los botones de la API de la Billetera de Google para ver ejemplos de botones con diferentes configuraciones de height.
jwt String Y JWT de la API de la Billetera de Google.
onsuccess String N Nombre de cadena de la función del controlador de devolución de llamada de guardado correcto.
onfailure String N El nombre de cadena de la función del controlador de devolución de llamada con errores de guardado. A esta función se le pasa un objeto de error que contiene un errorCode y errorMessage.
onprovidejwt String N Nombre de cadena de la función para proporcionar controlador de JWT. El propósito de esta función es interceptar y manipular los datos de JWT antes de que el objeto se agregue a la Billetera de Google. Esta función no toma parámetros y debe mostrar el JWT como una cadena. Cuando implementas el controlador de eventos, los datos de JWT originales se pueden recuperar 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 del elemento superior. También puedes dejar size sin definir para que el ancho se extienda y se ajuste al ancho de la configuración text. Consulta los botones de la API de la Billetera de Google para ver ejemplos de botones con diferentes configuraciones de size.
text String N Obsoleto
textsize String N Cuando se especifica textsize=large, el tamaño del texto y del botón aumenta considerablemente en casos con requisitos especiales de la IU.
theme String N Es el tema del botón que se mostrará. Los valores posibles son dark y light. El tema predeterminado es dark. Consulta los botones de la API de la Billetera de Google para ver ejemplos de botones con diferentes configuraciones de theme.

JWT de la API de la Billetera de Google

El JWT de la API de la Billetera de Google 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 Tu cuenta de servicio de Google Cloud generó la dirección de correo electrónico.
aud String Y Público. El público para los objetos de la API de la Billetera de Google siempre será google.
typ String Y Tipo de JWT. El público para los objetos de la API de la Billetera de Google siempre será savetowallet.
iat Número entero Y Se emite a la hora en segundos desde la época.
payload Objeto Y carga útil.
payload.eventTicketClasses Array N Clase del boleto del evento para guardar.
payload.eventTicketObjects Array N Objeto de ticket de evento para guardar.
payload.flightClasses Array N Clase de vuelo para ahorrar.
payload.flightObjects Array N Objeto de vuelo para guardar.
payload.giftCardClasses Array N Categoría de tarjeta de regalo para guardar.
payload.giftCardObjects Array N Objeto de tarjeta de regalo para guardar.
payload.loyaltyClasses Array N Categoría de lealtad para guardar.
payload.loyaltyObjects Array N Objeto de lealtad para guardar.
payload.offerObjects Array N Objeto de oferta para guardar.
payload.offerClasses Array N Ofrece la clase para ahorrar.
payload.transitObjects Array N Objeto de transporte público para guardar.
payload.transitClasses Array N clase de transporte público para ahorrar.
origins Array Y Arreglo de dominios para aprobar para la funcionalidad de guardado de JWT. El botón de la API de la Billetera de Google no se renderizará cuando no esté definido el campo origins. Es posible que recibas los mensajes "Carga rechazada por X-Frame-Options" o "No se mostró mostrar" en la consola del navegador si el campo de orígenes no está definido.

El JWT codificado debe tener un aspecto 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 de guardado correcto.
onfailure String N El nombre de cadena de la función del controlador de devolución de llamada con errores de guardado. A esta función se le pasa un objeto de error que contiene un errorCode y errorMessage.
onprovidejwt String N Nombre de cadena de la función para proporcionar controlador de JWT. El propósito de esta función es interceptar y manipular los datos de JWT antes de que el objeto se agregue a la Billetera de Google. Esta función no toma parámetros y debe mostrar el JWT como una cadena. Cuando implementas el controlador de eventos, los datos de JWT originales se pueden recuperar en el campo this.getOpenParams().renderData.userParams.jwt.

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

En las siguientes tablas, se enumeran los códigos de error y los mensajes de error predeterminados que se pasan en el objeto de error 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 Google Wallet.
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 cerrada.
ORIGIN_MISMATCH El origen del botón no coincide con los especificados en la lista de orígenes.
INVALID_NUM_TYPES Se puede especificar exactamente un tipo de objeto.
INVALID_SIGNATURE No se pudo verificar la firma.
INVALID_DUPLICATE_IDS No se permiten objetos o clases duplicados.
INVALID_JWT El JWT no es válido.
INVALID_EXP_IAT El JWT venció o se emitió en el futuro.
INVALID_AUD Valor no válido para el campo AUD.
INVALID_TYP El valor para el campo TYP no es válido.
INVALID_NUM_OBJECTS Se puede especificar exactamente un objeto y, como máximo, una clase para tarjetas de lealtad, tarjetas de regalo y ofertas.
MALFORMED_ORIGIN_URL El formato de la URL de origen es incorrecto. 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 lenguaje del botón de JavaScript cambia según los siguientes criterios:

  1. Si el usuario accedió a Google, el botón se mostrará en el idioma preferido que se indica en el perfil de la Cuenta de Google del usuario. Los usuarios pueden consultar Cómo cambiar el idioma para descubrir cómo modificar 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 procesa en el idioma correcto según la lógica anterior o si la redacción no es natural, comunícate con nuestro equipo de asistencia al cliente.