概要

Google Wallet Passes API には、パートナーがローテーション バーコードを Google ウォレットに保存する機能があります。これらのバーコードの有効期間は短時間であり、バーコードのスクリーンショットが取得された場合のリスクを軽減するようにセキュリティが強化されています。バーコードは RFC 6238 に基づいてデバイス上で生成されます。秘密鍵はパートナーが提供します。ただし、パートナーが自身でバーコードを生成する場合は、Google が提供する API でバーコードを Google に一括アップロードできます。続いて、これらのバーコードがユーザーのスマートフォンに渡され、ローテーション バーコードとまったく同じように機能します(短時間表示されます)。Google はこのソリューションを「パートナーが生成したローテーション バーコード」と呼んでいます。

パートナーが生成したローテーション バーコードの API

パートナーが生成したローテーション バーコードの作成には、同じ RotatingBarcode オブジェクトを使用します。必須であるのはタイプのみですが、バーコードの小規模なスターター セット(最長 10 分有効)を作成して、initialRotatingBarcodeValues で送信することもおすすめします。ユーザー用の有効なバーコードを常に準備しておくことはパートナーの役割であり、initialRotatingBarcodeValues を使用して後続の一括アップロードの呼び出しを非同期に行うことができます。

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
フィールド 説明
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

バーコード内でエンコードする値です。値を少なくとも 1 つ指定してください。これらの初期バーコードは、ユーザーが最初にパスを取得してから後続の一括アップロード呼び出しが行われるまでのギャップを埋めることを目的としています。

type

enum (BarcodeType)

必須。このバーコードのタイプです。

有効な値は次のとおりです。

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
フィールド 説明
startDateTime

string

最初のバーコードが有効になる日付/時刻です。バーコードは periodMillis を使用してローテーションされます。

これは ISO 8601 拡張形式の日付/時刻で、オフセットありです。

values[]

string

バーコード内でエンコードする値です。値を少なくとも 1 つ指定してください。

値に最大値はありませんが、リクエスト本文のサイズは 5 MB 以下にする必要があります。

periodMillis

number

各バーコードが有効である時間の長さ。

バーコードの値の一括更新

RotatingBarcode オブジェクトを作成したら、ユーザーのパスの有効期限が切れるまで、1 日分のバーコードを毎日アップロードすることをおすすめします。これは、次の REST API エンドポイントを使用して行うことができます。

メソッド: transitobject.uploadrotatingbarcodevalues

指定されたオブジェクト ID の交通機関オブジェクトに、ローテーション バーコードの値をアップロードします。

HTTP リクエスト

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

パスパラメータ

パラメータ 説明
resourceId

string

オブジェクトの一意識別子。

リクエスト本文

リクエスト本文(5 MB 以下)には RotatingBarcodeValues のインスタンスが含まれます。

メソッド: transitobject.downloadrotatingbarcodevalues

指定されたオブジェクト ID の交通機関オブジェクトのローテーション バーコードの値をダウンロードします。これは、パートナーが最新のバッチを確認する場合に便利です。

HTTP リクエスト

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

パスパラメータ

パラメータ 説明
resourceId

string

オブジェクトの一意識別子。

フォールバックの仕組み

RotatingBarcode 自体は有効であるが、表示する有効なバーコードが存在しない場合(バーコードがまだアップロードされていない場合、または現在のバーコードがすべて使用された場合)、ユーザーに対してエラー メッセージが表示されます。