Przegląd

Interfejs API kart w Portfelu Google umożliwia partnerom zapisywanie rotujących kodów kreskowych w Portfelu Google. Te kody kreskowe są ważne tylko przez krótki czas, co zapewnia dodatkową ochronę i zmniejsza ryzyko zrobienia zrzutu ekranu z kodem kreskowym. Bar kody są generowane na urządzeniu zgodnie z RFC 6238, a partner udostępnia klucz tajny. Jeśli jednak partner woli generować kody kreskowe samodzielnie, Google udostępnia interfejs API, za pomocą którego można przesyłać je do Google w partiach. Te kody kreskowe zostaną przekazane do telefonów użytkowników, gdzie będą działać tak samo jak kody kreskowe rotacyjne, wyświetlając się przez krótki czas. Nazywamy to rozwiązanie „Kod kreskowy generowany przez partnera”.

Interfejs API rotujących kodów kreskowych generowanych przez partnera

Kody kreskowe rotacyjne tworzone przez partnera są tworzone za pomocą tego samego obiektu RotatingBarcode. Wymagany jest tylko typ, ale zalecamy też utworzenie małego, początkowego zestawu kodów kreskowych (około 10 minut) i przesłanie ich w initialRotatingBarcodeValues. Partner musi zadbać o to, aby użytkownik miał zawsze do dyspozycji prawidłowy kod kreskowy. initialRotatingBarcodeValues pozwala na asynchroniczne wywołanie kolejnego przesyłania w grupie.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
Pole Opis
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

Wartości do zakodowania w kodzie kreskowym. Musisz wpisać co najmniej 1 wartość. Te początkowe kody kreskowe mają za zadanie wypełnić lukę między momentem, gdy użytkownik po raz pierwszy uzyskał kartę, a momentem, gdy zostanie wykonane kolejne wywołanie przesyłania zbiorczego.

type

enum (BarcodeType)

Wymagane. Typ tego kodu kreskowego.

Akceptowane wartości:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Pole Opis
startDateTime

string

Data i godzina, od których jest ważny pierwszy kod kreskowy. Kody kreskowe będą obracane za pomocą periodMillis.

Są to data i godzina w rozszerzonym formacie ISO 8601 z przesunięciem.

values[]

string

Wartości do zakodowania w kodzie kreskowym. Musisz wpisać co najmniej 1 wartość.

Nie ma maksymalnej liczby wartości, ale rozmiar treści żądania nie może przekraczać 5 MB.

periodMillis

number

Czas ważności każdego kodu kreskowego.

Zbiorcze aktualizowanie wartości kodów kreskowych

Po utworzeniu obiektu RotatingBarcode zalecamy codzienne przesyłanie na niego nowych kodów kreskowych, aż do wygaśnięcia dokumentu. Można to zrobić za pomocą tego punktu końcowego interfejsu API REST.

Metoda: transitobject.uploadrotatingbarcodevalues

Przesyła rotujące wartości kodów kreskowych do obiektu biletu, do którego odwołuje się podany identyfikator obiektu.

Żądanie HTTP

POST https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc eId}/uploadRotatingBarcodeValues

Parametry ścieżki

Parametr Opis
resourceId

string

Unikalny identyfikator obiektu.

Treść żądania

Treść żądania (której rozmiar nie może przekraczać 5 MB) zawiera instancję RotatingBarcodeValues.

Metoda: transitobject.downloadrotatingbarcodevalues

Pobiera wartości kodów kreskowych rotacyjnych dla obiektu biletu, do którego odwołuje się podany identyfikator obiektu. Jest to przydatne, jeśli partnerzy chcą zweryfikować najnowszą partię.

Żądanie HTTP

GET https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do wnloadRotatingBarcodeValues?alt=media

Parametry ścieżki

Parametr Opis
resourceId

string

Unikalny identyfikator obiektu.

Mechanizmy awaryjne

Pamiętaj, że jeśli prawidłowy obiekt RotatingBarcode nie ma prawidłowych kodów kreskowych do wyświetlenia (nie zostały jeszcze przesłane lub zostały użyte wszystkie obecne kody kreskowe), użytkownik zobaczy komunikat o błędzie.