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