Pulsante web JavaScript

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

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

JavaScript dell'API Google Wallet

Per analizzare automaticamente g:savetoandroidpay tag HTML al caricamento, includi lo standard JavaScript

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

g:savetoandroidpay tag HTML

Il tag dello spazio dei nomi g:savetoandroidpay definisce posizionamento e vari attributi dell'elemento Aggiungi a Pulsante 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 N 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 sezione Pulsanti dell'API Google Wallet per visualizzare esempi di pulsanti con diverse impostazioni di height.
jwt Stringa Y JWT dell'API Google Wallet.
onsuccess Stringa N Nome della stringa della funzione di gestore del callback di salvataggio riuscito.
onfailure Stringa N Nome della stringa della funzione di gestore del callback di errore di salvataggio. Questa funzione viene passata contenente i valori di errorCode e di errorMessage.
onprovidejwt Stringa N Nome della stringa della funzione di gestore JWT fornita. Lo scopo di questa funzione è intercettare e potenzialmente manipolare 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, è possibile recuperare i dati JWT originali nel campo this.getOpenParams().renderData.userParams.jwt.
size Stringa N Larghezza del pulsante da visualizzare. Puoi impostare size su matchparent in modo che la larghezza corrisponda a quella dell'elemento principale. In alternativa, esci da size non definita quindi la larghezza si estende per adattarsi a quella dell'impostazione text. Consulta la sezione Pulsanti dell'API Google Wallet per visualizzare esempi di pulsanti con diverse impostazioni di size.
text Stringa N Deprecato
textsize Stringa N Quando viene specificato textsize=large, viene visualizzato ha aumentato drasticamente le dimensioni del testo dimensioni del pulsante, per casi con requisiti di interfaccia utente speciali.
theme Stringa N Tema del pulsante da visualizzare. I valori possibili sono: dark e light. Il tema predefinito è dark. Consulta Pulsanti dell'API Google Wallet per visualizzare esempi di pulsanti con diverse impostazioni di theme.

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 dal tuo 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 pochi secondi dall'epoca.
payload Oggetto Y Payload.
payload.eventTicketClasses Array N Classe biglietto evento per salvare.
payload.eventTicketObjects Array N Oggetto ticket evento da salvare.
payload.flightClasses Array N Classe di volo per risparmiare.
payload.flightObjects Array N Flight Object per salvare.
payload.giftCardClasses Array N Classe delle carte regalo per risparmiare.
payload.giftCardObjects Array N Oggetto Carta regalo da salvare.
payload.loyaltyClasses Array N Classe fedeltà per risparmiare.
payload.loyaltyObjects Array N Oggetto fedeltà da salvare.
payload.offerObjects Array N Oggetto offerta per salvare.
payload.offerClasses Array N Offri corso per risparmiare.
payload.transitObjects Array N Oggetto di trasporto pubblico per salvare.
payload.transitClasses Array N Classe di trasporto pubblico per risparmiare.
origins Array Y Array di domini da approvare per la funzionalità di salvataggio JWT. L'API Google Wallet non verrà visualizzato se il campo origins non è definito. Potresti ottenere potenzialmente un messaggio "Caricamento negato da X-Frame-Options" o "Rifiutato di mostrare" messaggi nel nella console del browser quando il campo delle origini non è definito.

Il JWT codificato dovrebbe avere un aspetto 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 inserire il pulsante dell'API Google Wallet.
jwt Stringa Y JWT che definisce i contenuti da salvare.
onsuccess Stringa N Nome della stringa della funzione di gestore del callback di salvataggio riuscito.
onfailure Stringa N Nome della stringa della funzione di gestore del callback di errore di salvataggio. Questa funzione viene passata contenente i valori di errorCode e di errorMessage.
onprovidejwt Stringa N Nome della stringa della funzione di gestore JWT fornita. Lo scopo di questa funzione è intercettare e potenzialmente manipolare 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, è possibile recuperare i dati JWT originali nel campo this.getOpenParams().renderData.userParams.jwt.

Codici e messaggi di errore dell'API Google Wallet

Le seguenti tabelle elencano i codici di errore e i messaggi di errore predefiniti passati nell'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 si fa riferimento nell'oggetto.
CLASS_MISMATCH L'oggetto deve essere presente, dello stesso tipo e deve fare riferimento alla classe inclusa.
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 un solo oggetto e al massimo una classe per carte fedeltà, carte regalo e offerte.
MALFORMED_ORIGIN_URL Formato URL di origine non valido. L'URL deve contenere un protocollo e un dominio.
MISSING_ORIGIN È necessario specificare l'origine.
MISSING_FIELDS In un oggetto o in una classe racchiusi mancano 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 specificata nei Il profilo dell'Account Google dell'utente. Un utente può leggere Cambiare lingua per scoprire come cambiare la lingua preferita dell'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 descritta sopra oppure se la formulazione è innaturale, contatta il nostro team di assistenza.