Überblick

Mit der Google Wallet Passes API können Partner Rotierende Barcodes in Google Wallet 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 weitergeleitet und funktionieren dort wie rotierende Barcodes, die nur für kurze Zeit angezeigt werden. Wir bezeichnen diese Lösung als von Partnern generierte rotierende Barcodes.

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 auch, einen kleinen Einstiegssatz von Barcodes (ca. 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 erfolgen.

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

object (RotatingBarcodeValues)

Die zu codierenden Werte im Barcode. 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. Die Art dieses Barcodes.

Akzeptable Werte sind:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Field Beschreibung
startDateTime

string

Datum und Uhrzeit der Gültigkeit des ersten Barcodes Barcodes werden mit periodMillis rotiert.

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

values[]

string

Die zu codierenden Werte im Barcode. 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 Barcodes für einen ganzen 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 auf das Verkehrsobjekt hoch, auf das die angegebene Objekt-ID verweist.

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 die angegebene Objekt-ID verweist. Dies ist nützlich, 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 hat, die angezeigt werden können, weil diese noch nicht hochgeladen wurden oder alle aktuellen Barcodes verwendet wurden, wird dem Nutzer eine Fehlermeldung angezeigt.