Flusso di comunicazione con Smart Tap

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

La seguente sezione descrive la configurazione descritta in questa immagine.

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.

La seguente sezione descrive la configurazione descritta in questa immagine.

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.

La seguente sezione descrive la configurazione descritta in questa immagine.

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:

  1. Aggiornare il saldo o lo stato dell'utente
  2. Aggiorna il tuo backend in base alla transazione
  3. 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.