Comunicazione tra un terminale e l'app Google Wallet
Un terminale si identifica con un ID commerciante associato a un ID emittente di utilizzo. Quando si verifica uno Smart Tap, il terminale trasmette l'ID raccolta al dispositivo dell'utente. L'app Google Wallet esamina quindi l'ID classe e l'ID collettore di ogni tessera memorizzata. Quando vengono trovate una o più corrispondenze, l'app Google Wallet trasmette le tessere corrispondenti al terminale. Consulta Configurazione commerciante per i dettagli sulla configurazione.
Esempio 1: emittente con un solo riscatto
Nel diagramma precedente sono presenti due diversi emittenti:
- L'emittente
2018
è uno sviluppatore di pass (chiamato anche aggregatore) - L'emittente
1990
è un commerciante, fooPizza (chiamato anche Emittente con riscatto)
L'emittente delle promozioni, fooPizza, vuole attivare la funzionalità Smart Tap per il proprio pass (gestito dall'aggregatore). L'aggregatore e l'emittente di codici promozionali devono completare i seguenti passaggi per attivare Smart Tap per i terminali dei commercianti.
Passaggio | Ruolo | Descrizione |
---|---|---|
1 | Aggregatore | Crea una classe di accesso e un oggetto (nel diagramma, rispettivamente abc e 123 ). |
2 | Aggregatore | Includi l'ID dell'emittente di utilizzo nella
proprietà redemptionIssuers della classe della tessera. In questo modo
informa Google Wallet che l'ID emittente 1990 è autorizzato
a utilizzare gli oggetti del pass che fanno riferimento a questa classe. |
3 | Riscatto Emittente | Ottieni un ID raccoglitore (nel diagramma, 12345678 ).
|
4 | Riscatto Emittente | Imposta l'ID raccoglitore 12345678 su ogni terminale compatibile con Smart Tap che verrà utilizzato. Qualsiasi oggetto con ID classe abc e ID raccoglitore 12345678 verrà trasportato al lettore. |
Esempio 2: più emittenti di rimborsi
Una singola classe di pass può avere più emittenti di riscatto. Per poter
utilizzare una classe specifica di pass, l'ID dell'emittente di utilizzo deve essere incluso nella
proprietà redemptionIssuers
di quella classe. Ogni Emittente di promozioni dispone di un proprio ID collettore, che viene configurato sui terminali compatibili con Smart Tap.
Nel diagramma precedente, sono presenti tre diversi emittenti:
- L'emittente
8088
è uno sviluppatore di pass (aggregatore) - L'emittente
1990
è un commerciante, fooPizza (Emittente di riscatto) - L'emittente
2018
è un commerciante, yumPie (emittente di riscatto)
L'aggregatore e gli emittenti di riscatto devono completare i seguenti passaggi per attivare Smart Tap per i terminali dei commercianti.
Passaggio | Ruolo | Descrizione |
---|---|---|
1 | Aggregatore | Crea una classe di accesso e un oggetto (nel diagramma, rispettivamente abc e 123 ). |
2 | Aggregatore | Includi gli ID emittente nella proprietà redemptionIssuers della classe della tessera. In questo modo
informa Google Wallet che gli ID emittente 1990 e
2018 sono autorizzati a utilizzare gli oggetti del pass che fanno riferimento
a questa classe. |
3 | Riscatto Emittenti | Recupera gli ID raccoglitore (nel diagramma, 12345678 per
fooPizza e 18802001 per yumPie). |
4 | Riscatto Emittenti | Imposta l'ID raccoglitore corrispondente su ogni terminale compatibile con Smart Tap che verrà utilizzato. Qualsiasi oggetto con l'ID classe abc e un ID raccoglitore corrispondente verranno inviati al lettore. |
Esempio 3: nessun aggregatore
Una classe di tessera può essere sviluppata ed emessa all'interno dello stesso account emittente. In questo caso, non esiste un aggregatore che gestisce le classi di pass per più emittenti di riscatto. Per poter utilizzare una classe specifica di pass, lo sviluppatore della tessera deve includere l'ID emittente nella proprietà redemptionIssuers
della classe.
Lo sviluppatore della tessera deve quindi ottenere un ID raccoglitore e configurarlo sui propri terminali che supportano Smart Tap.
Lo sviluppatore della tessera deve completare i seguenti passaggi per attivare Smart Tap per i terminali dei commercianti.
Passaggio | Ruolo | Descrizione |
---|---|---|
1 | Pass Sviluppatore | Crea una classe di accesso e un oggetto (nel diagramma, rispettivamente abc e 123 ). |
2 | Pass Sviluppatore | Includi il proprio ID emittente nella proprietà redemptionIssuers
della classe della tessera. Questo indica a Google Wallet che l'ID emittente 2018 può utilizzare il trasferimento di oggetti che fanno riferimento a questa classe. |
3 | Pass Sviluppatore | Ottieni un ID raccoglitore (nel diagramma, 12345678 ).
|
4 | Pass Sviluppatore | Imposta l'ID raccoglitore corrispondente su ogni terminale compatibile con Smart Tap che verrà utilizzato. Qualsiasi oggetto con l'ID classe abc e un ID raccoglitore corrispondente verranno inviati al lettore. |
Esperienza e comportamento utente
Il comportamento di ciò che viene trasmesso tra un terminale e l'app Google Wallet dipende dall'utente e dalle modalità di interazione con l'app Google Wallet in quel momento.
Scenario 1: l'utente apre un pass specifico
Passaggio | Ruolo | Descrizione |
---|---|---|
1 | Utente | Seleziona una tessera specifica nell'app Google Wallet. |
2 | Utente | Tocca un terminale abilitato per Smart Tap. |
3 | Terminale | (Corrispondenze ID collezioni) Il pass viene trasmesso al terminale. (ID raccolta non corrispondente) La tessera non viene trasmessa al terminale. |
Scenario 2: scheda Home di Google Wallet o visualizzazione di schermata sbloccata
Passaggio | Ruolo | Descrizione |
---|---|---|
1 | Utente | Apri la scheda Home nell'app Google Wallet o sblocca lo schermo del dispositivo. |
2 | Utente | Tocca un terminale abilitato per Smart Tap. |
3 | Terminale | (Corrispondenza con singolo ID commerciante valido) La tessera viene
trasmessa al terminale.
(Più ID raccoglitori validi corrispondono) Visualizza un carosello di tessere valide e trasmetti quello selezionato dall'utente. |
Nota: la validità di un passaggio dipende dalla configurazione specifica dell'oggetto pass. Assicurati di controllare le seguenti proprietà dell'oggetto Pass:
state
validTimeInterval
Esempio di raccolta Smart Tap
La tabella seguente descrive gli emittenti e le tessere che verranno utilizzati in questo esempio:
Nome del commerciante | ILuvCoffee | Caffè | Mocha-R-U |
---|---|---|---|
ID emittente | 123 |
456 |
789 |
ID raccoglitore | 11111111 |
44444444 |
77777777 |
Livelli del programma fedeltà | R-Basic | I miei premi | |
R-oro |
ILuvCoffee ha due diversi livelli di fedeltà: R-Basic e R-Gold. Nel frattempo, Coffee-Foo ha un programma fedeltà con un singolo livello, I miei premi, e Mocha-R-Us non ha alcun programma fedeltà.
Nell'ambito di una campagna per promozione incrociata, i commercianti vorrebbero avere a disposizione le seguenti opzioni per i loro clienti:
- I clienti del livello R-Basic possono utilizzare la tecnologia Smart Tap per riscattare l'abbonamento fedeltà sia presso Coffee-Foo che presso Mocha-R-Us
- I clienti con livello R-Gold non hanno bisogno dell'utilizzo dello Smart Tap
- I clienti di My Rewards possono utilizzare Smart Tap per riscattare l'abbonamento fedeltà solo presso Coffee-Foo
Affinché questa campagna funzioni, ogni classe fedeltà dovrà impostare i seguenti valori
nella proprietà redemptionIssuers
della definizione della classe.
Classe fedeltà | ID emittente di utilizzo |
---|---|
R-Basic | ["456", "789"] |
R-oro | [] |
I miei premi | ["456"] |
Con questa configurazione, tutti gli oggetti di trasferimento che fanno riferimento a queste classi avranno i seguenti ID raccoglitore:
- R-Basic:
44444444
,77777777
- R-Gold: non verranno inclusi ID raccoglitore
- I miei premi:
44444444
Autenticazione del raccoglitore al momento del tocco
Nell'ambito della configurazione dell'emittente, a un account emittente potrebbero essere associate più chiavi pubbliche. Queste chiavi pubbliche vengono memorizzate nell'app Google Wallet, che le utilizza per l'autenticazione quando un utente tocca il proprio dispositivo su un terminale abilitato per Smart Tap. Questo passaggio di autenticazione avviene dopo che l'app ha trovato un oggetto pass inviato all'utente con un ID raccoglitore corrispondente al valore pubblicizzato dal terminale.
Proseguendo con l'esempio della sezione precedente, la seguente tabella descrive le chiavi pubbliche associate a ogni emittente.
Nome del commerciante | ILuvCoffee | Caffè | Mocha-R-U |
---|---|---|---|
ID emittente | 123 |
456 |
789 |
ID raccoglitore | 11111111 |
44444444 |
77777777 |
Livelli del programma fedeltà | R-Basic | I miei premi | |
R-oro | |||
Chiavi pubbliche | aaa | bbb |
Un cliente di esempio ha le seguenti carte fedeltà salvate nella sua app Google Wallet:
- ILuvCoffee: R-Basic
- Coffee-Foo: I miei premi
Come in precedenza, nella proprietà redemptionIssuers
vengono impostati i seguenti valori per
ogni classe fedeltà.
- R-Basic:
["456", "789"]
- I miei premi:
["456"]
Se l'utente tocca il dispositivo ai terminali per ogni commerciante, ci sono tre possibili risultati:
Terminale del commerciante | Risultato |
---|---|
ILuvCoffee | Dal momento che ILuvCoffee (ID emittente di utilizzo 123 ) non è attualmente configurato per riscattare la propria classe fedeltà, R-Basic, non viene trasmesso nulla. |
Caffè | L'app Google Wallet esegue l'autenticazione al terminale Coffee-Foo utilizzando la chiave pubblica bbb . A seconda della
schermata corrente che l'utente sta visualizzando sul dispositivo, verrà visualizzato uno
degli scenari elencati nella
sezione
Esperienza utente. |
Mocha-R-U | In questo esempio non esiste una chiave pubblica per Mocha-R-U. Anche se il programma R-Basic può essere utilizzato con il commerciante, non può eseguire l'autenticazione sul terminale, quindi non verrà trasmesso nulla. |
Limiti di autenticazione
Quando una tessera viene sincronizzata con l'app Google Wallet di un utente, tutti gli Emittenti di questa tessera vengono cercati nel backend di Google Wallet. L'ID raccoglitore, le chiavi pubbliche e le versioni della chiave per ogni Emittente di utilizzo vengono archiviati localmente nell'app Google Wallet.
Una tessera può avere molti ID emittente di utilizzo. Ognuna viene poi mappata a uno specifico ID commerciante per uno specifico commerciante. Inoltre, possono esistere molte chiavi pubbliche e versioni delle chiavi per un singolo ID raccoglitore.
L'app Google Wallet non tenterà di eseguire l'autenticazione su un terminale se non sono presenti tessere utilizzabili da quel terminale. basato sull'ID raccoglitore e sulla versione della chiave pubblica. Per aggiornare le chiavi pubbliche della tessera, il terminale deve disporre di una connessione a internet in modo da poter recuperare le nuove chiavi pubbliche dal backend di Google Wallet.
Una singola tessera può essere associata a più chiavi pubbliche contemporaneamente. Consulta Configurazione commerciante per informazioni su come impostare più chiavi pubbliche per lo stesso pass.
Trasmissione del valore durante il tocco
Per inviare dati da una tessera durante il tocco, è necessario impostare il valore smartTapRedemptionValue
dell'oggetto della tessera. Una volta abilitata la classe corrispondente
all'oggetto per Smart Tap, questo valore verrà inviato al terminale.
In base all'integrazione e al caso d'uso, questo valore verrà utilizzato per identificare il pass dell'utente ed eseguire qualsiasi logica di transazione necessaria, ad esempio:
- Aggiornare il saldo o lo stato dell'utente
- Aggiorna il tuo backend in base alla transazione
- Emetti un aggiornamento dell'oggetto pass utilizzando l'API Google Wallet in modo che rifletta eventuali modifiche allo stato dell'utente sul dispositivo
Il terminale e l'app Google Wallet gestiscono la crittografia di tutti i dati trasmessi tramite NFC. Il terminale gestisce la decrittografia dei dati dopo lo Smart
Tap. All'interno dei dati sono presenti record NDEF degli oggetti di servizio che rappresentano ogni pass trasmesso. L'oggetto Service number NDEF Record
dell'oggetto di servizio ha un payload che contiene il valore impostato nella proprietà smartTapRedemptionValue
dell'oggetto pass. Ciò significa che lo sviluppatore della tessera non deve gestire la crittografia dei dati trasmessi.
Se vuoi aggiungere un ulteriore livello di sicurezza, puoi impostare la proprietà smartTapRedemptionValue
in modo che solo il sistema che riceve i dati trasmessi (ad esempio un point of sale) possa decriptarli. Tuttavia, lo sviluppatore della tessera e l'amministratore del POS saranno responsabili della procedura di crittografia/decrittografia.