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:
- 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.
- 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.