Przegląd

Interfejs API Karty w Portfelu Google umożliwia partnerom zapisywanie obracanych kodów kreskowych w Portfelu Google. Kody te są ważne tylko przez krótki czas, co zwiększa bezpieczeństwo i zmniejsza ryzyko wykonania zrzutu ekranu z kodem kreskowym. Kody kreskowe są generowane na urządzeniu zgodnie ze standardem RFC 6238, a partner podaje tajny klucz. Jeśli jednak partner wolałby samodzielnie generować kody kreskowe, Google udostępnia interfejs API, który umożliwia zbiorcze przesyłanie kodów kreskowych do Google. Będą one wtedy przesyłane na telefony użytkowników i przez krótki czas będą wyświetlać się jak obracające się kody kreskowe. Nazywamy to rozwiązanie jako obrotowe kody kreskowe wygenerowane przez partnera.

Wygenerowany przez partnera interfejs Rotating Barcode API

Rotujące kody kreskowe wygenerowane przez partnera są tworzone za pomocą tego samego obiektu RotatingBarcode. Wymagany jest tylko typ, ale zalecamy utworzenie małego, początkowego zestawu kodów kreskowych (około 10 minut) i wysłanie ich w ciągu initialRotatingBarcodeValues. Partner odpowiada za to, aby zawsze dostępny był prawidłowy kod kreskowy dla użytkownika, a initialRotatingBarcodeValues umożliwia asynchroniczne wywołanie przesyłania zbiorczego.

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

object (RotatingBarcodeValues)

Wartości do zakodowania w kodzie kreskowym. Musisz wpisać co najmniej jedną wartość. Te początkowe kody kreskowe mają na celu wypełnienie luki pomiędzy momentem uzyskania karty przez użytkownika a wykonaniem kolejnego wywołania przesyłania zbiorczego.

type

enum (BarcodeType)

To pole jest wymagane. Typ tego kodu kreskowego.

Dopuszczalne wartości:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Pole Opis
startDateTime

string

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

Jest 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 jedną wartość.

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

periodMillis

number

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

Zbiorcze aktualizowanie wartości kodu kreskowego

Po utworzeniu obiektu RotatingBarcode zalecamy przesyłanie kodów kreskowych z jednego dnia, dopóki karta użytkownika nie wygaśnie. Można to zrobić za pomocą poniższego punktu końcowego interfejsu API REST.

Metoda: transitobject.uploadrotatingbarcodevalues

Przesyła zmieniające się wartości kodu kreskowego do obiektu biletu na przejazd, 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 (nie może przekraczać 5 MB) zawiera instancję RotatingBarcodeValues.

Metoda: transitobject.downloadrotatingbarcodevalues

Pobiera zmieniające się wartości kodu kreskowego dla obiektu biletu, do którego odwołuje się podany identyfikator obiektu. Jest to przydatne, gdy 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 kod RotatingBarcode nie ma prawidłowych kodów kreskowych do wyświetlenia (nie zostały one jeszcze przesłane lub wszystkie bieżące kody kreskowe zostały wykorzystane), użytkownik zobaczy komunikat o błędzie.