Übersicht

Mit der Google Wallet Passes API haben Partner die Möglichkeit, rotierende Barcodes in Google Wallet zu speichern. Diese Barcodes sind nur für kurze Zeit gültig und bieten zusätzliche Sicherheit, um das Risiko der Screenshoterstellung zu verringern. Die Barcodes werden auf dem Gerät gemäß RFC 6238 generiert, wobei der Partner den geheimen Schlüssel bereitstellt. Wenn ein Partner die Barcodes jedoch lieber selbst generieren möchte, stellt Google eine API bereit, mit der Barcodes im Batch auf Google hochgeladen werden können. Diese Barcodes werden dann an die Smartphones der Nutzer übertragen und funktionieren dort wie rotierende Barcodes, die für kurze Zeit angezeigt werden. Diese Lösung wird als von Partnern generierte rotierende Barcodes bezeichnet.

Von Partnern generierte Rotating Barcode API

Von Partnern generierte rotierende Barcodes werden mit demselben RotatingBarcode-Objekt erstellt. Nur der Typ ist erforderlich. Wir empfehlen jedoch, einen kleinen Einstiegssatz von Barcodes (für etwa 10 Minuten) zu erstellen und in initialRotatingBarcodeValues zu senden. Der Partner muss dafür sorgen, dass immer ein gültiger Barcode für den Nutzer verfügbar ist. Mit initialRotatingBarcodeValues kann der nachfolgende Aufruf des Batch-Uploads asynchron ausgeführt werden.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
Feld Beschreibung
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

Die Werte, die im Barcode codiert werden sollen. Es ist mindestens ein Wert erforderlich. Diese anfänglichen Barcodes sollen die Lücke zwischen dem ersten Erwerb des Tickets durch den Nutzer und dem nachfolgenden Aufruf des Batch-Uploads schließen.

type

enum (BarcodeType)

Erforderlich. Der Typ dieses Barcodes.

Akzeptable Werte sind:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Feld Beschreibung
startDateTime

string

Datum/Uhrzeit des Gültigkeitsbeginns für den ersten Barcode. Barcodes werden mit periodMillis rotiert.

Datum/Uhrzeit im erweiterten ISO 8601-Format mit Offset.

values[]

string

Die Werte, die im Barcode codiert werden sollen. Es ist mindestens ein Wert erforderlich.

Es gibt keine maximale Anzahl von Werten. Die Größe des Anfragetexts darf jedoch 5 MB nicht überschreiten.

periodMillis

number

Die Gültigkeitsdauer jedes Barcodes.

Barcodewerte im Batch aktualisieren

Nachdem das RotatingBarcode-Objekt erstellt wurde, empfehlen wir, jeden Tag die Barcodes für jeweils einen Tag hochzuladen, bis die Karte bzw. das Ticket des Nutzers abläuft. Dazu können Sie den folgenden REST API-Endpunkt verwenden.

Methode: transitobject.uploadrotatingbarcodevalues

Lädt rotierende Barcodewerte in das Verkehrsobjekt hoch, auf das durch die angegebene Objekt-ID verwiesen wird.

HTTP-Anfrage

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

Pfadparameter

Parameter Beschreibung
resourceId

string

Die eindeutige Kennung für ein Objekt.

Anfragetext

Der Anfragetext (der nicht größer als 5 MB sein darf) enthält eine Instanz von RotatingBarcodeValues.

Methode: transitobject.downloadrotatingbarcodevalues

Lädt rotierende Barcodewerte für das Verkehrsobjekt herunter, auf das durch die angegebene Objekt-ID verwiesen wird. Dies ist hilfreich, wenn Partner den neuesten Batch überprüfen möchten.

HTTP-Anfrage

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

Pfadparameter

Parameter Beschreibung
resourceId

string

Die eindeutige Kennung für ein Objekt.

Fallback-Mechanismen

Wenn ein ansonsten gültiger RotatingBarcode keine gültigen Barcodes anzeigen kann, da diese entweder noch nicht hochgeladen oder alle aktuellen Barcodes bereits verwendet wurden, wird dem Nutzer eine Fehlermeldung angezeigt.