L'API Google Wallet Passes offre ai partner la possibilità di specificare un endpoint per l'attivazione di un biglietto per il trasporto pubblico. Quando è necessaria l'attivazione, verrà visualizzato un pulsante "Attiva" per l'utente che, se toccato, chiamerà l'endpoint specificato con i parametri descritti di seguito. L'endpoint deve garantire che la tessera abbia informazioni valide per l'utilizzo (codice a barre o ispezione visiva) prima di tornare, dopodiché la tessera nella sezione Wallet dell'utente verrà aggiornata per mostrare le informazioni sull'utilizzo. Tieni presente che prima dell'attivazione non verranno visualizzate informazioni esistenti sull'utilizzo.
API Activation
L'endpoint di attivazione è specificato nell'API utilizzando activationOptions
nella
classe di transito.
Il partner è responsabile del mantenimento di un endpoint di attivazione funzionante con una latenza ragionevole.
activationOptions: { activationUrl: string }
Campo | Descrizione |
---|---|
activationUrl |
URL dell'endpoint del partner che verrà chiamato per le richieste di attivazione. L'URL deve essere ospitato su HTTPS e il file robots.txt deve consentire a UserAgent:Google-Valuables di accedere al percorso dell'URL. |
Lo stato di attivazione viene memorizzato nell'oggetto utilizzando il campo activationStatus
.
Gli stati validi includono NOT_ACTIVATED
e ACTIVATED
. L'endpoint di attivazione deve aggiornare l'oggetto con lo stato ACTIVATED
e garantire che l'oggetto abbia informazioni di utilizzo valide, come un codice a barre o parametri di ispezione visiva. Il campo deviceContext
può essere utilizzato per il blocco del dispositivo.
activationStatus: enum (ActivationStatus), deviceContext: { deviceToken: string }, hasLinkedDevice: boolean
Campo | Descrizione |
---|---|
activationStatus |
Stato di attivazione per questo oggetto in transito. Questo stato cambierà la rappresentazione del ticket e consentirà agli utenti di intervenire. Ad esempio, se nei dettagli del ticket viene visualizzato un pulsante Attiva, se questo criterio è impostato su I valori accettati sono:
|
deviceContext |
Il contesto del dispositivo a cui associare l'oggetto. Se impostate, le informazioni sull'utilizzo verranno inviate soltanto al dispositivo in questione. |
hasLinkedDevice |
Indica se questo oggetto è attualmente collegato a un singolo dispositivo. |
Campo | Descrizione |
---|---|
deviceToken |
Se impostate, le informazioni sull'utilizzo verranno restituite al dispositivo in questione soltanto al momento dell'attivazione dell'oggetto. Non può essere utilizzato come identificatore stabile per tracciare il dispositivo di un utente. Può cambiare nei diversi pass per lo stesso dispositivo o anche tra attivazioni diverse per lo stesso dispositivo. Quando questa impostazione viene configurata, i chiamanti devono anche impostare
Tieni presente che |
Blocco dispositivo
Il blocco dispositivo è una funzionalità che consente a un utente di attivare il ticket su un dispositivo e di visualizzare le informazioni sull'utilizzo dei biglietti solo su quel dispositivo. È separato da
multipleDevicesAndHoldersAllowedStatus
di ONE_USER_ONE_DEVICE
, che
consente di visualizzare i biglietti solo su un singolo dispositivo. Ti consigliamo di utilizzare lo stato ONE_USER_ALL_DEVICES
con il dispositivo bloccato.
Prima dell'attivazione, l'utente può visualizzare il biglietto e attivare il pulsante su qualsiasi dispositivo di sua proprietà. Una volta attivato e bloccato su un dispositivo, il dispositivo bloccato mostrerà le informazioni sull'utilizzo, mentre sugli altri dispositivi verrà mostrato un pulsante di attivazione per consentire all'utente di spostare il biglietto su un altro dispositivo. Se lo spostamento del ticket non è desiderato, ma l'attivazione su qualsiasi dispositivo lo è, è possibile aggiornarlo su ONE_USER_ONE_DEVICE
durante l'attivazione anziché utilizzare il blocco sul dispositivo.
Per implementare il blocco del dispositivo, l'oggetto deve essere aggiornato con il campo deviceToken
ricevuto con i parametri di attivazione e
impostando hasLinkedDevice
su true nella stessa chiamata API. Se vuoi, il ticket può essere scollegato da un dispositivo impostando hasLinkedDevice
su false in una chiamata API futura.
Parametri di attivazione
La richiesta all'endpoint di attivazione conterrà i seguenti parametri.
Esempio JSON:
{ classId: “123.classId”, objectIds: [ “123.objectId” ], expTimeMillis: 1669671940735, eventType: “activate”, nonce: “1c6fccce-6f66-11ed-a1eb-0242ac120002”, deviceContext: “6fba937a-6f6e-11ed-a1eb-0242ac120002” }
Identificatore | Descrizione |
---|---|
classId |
ID del corso completo. Utilizza il seguente formato: <issuer_id.class_id> |
objectIds |
Array completo di ID oggetto che utilizzano il seguente formato: <issuer_id.object_id> |
expTimeMillis |
Tempo di scadenza in millisecondi dall'EPOCH. Dopo la scadenza, il messaggio deve essere considerato non valido. |
eventType |
Sempre "activate" .
|
nonce |
Non tenere traccia di eventuali pubblicazioni duplicate. |
deviceContext |
Un ID univoco generato da Google che rappresenta il dispositivo su cui l'utente sta eseguendo un'azione. Questo ID deve essere utilizzato per gli aggiornamenti che associano un oggetto a un dispositivo. Questo ID potrebbe non essere costante per le richieste future da un determinato dispositivo. |