Panoramica

L'API Google Wallet Passes consente ai partner di salvare codici a barre in rotazione su Google Wallet. Questi codici a barre sono validi solo per un breve periodo di tempo, offrendo una maggiore sicurezza per ridurre il rischio di screenshot dei codici a barre. I barcode vengono generati sul dispositivo in conformità con 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 di caricarli collettivamente su Google. Questi codici a barre verranno poi trasmessi ai telefoni degli utenti, dove funzioneranno come i codici a barre rotanti, visualizzandosi per un breve periodo di tempo. Ci riferiamo a questa soluzione come Codici a barre in rotazione generati dal partner.

API di codici a barre rotanti generati dal partner

I codici a barre rotanti generati dal partner vengono creati utilizzando lo stesso oggetto RotatingBarcode. È richiesto solo il tipo, anche se consigliamo di creare anche un piccolo set iniziale di codici a barre (~10 minuti) e di inviarli 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 collettivo 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 hanno lo scopo di colmare il divario tra il momento in cui l'utente acquisisce per la prima volta la tessera e quello in cui viene effettuata la successiva chiamata di caricamento collettivo.

type

enum (BarcodeType)

Obbligatorio. Il tipo di codice a barre.

I valori accettabili sono:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Campo Descrizione
startDateTime

string

La data/ora a partire dalla quale è valido il primo codice a barre. I codici a barre verranno ruotati utilizzando periodMillis.

Si tratta di una data/ora nel formato esteso ISO 8601, con un offset.

values[]

string

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

Non esiste 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 tempo di validità di ogni codice a barre.

Aggiornamento collettivo dei valori dei codici a barre

Dopo aver creato l'oggetto RotatingBarcode, ti consigliamo di caricare ogni giorno un giorno di barcode, fino alla scadenza della tessera dell'utente. Questa operazione può essere eseguita con il seguente endpoint dell'API REST.

Metodo: transitobject.uploadrotatingbarcodevalues

Carica i valori dei codici a barre rotanti nell'oggetto di trasporto 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 dei codici a barre rotanti per l'oggetto di trasporto a cui fa riferimento l'ID oggetto specificato. Questa opzione è utile se i partner vogliono verificare l'ultimo lotto.

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 riserva

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