Panoramica

L'API Google Wallet Passes offre ai partner la possibilità di salvare i codici a barre in rotazione su Google Wallet. Questi codici a barre sono validi solo per un breve periodo di tempo, fornendo ulteriore sicurezza per ridurre il rischio di screenshot di codici a barre. I codici a barre vengono generati sul dispositivo in base a RFC 6238, con il partner che fornisce la chiave segreta. Tuttavia, se un partner preferisce generare i codici a barre autonomamente, Google fornisce un'API che consente il caricamento collettivo dei codici a barre su Google. Questi codici a barre verranno quindi trasmessi ai telefoni degli utenti, dove agiranno come codici a barre in rotazione, e verranno visualizzati per un breve periodo di tempo. Ci riferiamo a questa soluzione come codici a barre rotanti generati dai partner.

API Partner-generate Rotating Barcode

I codici a barre rotanti generati dal partner vengono creati utilizzando lo stesso oggetto RotatingBarcode. È obbligatorio solo il tipo, anche se consigliamo anche di creare un piccolo insieme iniziale di codici a barre (circa 10 minuti) e di inviarli in initialRotatingBarcodeValues. Il partner è responsabile di garantire che sia sempre disponibile un codice a barre valido per l'utente e initialRotatingBarcodeValues consente che la successiva chiamata di caricamento batch sia asincrona.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
Campo Descrizione
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

I valori da codificare nel codice a barre. Almeno un valore è obbligatorio. Questi codici a barre iniziali servono per colmare il divario tra il momento in cui l'utente acquisisce per la prima volta la tessera e quando viene effettuata la successiva chiamata di caricamento batch.

type

enum (BarcodeType)

obbligatorio. Il tipo di questo codice a barre.

I valori accettati sono:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Campo Descrizione
startDateTime

string

La data e l'ora dal quale è valido il primo codice a barre. I codici a barre verranno ruotati utilizzando periodMillis.

Si tratta di un formato di data e ora in formato ISO 8601 esteso, con un offset.

values[]

string

I valori da codificare nel codice a barre. Almeno un valore è obbligatorio.

Non è previsto un numero massimo di valori, ma tieni presente che le dimensioni del corpo della richiesta non possono superare i 5 MB.

periodMillis

number

Il periodo di validità di ciascun codice a barre.

Aggiornamento batch valori codici a barre

Dopo aver creato l'oggetto RotatingBarcode, ti consigliamo di caricare ogni giorno i codici a barre validi fino alla scadenza della tessera dell'utente. Puoi farlo con il seguente endpoint API REST.

Metodo: transitobject.uploadrotatingbarcodevalues

Carica i valori del codice a barre a rotazione nell'oggetto di transito a cui fa riferimento l'ID oggetto specificato.

Richiesta HTTP

POST https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc eId}/uploadRotatingBarcodeValues

Parametri del percorso

Parametro Descrizione
resourceId

string

L'identificatore univoco di un oggetto.

Corpo della richiesta

Il corpo della richiesta (che non può superare i 5 MB) contiene un'istanza di RotatingBarcodeValues.

Metodo: transitobject.downloadrotatingbarcodevalues

Scarica i valori del codice a barre a rotazione per l'oggetto in transito a cui fa riferimento l'ID oggetto specificato. Questo è utile se i partner vogliono verificare il batch più recente.

Richiesta HTTP

GET https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do wnloadRotatingBarcodeValues?alt=media

Parametri del percorso

Parametro Descrizione
resourceId

string

L'identificatore univoco di un oggetto.

Meccanismi di fallback

Tieni presente che se un codice a barre rotante altrimenti valido non ha codici a barre validi da visualizzare (non sono ancora stati caricati o sono stati utilizzati tutti i codici a barre correnti), verrà mostrato un messaggio di errore all'utente.