パスのクラスとオブジェクトの概要

エンドユーザーが発行して Google ウォレットに保存できるパスのほとんどは、パスクラスとパス オブジェクトの 2 つのコンポーネントで定義されます。ユーザーにパスを発行するときは常に、パスクラスとパス オブジェクトの両方のインスタンスが必要になります。パスクラスは、作成するパスのタイプと、パスに表示する詳細情報(ギフトカードの金額やチケット所有者の名前など)を Google Wallet API に伝えるものです。

Google Wallet API には、パスクラスとパス オブジェクトの事前定義セットが用意されています。これらのセットのインスタンスを作成して、ユーザーに発行するパス(GiftCardClassGiftCardObjectGenericClassGenericObject など)の作成に使用します。

各パスクラスとパス オブジェクトのインスタンスは JSON オブジェクトとして定義されます。このオブジェクトには、そのパスタイプを対象とする特定のユースケースに対応する必須のプロパティとオプションのプロパティのセットが含まれています。

パスクラス

パスクラスは、1 つ以上のパスの作成に使用される共有テンプレートと考える ユーザーに発行しますパスクラスは、含まれるプロパティ セットを定義します すべてのパスでこれを参照するためです。

たとえば、次の EventTicketClass のインスタンスは、今後のイベントで発行されたすべてのチケットに共通するフィールド(会場、イベント名、発行者、日時)を定義しています。

{
  "id": "ISSUER_ID.EVENT_CLASS_ID",
  "issuerName": "[TEST ONLY] Heraldic Event",
  "localizedIssuerName": {
    "defaultValue": {
      "language": "en-US",
      "value": "[TEST ONLY] Heraldic Event"
    }
  },
  "eventName": {
    "defaultValue": {
      "language": "en-US",
      "value": "Google Live"
    }
  },
  "venue": {
    "name": {
      "defaultValue": {
        "language": "en-US",
        "value": "Shoreline Amphitheater"
      }
    },
    "address": {
      "defaultValue": {
        "language": "en-US",
        "value": "ADDRESS_OF_THE_VENUE"
      }
    }
  },
  "dateTime": {
    "start": "2023-04-12T11:30"
  },
  "reviewStatus": "UNDER_REVIEW"
}
  

パスクラスの各インスタンスには、指定する id プロパティが必要です。このクラス ID 固有の識別子として機能します。この識別子を使用して新しいパス オブジェクトを作成する際には、この識別子が参照されます。 作成します。

パス オブジェクト

パスクラスのインスタンスは、1 つ以上のパスで使用する一連の共有プロパティを指定します。 パス オブジェクトでは、特定のユーザーに発行される特定のパスの固有の詳細を指定します。

たとえば、Google Wallet API でイベント チケットパスを作成すると、EventTicketObject インスタンスには、そのチケットに割り当てられた座席のプロパティが含まれます。これらの値は各座席に一意であるため、 発行されます。

{
  "id": "ISSUER_ID.OBJECT_ID",
  "classId": "ISSUER_ID.EVENT_CLASS_ID",
  "state": "ACTIVE",
  "seatInfo": {
    "seat": {
      "defaultValue": {
        "language": "en-us",
        "value": "9"
      }
    },
    "row": {
      "defaultValue": {
        "language": "en-us",
        "value": "L"
      }
    },
    "section": {
      "defaultValue": {
        "language": "en-us",
        "value": "45"
      }
    },
    "gate": {
      "defaultValue": {
        "language": "en-us",
        "value": "7C"
      }
    }
  },
  "barcode": {
    "type": "BARCODE_TYPE_UNSPECIFIED",
    "value": "BARCODE_VALUE",
    "alternateText": ""
  }
}
  

パス オブジェクトの各インスタンスには、指定する id プロパティが必要です。このオブジェクト ID は、ユーザーにパスを発行するときに参照する一意の識別子として機能します。

パスクラスとパス オブジェクトの連携

パス オブジェクトは、クラス ID を参照するか、パスクラスの完全な定義を含めることで、パスクラスのインスタンスを拡張する必要があります。パスクラスとパス オブジェクト インスタンスの関係 つまり、パスクラスのインスタンスを介して発行されたすべてのパスに共通するプロパティを設定および更新できます。 パス オブジェクト インスタンスの個々のパスに固有のプロパティとプロパティを指定します。

たとえば、以下のシンプルなイベント チケット パスの図は、共有 EventTicketClass で定義されたフィールドと、EventTicketObject で定義された特定のチケットのフィールドを組み合わせて、最終的に発行されたパスを作成する方法を示しています。パスクラスの ID がパス オブジェクトの classId プロパティで参照されていることに注意してください。

パスクラスのインスタンスに加えた変更は、すべてのパス オブジェクトのインスタンスにすぐに反映されます 参照します。パスクラスのインスタンスに加えた変更は、ユーザーに反映されます。 次回の同期時に Google ウォレット アプリのパスに表示されます。

ユーザーの Google ウォレットにパスを追加する

ユーザーの Google ウォレットにパスを追加するには、クレームを含む JSON Web Token(JWT)を作成します。 ユーザーの Google ウォレットに保存されるパス オブジェクト インスタンスについて、発行元が作成したもの 最も重要なのは、ユーザーに発行するパス オブジェクト インスタンスのオブジェクト ID です。JWT その後、[Google ウォレットに追加] ボタンまたは [Google ウォレットに追加] を介してユーザーに配信されます。 表示されます。

ユーザーが発行済みのパスを Google ウォレットに追加するボタンまたはリンクをクリックすると、 JWT でエンコードされたパス オブジェクト インスタンスは、そのユーザーの Google アカウントにリンクされます。つまり ユーザーがボタンをもう一度クリックすると、そのパス オブジェクトへのリンクがすでに存在するため、重複します。 コピーはユーザーのウォレットには追加されません。

ユーザーが Google ウォレット アプリからパスを削除すると、対応するパス オブジェクトのインスタンスは ユーザーと自動的にリンクが解除されますが、削除されることはありません。つまりユーザーは [Google ウォレットに追加] ボタンまたはリンクを再度クリックすると、 作成する新しいパス オブジェクト インスタンスまたは JWT。