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) estandard(altezza 38 px). Il valore predefinito diheightèsmall.
          Consulta la sezione Pulsanti dell'API Google Wallet
          per visualizzare esempi di pulsanti con diverse impostazioni diheight. | 
| 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 sizesumatchparentin modo che la larghezza corrisponda a quella dell'elemento principale. In alternativa, esci dasizenon definita quindi la larghezza si estende per adattarsi a quella dell'impostazionetext.
        Consulta la sezione Pulsanti dell'API Google Wallet
        per visualizzare esempi di pulsanti con diverse impostazioni disize. | 
| 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: darkelight. Il tema predefinito èdark. Consulta
        Pulsanti dell'API Google Wallet
        per visualizzare esempi di pulsanti con diverse impostazioni ditheme. | 
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 originsnon è 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:
- 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.
- Se l'utente non ha eseguito l'accesso a Google, il pulsante utilizza il valore ACCEPT-LANGUAGEnell'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.
