概要

パートナーは、Google Wallet Passes API を使用して、交通機関のチケットを有効にするエンドポイントを指定できます。有効化が必要な場合は、[有効化] ボタンが表示されます。このボタンをタップすると、下記のパラメータで指定されたエンドポイントが呼び出されます。 エンドポイントは、返却する前にパスに有効なクーポン情報(バーコードまたは目視検査)があることを確認する必要があります。有効になった時点で、ユーザーのウォレットのパスが更新され、クーポン情報が表示されます。有効化の前に、既存のクーポン情報は表示されません。

有効化 API

有効化エンドポイントは、交通機関クラスactivationOptions を使用して API で指定されます。パートナーは、有効化エンドポイントが適切なレイテンシで機能するよう維持する責任を負います。

  activationOptions: {
    activationUrl: string
  }
項目 説明
activationUrl

string

有効化リクエストのために呼び出されるパートナー エンドポイントの URL。URL は HTTPS でホストする必要があります。また、UserAgent:Google-Valuables によって URL パスにアクセスできるよう robots.txt を設定する必要があります。

有効化の状態は、activationStatus フィールドを使用してオブジェクトに保存されます。有効なステータスには NOT_ACTIVATEDACTIVATED があります。有効化エンドポイントは、オブジェクトを ACTIVATED ステータスで更新するとともに、バーコードや目視検査のパラメータなどの有効なクーポン情報がオブジェクトに含まれていることを確認する必要があります。deviceContext フィールドは、デバイスの固定に使用できます。

  activationStatus: enum (ActivationStatus),
  deviceContext: {
    deviceToken: string
  },
  hasLinkedDevice: boolean
項目 説明
activationStatus

enum (ActivationStatus)

この交通機関オブジェクトの有効化ステータス。このステータスによってチケットの表示が変更され、ユーザーが操作できるようになります。たとえば、NOT_ACTIVATED に設定すると、チケットの詳細に [有効化] ボタンがレンダリングされます。

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

  • NOT_ACTIVATED
  • ACTIVATED

deviceContext

object (DeviceContext)

オブジェクトを関連付けるデバイスのコンテキスト。設定すると、クーポン情報は特定のデバイスにのみ返されます。

hasLinkedDevice

boolean

このオブジェクトが現在 1 つのデバイスにリンクされているかどうか。

DeviceContext
項目 説明
deviceToken

string

設定すると、オブジェクトが有効になったときにのみ、クーポン情報が特定のデバイスに返されます。ユーザーのデバイスをトレースするための安定した識別子として使用することはできません。デバイスが同じでもパスが異なる場合や、デバイスが同じでも有効化が異なる場合は、設定が変わることがあります。これを設定する場合、呼び出し元は、有効にするオブジェクトに hasLinkedDevice も設定する必要があります。

deviceToken は、有効化パラメータdeviceContext フィールドから取得されます。

デバイスの固定

デバイスの固定は、1 つのデバイスでチケットを有効にして、そのデバイスにのみチケットクーポン情報を表示できる機能です。これは、ONE_USER_ONE_DEVICEmultipleDevicesAndHoldersAllowedStatus とは異なり、チケットの表示対象が 1 台のデバイスに限定されることはありません。デバイスの固定機能とともにステータス ONE_USER_ALL_DEVICES を使用することをおすすめします。

有効にする前に、自分のデバイスにチケットと有効化ボタンが表示されます。有効にしてデバイスに固定すると、固定されたデバイスにクーポン情報が表示され、他のデバイスには有効化ボタンが表示され、ユーザーはチケットを別のデバイスに移動できるようになります。チケットを移動する機能は不要でも、任意のデバイスで有効にできる場合は、デバイスの固定を使用する代わりに、有効化時にチケットを ONE_USER_ONE_DEVICE に更新できます。

デバイスの固定を実装するには、有効化パラメータで受け取る deviceToken フィールドを使ってオブジェクトを更新し、同じ API 呼び出しで hasLinkedDevice を true に設定する必要があります。必要に応じて、今後の API 呼び出しで hasLinkedDevice を false に設定することで、チケットとデバイスのリンクを解除できます。

デバイスの固定のシーケンス図

有効化パラメータ

有効化エンドポイントへのリクエストには、次のパラメータが含まれます。

JSON の例:

  {
    classId: “123.classId”,
    objectIds: [ “123.objectId” ],
    expTimeMillis: 1669671940735,
    eventType: “activate”,
    nonce: “1c6fccce-6f66-11ed-a1eb-0242ac120002”,
    deviceContext: “6fba937a-6f6e-11ed-a1eb-0242ac120002”
  }

ID 説明
classId

完全修飾クラス ID。次の形式を使用します。

<issuer_id.class_id>
objectIds

次の形式を使用するオブジェクト ID の完全修飾配列。

<issuer_id.object_id>
expTimeMillis エポックからのミリ秒単位の有効期限です。有効期限を経過したメッセージは無効とみなす必要があります。
eventType 常に "activate" です。
nonce 重複配信を追跡するノンス。
deviceContext

ユーザーが操作するデバイスを表す、Google によって生成された一意の ID。 この ID は、オブジェクトをデバイスに結び付ける更新を行うときに使用します。

この ID は、特定のデバイスからの今後のリクエストでは変更されない場合があります。