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
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.
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.
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:
- Aktualizowanie salda lub stanu użytkownika
- Aktualizowanie własnego backendu na podstawie transakcji
- 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.