Pulsante JavaScript JavaScript

L'API Google Wallet consente agli utenti di aggiungere un oggetto a Google Wallet dal Web. Gli utenti possono aggiungere le proprie carte direttamente dal tuo sito web.

Questo riferimento fornisce dettagli sull'elemento HTML g:savetoandroidpay che visualizza un pulsante dell'API Google Wallet, nonché sul token web JSON che descrive il tuo servizio web a Google.

JavaScript dell'API Google Wallet

Per analizzare automaticamente i tag HTML g:savetoandroidpay al caricamento, includi il codice JavaScript standard

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

Per le applicazioni AJAX e il rendering esplicito dei pulsanti dell'API Google Wallet, includi il parametro "parsetags": "explicit".

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

Tag HTML g:savetoandroidpay

Il tag dello spazio dei nomi g:savetoandroidpay definisce il posizionamento e vari attributi del pulsante Aggiungi a Google Wallet. Utilizza questo tag se esegui il rendering di HTML e JWT lato server.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Campo Tipo Obbligatorio Descrizione
height Stringa No Altezza del pulsante da visualizzare. I valori possibili sono: small (altezza 30 px) e standard (altezza 38 px). Il valore predefinito di height è small. Consulta la pagina relativa ai pulsanti dell'API Google Wallet per visualizzare esempi di pulsanti con impostazioni height diverse.
jwt Stringa Y JWT dell'API Google Wallet.
onsuccess Stringa No Nome della stringa della funzione di gestore della funzione di gestore callback di operazione salvata.
onfailure Stringa No Nome della stringa della funzione di gestore del callback di errore di salvataggio. A questa funzione viene trasmesso un oggetto errore contenente un codice errorCode ed errorMessage.
onprovidejwt Stringa No Nome della stringa della funzione di gestore JWT di fornitura. Lo scopo di questa funzione è intercettare e manipolare potenzialmente i dati JWT prima che l'oggetto venga aggiunto a Google Wallet. Questa funzione non accetta parametri e deve restituire il JWT come stringa. Quando implementi il gestore di eventi, i dati JWT originali possono essere recuperati nel campo this.getOpenParams().renderData.userParams.jwt.
size Stringa No Larghezza del pulsante da visualizzare. Puoi impostare size su matchparent in modo che la larghezza corrisponda a quella dell'elemento principale. In alternativa, non definire size in modo che la larghezza si estenda per adattarsi alla larghezza dell'impostazione text. Consulta la pagina relativa ai pulsanti dell'API Google Wallet per visualizzare esempi di pulsanti con impostazioni size diverse.
text Stringa No Deprecata
textsize Stringa No Quando textsize=large è specificato, la dimensione del testo e del pulsante viene notevolmente aumentata, per i casi con requisiti di interfaccia utente speciali.
theme Stringa No Tema del pulsante da visualizzare. I valori possibili sono: dark e light. Il tema predefinito è dark. Consulta la pagina relativa ai pulsanti dell'API Google Wallet per visualizzare esempi di pulsanti con impostazioni theme diverse.

JWT dell'API Google Wallet

Il JWT dell'API Google Wallet definisce gli oggetti e le classi da salvare.

Rappresentazione 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"]
}

Campi

Campo Tipo Obbligatorio Descrizione
iss Stringa Y Indirizzo email generato dall'account di servizio Google Cloud.
aud Stringa Y Pubblico. Il pubblico degli oggetti dell'API Google Wallet sarà sempre google.
typ Stringa Y Tipo di JWT. Il pubblico degli oggetti dell'API Google Wallet sarà sempre savetowallet.
iat Numero intero Y Emesso in secondi dall'epoca.
payload Oggetto Y Oggetto payload.
payload.eventTicketClasses Array No Classe biglietto per un evento da salvare.
payload.eventTicketObjects Array No Oggetto ticket evento da salvare.
payload.flightClasses Array No Classe volo per salvare.
payload.flightObjects Array No Oggetto di volo da salvare.
payload.giftCardClasses Array No Classe carta regalo per risparmiare.
payload.giftCardObjects Array No Oggetto carta regalo da salvare.
payload.loyaltyClasses Array No classe fedeltà per risparmiare.
payload.loyaltyObjects Array No tipo di oggetto fedeltà da salvare.
payload.offerObjects Array No Oggetto dell'offerta da salvare.
payload.offerClasses Array No Offri una classe per risparmiare.
payload.transitObjects Array No Oggetto trasporto pubblico da salvare.
payload.transitClasses Array No Classe trasporto pubblico per risparmiare.
origins Array Y Array di domini da approvare per la funzionalità di salvataggio JWT. Il pulsante dell'API Google Wallet non viene visualizzato quando il campo origins non è definito. Potresti ricevere un messaggio "Caricamento negato da X-Frame-Options" o "Si è rifiutato di visualizzare" nella console del browser quando il campo delle origini non è definito.

Il tuo JWT codificato dovrebbe essere simile al seguente esempio:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

Funzione gapi.savetoandroidpay.render

Questa funzione ti consente di eseguire il rendering esplicito del pulsante API Google Wallet.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
Campo Tipo Obbligatorio Descrizione
dom-container Stringa Y ID del contenitore in cui posizionare il pulsante API Google Wallet.
jwt Stringa Y JWT che definisce i contenuti da salvare.
onsuccess Stringa No Nome della stringa della funzione di gestore della funzione di gestore callback di operazione salvata.
onfailure Stringa No Nome della stringa della funzione di gestore del callback di errore di salvataggio. A questa funzione viene trasmesso un oggetto errore contenente un codice errorCode ed errorMessage.
onprovidejwt Stringa No Nome della stringa della funzione di gestore JWT di fornitura. Lo scopo di questa funzione è intercettare e manipolare potenzialmente i dati JWT prima che l'oggetto venga aggiunto a Google Wallet. Questa funzione non accetta parametri e deve restituire il JWT come stringa. Quando implementi il gestore di eventi, i dati JWT originali possono essere recuperati nel campo this.getOpenParams().renderData.userParams.jwt.

Codici e messaggi di errore dell'API Google Wallet

Le tabelle seguenti elencano i codici e i messaggi di errore predefiniti trasmessi nell'oggetto di errore alla funzione di callback di errore, quando un oggetto non viene salvato correttamente utilizzando il pulsante JavaScript.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE Si è verificato un errore sul server di Google Wallet.
CLASS_NOT_FOUND Impossibile trovare la classe a cui viene fatto riferimento nell'oggetto.
CLASS_MISMATCH L'oggetto deve essere presente, dello stesso tipo e fare riferimento alla classe allegata.
ORIGIN_MISMATCH L'origine del pulsante non corrisponde a quelle specificate nell'elenco delle origini.
INVALID_NUM_TYPES È possibile specificare esattamente un tipo di oggetto.
INVALID_SIGNATURE Impossibile verificare la firma.
INVALID_DUPLICATE_IDS Non sono consentiti oggetti o classi duplicati.
INVALID_JWT JWT non valido.
INVALID_EXP_IAT Il JWT è scaduto o è stato emesso in futuro.
INVALID_AUD Valore non valido per il campo AUD.
INVALID_TYP Valore non valido per il campo TYP.
INVALID_NUM_OBJECTS È possibile specificare esattamente un oggetto e al massimo una classe per carte fedeltà, carte regalo e offerte.
MALFORMED_ORIGIN_URL Formato URL di origine non corretto. L'URL deve contenere un protocollo e un dominio.
MISSING_ORIGIN È necessario specificare l'origine.
MISSING_FIELDS Nell'oggetto o nella classe inclusi mancavano campi obbligatori.

Localizzazione

La lingua nel pulsante JavaScript cambia in base ai seguenti criteri:

  1. Se l'utente ha eseguito l'accesso a Google, il pulsante viene visualizzato nella lingua preferita indicata nel profilo dell'Account Google dell'utente. Un utente può leggere Cambia lingua per scoprire come cambiare la lingua preferita del proprio Account Google.
  2. Se l'utente non ha eseguito l'accesso a Google, il pulsante utilizza il valore ACCEPT-LANGUAGE nell'intestazione HTTP.

Se noti che il pulsante non viene visualizzato nella lingua corretta in base alla logica di cui sopra, o se la formulazione è innaturale, contatta il nostro team di assistenza.