Przepływ komunikacji Smart Tap

Komunikacja między terminalem a aplikacją Portfel Google

Terminal określa siebie za pomocą identyfikatora sprzedawcy zmapowanego na identyfikator wydawcy elementów promocyjnych. Kiedy jest używana funkcja smart tap, terminal przesyła swój identyfikator sprzedawcy na urządzenie użytkownika. Aplikacja Portfel Google sprawdza identyfikator klasy i identyfikator sprzedawcy każdej przechowywanej karty. Po znalezieniu dopasowania aplikacja Portfel Google przesyła odpowiednie karty do terminala. Szczegóły konfiguracji znajdziesz w artykule Konfiguracja sprzedawcy.

Przykład 1. Jeden wydawca elementów promocyjnych

W poniższej sekcji opisano konfigurację przedstawioną na tej ilustracji.

Na poprzednim schemacie są 2 różne wystawcy:

  • Wystawca 2018 jest deweloperem karty (nazywanym też agregatorem)
  • Wystawca 1990 to sprzedawca fooPizza (nazywany też wystawcą elementów promocyjnych).

Wydawca elementów promocyjnych, fooPizza, chce włączyć funkcję smart tap na swojej karcie (zarządzanej przez agregatora). Aby włączyć smart tap w terminalach sprzedawcy, Agregator i wydawca elementów promocyjnych muszą wykonać poniższe czynności.

Step Rola Opis
1 Agregator Utwórz klasę i obiekt karty (odpowiednio na diagramie abc i 123).
2 Agregator Podaj identyfikator wydawcy elementów promocyjnych we właściwości redemptionIssuers klasy karty. Dzięki temu Portfel Google otrzyma informację, że identyfikator wydawcy 1990 może wykorzystywać obiekty karty, które odwołują się do tej klasy.
3 Wystawca elementów promocyjnych Uzyskaj identyfikator sprzedawcy (na diagramie: 12345678).
4 Wystawca elementów promocyjnych Ustaw identyfikator sprzedawcy 12345678 na każdym terminalu obsługującym smart tap, który będzie używany. Każdy obiekt z identyfikatorem klasy abc i identyfikatorem sprzedawcy 12345678 zostanie przekazany do czytnika.

Przykład 2. Wielu wydawców elementów promocyjnych

Pojedyncza klasa karty może mieć wielu wystawców elementów promocyjnych. Aby można było wykorzystać konkretną klasę karty, identyfikator wydawcy elementów promocyjnych musi być zawarty we właściwości redemptionIssuers tej klasy. Każdy wydawca elementów promocyjnych ma własny identyfikator sprzedawcy, który jest konfigurowany na terminalach obsługujących smart tap.

W poniższej sekcji opisano konfigurację przedstawioną na tej ilustracji.

Na poprzednim diagramie występują 3 różne wystawcy:

  • Wystawca 8088 jest deweloperem karty (agregatorem)
  • Wystawca 1990 to sprzedawca fooPizza (wystawca kodu promocyjnego)
  • Wydawca 2018 to sprzedawca, yumPie (wystawca elementów promocyjnych)

Aby włączyć smart tap w terminalach sprzedawców, Agregator i wydawca elementów promocyjnych muszą wykonać poniższe czynności.

Step Rola Opis
1 Agregator Utwórz klasę i obiekt karty (odpowiednio na diagramie abc i 123).
2 Agregator Podaj identyfikatory wydawców elementów promocyjnych we właściwości redemptionIssuers klasy karty. Dzięki temu Portfel Google otrzyma informację, że identyfikatory wydawców 1990 i 2018 mogą wykorzystywać obiekty karty, które odwołują się do tej klasy.
3 Wystawcy punktów promocyjnych Uzyskaj identyfikatory kolektora (na diagramie: 12345678 dla fooPizza i 18802001 dla yumPie).
4 Wystawcy punktów promocyjnych Ustaw odpowiedni identyfikator sprzedawcy na każdym terminalu obsługującym smart tap, który będzie używany. Każdy obiekt z identyfikatorem klasy abc i zgodnym identyfikatorem sprzedawcy zostanie przekazany do czytnika.

Przykład 3. Brak agregatora

Klasę karty można utworzyć i opublikować w ramach tego samego konta wydawcy. W takim przypadku nie ma agregatora zarządzającego klasami kart wielu wydawców elementów promocyjnych. Aby można było wykorzystać konkretną klasę karty, deweloper karty musi podać swój identyfikator wydawcy we właściwości redemptionIssuers klasy. Deweloper karty musi następnie uzyskać identyfikator sprzedawcy i skonfigurować go na swoich terminalach obsługujących smart tap.

W poniższej sekcji opisano konfigurację przedstawioną na tej ilustracji.

Deweloper karty musi wykonać poniższe czynności, aby włączyć smart tap w terminalach sprzedawców.

Step Rola Opis
1 Twórca karty Utwórz klasę i obiekt karty (odpowiednio na diagramie abc i 123).
2 Twórca karty Podaj identyfikator wydawcy we właściwości redemptionIssuers klasy karty. To informuje Portfel Google, że identyfikator wydawcy 2018 może wykorzystywać obiekty karty, które odwołują się do tej klasy.
3 Twórca karty Uzyskaj identyfikator sprzedawcy (na diagramie: 12345678).
4 Twórca karty Ustaw odpowiedni identyfikator sprzedawcy na każdym terminalu obsługującym smart tap, który będzie używany. Każdy obiekt z identyfikatorem klasy abc i zgodnym identyfikatorem sprzedawcy zostanie przekazany do czytnika.

Wrażenia użytkowników i zachowania użytkowników

Działanie danych przesyłanych między terminalem a aplikacją Portfel Google zależy od użytkownika oraz sposobu, w jaki w danym momencie korzysta on z tej aplikacji.

Scenariusz 1. Użytkownik otwiera określoną kartę

Step Rola Opis
1 Użytkownik Wybierz konkretną kartę w aplikacji Portfel Google.
2 Użytkownik Kliknij terminal obsługujący smart tap.
3 Terminal (Identyfikator sprzedawcy jest zgodny) Karta jest przesyłana do terminala.
(Identyfikator sprzedawcy się nie zgadza) Karta nie zostanie przesłana do terminala.

Scenariusz 2. Karta Strona główna Portfela Google lub odblokowany ekran

Step Rola Opis
1 Użytkownik Otwórz kartę Strona główna w aplikacji Portfel Google lub odblokuj ekran urządzenia.
2 Użytkownik Kliknij terminal obsługujący smart tap.
3 Terminal (Pojedynczy prawidłowy identyfikator sprzedawcy) Karta jest przesyłana do terminala.
(Dopasowanie wielu prawidłowych identyfikatorów kolektora) Wyświetlanie karuzeli prawidłowych kart i przesłania tych wybranych przez użytkownika.

Uwaga: ważność karty zależy od konkretnej konfiguracji obiektu karty. Sprawdź te właściwości obiektu przekazywania:

  • state
  • validTimeInterval

Przykład pobierania przez Smart Tap

Tabela poniżej opisuje wydawców i karty, które zostaną użyte w tym przykładzie:

Nazwa sprzedawcy ILuvCoffee Kawiarnia Mocha-R-Us
Identyfikator wydawcy 123 456 789
Identyfikator sprzedawcy 11111111 44444444 77777777
Poziomy lojalności R-podstawowy Moje nagrody
R-złoty

ILuvCoffee ma 2 poziomy programów lojalnościowych: R-podstawowy i R-Gold. Tymczasem Coffee-Foo ma program lojalnościowy z 1 poziomem Moje nagrody, a Mocha-R-Us nie ma programu lojalnościowego.

W ramach kampanii z promocją krzyżową sprzedawcy chcą zaoferować swoim klientom następujące opcje:

  • Klienci poziomu R-podstawowy mogą używać smart tap, aby wykorzystać członkostwo w programie lojalnościowym w Coffee-Foo i Mocha-R-Us
  • Klienci poziomu R-Gold nie muszą korzystać z technologii smart tap
  • Klienci korzystający z Moich nagród mogą za pomocą smart tap wykorzystać członkostwo w programie lojalnościowym tylko w Coffee-Foo

Aby ta kampania działała, każda klasa lojalnościowa musi mieć podane niżej wartości ustawione we właściwości redemptionIssuers definicji klasy.

Klasa lojalnościowa Identyfikatory wydawców elementów promocyjnych
R-podstawowy ["456", "789"]
R-złoty []
Moje nagrody ["456"]

W tej konfiguracji wszystkie obiekty biletu, które odwołują się do tych klas, mają następujące identyfikatory kolektora:

  • R-podstawowy: 44444444, 77777777
  • R-złoty: nie będą dodawane żadne identyfikatory sprzedawców.
  • Moje nagrody: 44444444

Uwierzytelnianie sprzedawców w momencie kliknięcia

W ramach konfiguracji wydawcy z kontem wystawcy może być powiązanych wiele kluczy publicznych. Te klucze publiczne są przechowywane w aplikacji Portfel Google, która używa ich do uwierzytelniania, gdy użytkownik zbliży urządzenie do terminala z obsługą smart tap. Ten etap uwierzytelniania ma miejsce po znalezieniu przez aplikację obiektu karty przydzielonego użytkownikowi, który ma identyfikator sprzedawcy odpowiadający wartości reklamowanej przez terminal.

Nawiązując do przykładu z poprzedniej sekcji, w tabeli poniżej znajdziesz klucze publiczne powiązane z poszczególnymi wydawcami.

Nazwa sprzedawcy ILuvCoffee Kawiarnia Mocha-R-Us
Identyfikator wydawcy 123 456 789
Identyfikator sprzedawcy 11111111 44444444 77777777
Poziomy lojalności R-podstawowy Moje nagrody
R-złoty
Klucze publiczne aaa bbb

Przykładowy klient ma zapisane w aplikacji Portfel Google te karty lojalnościowe:

  • ILuvCoffee: R-podstawowy
  • Coffee-Foo: Moje nagrody

Tak jak poprzednio we właściwości redemptionIssuers dla każdej klasy programu lojalnościowego ustawiono te wartości.

  • R-podstawowy: ["456", "789"]
  • Moje nagrody: ["456"]

Jeśli użytkownik zbliży urządzenie do terminala w przypadku każdego sprzedawcy, może to mieć 3 możliwe skutki:

Terminal sprzedawcy Wynik
ILuvCoffee Ponieważ ILuvCoffee (identyfikator wydawcy wykorzystania 123) nie jest obecnie skonfigurowany do wykorzystywania własnej klasy programu lojalnościowego (R-podstawowy), nic nie jest przesyłane.
Kawiarnia Aplikacja Portfel Google uwierzytelnia się w terminalu Coffee-Foo za pomocą klucza publicznego bbb. W zależności od tego, jaki ekran wyświetla się na urządzeniu, wystąpi jeden z scenariuszy wymienionych w sekcji Interfejs użytkownika.
Mocha-R-Us W tym przykładzie nie ma klucza publicznego dla testów Mocha-R-Us. Mimo że program R-podstawowy można wykorzystać u sprzedawcy, nie jest on w stanie uwierzytelnić się w terminalu, więc nic nie będzie przesyłane.

Limity uwierzytelniania

Gdy karta zostanie zsynchronizowana z aplikacją Portfel Google użytkownika, wszyscy wystawcy kart promocyjnych są szukani w backendzie Portfela Google. Identyfikator sprzedawcy, klucze publiczne i wersje kluczy każdego wystawcy elementów promocyjnych są przechowywane lokalnie w aplikacji Portfel Google.

Karta może mieć wiele identyfikatorów wydawców elementów promocyjnych. Każdy identyfikator jest mapowany na identyfikator sprzedawcy konkretnego sprzedawcy. Poza tym pojedynczy identyfikator sprzedawcy może mieć wiele kluczy publicznych i wersji kluczy.

Jeśli aplikacja Portfel Google nie ma kart, które można wykorzystać w tym terminalu, nie próbuje uwierzytelnić się w terminalu. Określa on go na podstawie identyfikatora sprzedawcy i wersji klucza publicznego. Aby zaktualizować klucze publiczne karty, terminal musi mieć połączenie z internetem, co pozwoli pobierać nowe klucze publiczne z backendu Portfela Google.

Jedna karta może być powiązana z wieloma kluczami publicznymi jednocześnie. Informacje o ustawianiu wielu kluczy publicznych dla tej samej karty znajdziesz w sekcji Konfiguracja sprzedawcy.

Przekazywanie wartości podczas płatności zbliżeniowych

Aby wysyłać dane z karty, gdy zbliżasz się do terminala, musisz ustawić smartTapRedemptionValue obiektu karty. Gdy w klasie odpowiadającej obiektowi włączy się obsługa smart tap, ta wartość zostanie wysłana do terminala.

Na podstawie integracji i przypadku użycia ta wartość będzie używana do identyfikowania karty użytkownika i wykonywania niezbędnych działań logicznych transakcji, na przykład:

  1. Aktualizowanie salda lub stanu użytkownika
  2. Aktualizowanie własnego backendu na podstawie transakcji
  3. Za pomocą interfejsu Google Wallet API wysyłaj aktualizację obiektu karty, aby odzwierciedlała ona wszystkie zmiany stanu użytkownika na jego urządzeniu.

Szyfrowaniem wszystkich danych przesyłanych przez NFC zajmuje się terminal i aplikacja Portfel Google. Po zakończeniu Smart Tap dane są odszyfrowywane przez terminal. Dane zawierają rekordy NDEF obiektu usługi, które reprezentują każdą przesłaną kartę. Service number NDEF Record obiektu usługi zawiera ładunek z wartością ustawioną we właściwości smartTapRedemptionValue obiektu karty. Oznacza to, że deweloper karty nie musi szyfrować przesyłanych danych.

Jeśli chcesz dodać kolejną warstwę zabezpieczeń, możesz skonfigurować właściwość smartTapRedemptionValue w taki sposób, aby tylko system odbierający przesyłane dane (np. punkt sprzedaży) mógł je odszyfrowywać. Jednak za proces szyfrowania/odszyfrowywania odpowiada deweloper karty i administrator punktu sprzedaży.