Wprowadzenie
Kody paskowe wyglądają jak zwykłe kody kreskowe, ale zmieniają się okresowo zwykle co minutę, a terminal/czytnik jest tak zaprogramowany, aby najnowszego. To zabezpieczenie zmniejsza ryzyko związane z robienie zrzutów ekranu z kodem kreskowym, w szczególności kradzież biletu lub nieautoryzowany bilet sprzedaż. Rotacja kodów kreskowych może też służyć jako działanie zastępcze w przypadku urządzeń, które nie mogą korzystają z technologii smart tap ze względu na brak obsługi NFC (brak sprzętu lub wyłączone oprogramowanie).
Dokumentacja API
Szczegółowe informacje techniczne dotyczące rotacji kodów kreskowych znajdziesz w dokumentacji
Typ RotatingBarcode
.
Przykładowy ładunek
JSON | |
---|---|
{ "rotatingBarcode": { "type": "QR_CODE", "valuePattern": "MyRotatingBarcode-{totp_timestamp_seconds}-{totp_value_0}", "alternateText": "Ticket#: 1234567890", "totpDetails": { "algorithm": "TOTP_SHA1", "periodMillis": "3000", "parameters": [ { "key": "3132333435363738393031323334353637383930", "valueLength": "8" } ] } } } |
Mechanizmy awaryjne
Na urządzeniu użytkownika w danym momencie używany jest tylko jeden mechanizm wykorzystania karty. w zależności od konfiguracji karty i możliwości urządzenia. Używane są te typy promocji (w kolejności według priorytetu):
-
Smart Tap: jeśli określono dane payload dla smart tap i urządzenie obsługuje NFC/HCE.
- Użytkownik może to zmienić, klikając „Pokaż kod”, co spowoduje wyświetlenie obracającego się lub statycznego kodu kreskowego.
- Rotacja kodu kreskowego: jeśli określono rotację kodu kreskowego
- Kod kreskowy statyczny: jeśli określono ładunek danych kodu kreskowego.
Określenie wielu ładunków do wykupu może zapewnić obsługę wszystkich użytkowników, ale może mieć wpływ na bezpieczeństwo. W szczególności użycie kodu kreskowego stałego jako zapasowego dla kodu kreskowego rotacyjnego niweczy większość korzyści związanych z bezpieczeństwem wynikających ze stosowania kodów kreskowych rotacyjnych. Statyczny zamiennik kodu kreskowego będzie wyświetlany tylko w widokach internetowych lub w klientach, które nie obsługują obracających się kodów kreskowych. Od dzisiaj wszystkich klientów Portfela Google z obsługą rotacji kodów kreskowych.
Zapisywanie przepływu
Interfejs API Portfela Google oferuje kilka procesów, w tym:
- tworzenie zajęć z karty podarunkowej w celu zaoszczędzenia czasu lub z wyprzedzeniem.
- Wysyłanie w tokenie JWT kompletnych obiektów lub zapisywanie obiektów z wyprzedzeniem, a potem odwoływanie się do nich według identyfikatora w tokenie JWT.
- Aktualizowanie obiektów po ich zapisaniu
Proponowane pole rotacji kodu kreskowego jest zgodne ze wszystkimi tymi przepływami. jednak w celu poprawy bezpieczeństwa sugerujemy wykonanie tych czynności:
-
Wywołaj interfejs API
object:insert
, aby wstawić kartę do serwera Portfela Google i skonfigurować przycisk Dodaj do Portfela Google, aby odwołują się do konkretnego obiektu za pomocą identyfikatora w tokenie JWT. Dzięki temu powstały w ten sposób token JWT nie zawiera tajnego klucza rotacji kodu kreskowego. - Użyj klucza obiektu tajnego dla hasła jednorazowego z zakresu pojedynczej karty
- Klucz, o ile nie zostanie zaktualizowany, jest ważny przez cały okres ważności karty. Nie spodziewamy się, aby ten klucz był aktualizowany w żadnej częstotliwości w trakcie normalnego działania.
Ten diagram sekwencji przedstawia przepływ danych między różnymi podmiotami w przypadku typowej integracji:
