パートナーは、Google Wallet Passes API を使用して、交通機関のチケットを有効にするエンドポイントを指定できます。有効化が必要な場合は、[有効化] ボタンが表示されます。このボタンをタップすると、下記のパラメータで指定されたエンドポイントが呼び出されます。 エンドポイントは、返却する前にパスに有効なクーポン情報(バーコードまたは目視検査)があることを確認する必要があります。有効になった時点で、ユーザーのウォレットのパスが更新され、クーポン情報が表示されます。有効化の前に、既存のクーポン情報は表示されません。
有効化 API
有効化エンドポイントは、交通機関クラスで activationOptions
を使用して API で指定されます。パートナーは、有効化エンドポイントが適切なレイテンシで機能するよう維持する責任を負います。
activationOptions: { activationUrl: string }
項目 | 説明 |
---|---|
activationUrl |
有効化リクエストのために呼び出されるパートナー エンドポイントの URL。URL は HTTPS でホストする必要があります。また、UserAgent:Google-Valuables によって URL パスにアクセスできるよう robots.txt を設定する必要があります。 |
有効化の状態は、activationStatus
フィールドを使用してオブジェクトに保存されます。有効なステータスには NOT_ACTIVATED
と ACTIVATED
があります。有効化エンドポイントは、オブジェクトを ACTIVATED
ステータスで更新するとともに、バーコードや目視検査のパラメータなどの有効なクーポン情報がオブジェクトに含まれていることを確認する必要があります。deviceContext
フィールドは、デバイスの固定に使用できます。
activationStatus: enum (ActivationStatus), deviceContext: { deviceToken: string }, hasLinkedDevice: boolean
項目 | 説明 |
---|---|
activationStatus |
この交通機関オブジェクトの有効化ステータス。このステータスによってチケットの表示が変更され、ユーザーが操作できるようになります。たとえば、 有効な値は次のとおりです。
|
deviceContext |
オブジェクトを関連付けるデバイスのコンテキスト。設定すると、クーポン情報は特定のデバイスにのみ返されます。 |
hasLinkedDevice |
このオブジェクトが現在 1 つのデバイスにリンクされているかどうか。 |
項目 | 説明 |
---|---|
deviceToken |
設定すると、オブジェクトが有効になったときにのみ、クーポン情報が特定のデバイスに返されます。ユーザーのデバイスをトレースするための安定した識別子として使用することはできません。デバイスが同じでもパスが異なる場合や、デバイスが同じでも有効化が異なる場合は、設定が変わることがあります。これを設定する場合、呼び出し元は、有効にするオブジェクトに
|
デバイスの固定
デバイスの固定は、1 つのデバイスでチケットを有効にして、そのデバイスにのみチケットクーポン情報を表示できる機能です。これは、ONE_USER_ONE_DEVICE
の multipleDevicesAndHoldersAllowedStatus
とは異なり、チケットの表示対象が 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 は、特定のデバイスからの今後のリクエストでは変更されない場合があります。 |