Karten-/Ticketklassen und -objekte – Übersicht

Fast alle Karten/Tickets, die Sie einem Endnutzer zum Speichern in Google Wallet ausstellen können, werden durch zwei Komponenten definiert: eine Karten-/Ticketklasse und ein Karten-/Ticketobjekt. Jedes Mal, wenn Sie eine Karte bzw. ein Ticket an einen Nutzer ausstellen, benötigen Sie eine Instanz einer Karten-/Ticketklasse und eines Karten-/Ticketobjekts, das der Google Wallet API mitteilt, welche Art von Karte/Ticket erstellt werden soll. Außerdem werden Details auf der Karte bzw. dem Ticket angezeigt, z. B. der Wert einer Geschenkkarte oder der Name des Ticketinhabers.

Die Google Wallet API bietet einen vordefinierten Satz von Karten-/Ticketklassen und Karten-/Ticketobjekten, für die du Instanzen erstellst und mit denen du dann eine Karte bzw. ein Ticket für einen Nutzer erstellst, z. B. GiftCardClass und GiftCardObject, GenericClass und GenericObject.

Jede Karten-/Ticketklasse und jede Karten-/Ticketobjektinstanz sind als JSON-Objekt mit einer Reihe von erforderlichen und optionalen Attributen definiert, die dem spezifischen Anwendungsfall entsprechen, der für diesen Karten-/Tickettyp vorgesehen ist.

Karten-/Ticketklassen

Eine Karten-/Ticketklasse ist eine freigegebene Vorlage zum Erstellen von Karten/Tickets. die Sie Ihren Nutzenden geben werden. Eine Karten-/Ticketklasse definiert einen gemeinsamen Satz von Eigenschaften, die eingeschlossen werden. in allen Karten/Tickets verwenden, die darauf verweisen.

Beispielsweise definiert die folgende Instanz von EventTicketClass die Felder, die für alle ausgestellten Tickets für eine anstehende Veranstaltung gelten(Ort, Name der Veranstaltung, Aussteller, Datum/Uhrzeit).

{
  "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"
}
  

Für jede Instanz einer Karten-/Ticketklasse ist ein von dir angegebenes id-Attribut erforderlich. Diese Klassen-ID dient als eindeutige Kennung, auf die Sie immer dann verweisen, wenn Sie sie zum Erstellen eines neuen Karten-/Ticketobjekts verwenden Instanz.

Karten-/Ticketobjekte

Während eine Instanz einer Karten-/Ticketklasse eine Reihe von gemeinsamen Eigenschaften angibt, die in einer oder mehreren Karten/Tickets enthält, gibt ein Karten-/Ticketobjekt die eindeutigen Details einer bestimmten Karte bzw. eines bestimmten Tickets an, die für einen bestimmten Nutzer ausgestellt wird.

Wenn beispielsweise ein Veranstaltungsticket mit der Google Wallet API erstellt wird, wird ein EventTicketObject -Instanz Eigenschaften für den Sitz, der diesem Ticket zugewiesen ist, enthält, da diese Werte für jedes Ticket ausgestellt.

{
  "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": ""
  }
}
  

Für jede Instanz eines Karten-/Ticketobjekts ist ein von dir angegebenes id-Attribut erforderlich. Diese Objekt-ID dient als eindeutige Kennung, auf die du verweist, wenn du einem Nutzer die Karte bzw. das Ticket ausgibst.

So funktionieren Karten-/Ticketklassen mit Karten-/Ticketobjekten

Karten-/Ticketobjekte müssen eine Instanz einer Karten-/Ticketklasse erweitern, indem entweder auf ihre Klassen-ID verwiesen wird oder indem die vollständige Karten-/Ticketklassendefinition einbezogen wird. Diese Beziehung zwischen einer Karten-/Ticketklasse und Karten-/Ticketobjektinstanz Du kannst Attribute festlegen und aktualisieren, die für alle ausgestellten Karten/Tickets über die Instanz der Karten-/Ticketklasse gelten. und Attribute, die für eine einzelne Karte in der Karten-/Ticketobjektinstanz eindeutig sind.

Das folgende Diagramm einer einfachen Veranstaltungsticketkarte zeigt beispielsweise, wie die in der gemeinsamen EventTicketClass definierten Felder und die Felder für ein bestimmtes Ticket, die in der EventTicketObject definiert sind, zusammen die endgültige ausgestellte Karte bzw. das Ticket ergeben. Im Attribut classId des Karten-/Ticketobjekts wird auf die ID der Karten-/Ticketklasse verwiesen.

Änderungen an einer Instanz der Karten-/Ticketklasse werden sofort auf alle Instanzen des Karten-/Ticketobjekts angewendet die darauf verweisen. Nutzer sehen alle Änderungen, die Sie an einer Karten-/Ticketklasseninstanz vornehmen die Karte bzw. das Ticket bei der nächsten Synchronisierung in ihrer Google Wallet App verwenden.

Karte/Ticket zu Google Wallet eines Nutzers hinzufügen

Wenn du dem Google Wallet-Konto eines Nutzers eine Karte bzw. ein Ticket hinzufügen möchtest, erstellst du ein JSON-Webtoken (JWT) mit Anforderungen du (der Aussteller) bezüglich der Instanz des Karten-/Ticketobjekts vornimmst, die im Google Wallet-Konto des Nutzers gespeichert wird – Am wichtigsten ist die Objekt-ID der Karten-/Ticketobjektinstanz, die du dem Nutzer ausstellst. Das JWT wird dem Nutzer dann über die Schaltfläche Zu Google Wallet hinzufügen oder Zu Google Wallet hinzufügen bereitgestellt. .

Nachdem ein Nutzer auf die Schaltfläche oder den Link zum Hinzufügen einer ausgestellten Karte bzw. eines ausgestellten Tickets in Google Wallet geklickt hat, wird ein Link zum Die im JWT codierte Karten-/Ticketobjektinstanz ist mit dem Google-Konto dieses Nutzers verknüpft. Das bedeutet, dass Wenn der Nutzer erneut auf die Schaltfläche klickt, ist bereits ein Link zu diesem Karten-/Ticketobjekt vorhanden. Duplizieren Sie Kopien werden dem Wallet des Nutzers nicht hinzugefügt.

Wenn ein Nutzer eine Karte bzw. ein Ticket aus der Google Wallet App entfernt, wird die entsprechende Karten-/Ticketobjektinstanz automatisch entfernt, er wird aber nicht gelöscht. Das bedeutet, dass Nutzende Schaltfläche oder Link Zu Google Wallet hinzufügen noch einmal, um die Karte bzw. das Ticket zu speichern, ohne dass ein neue Karten-/Ticketobjektinstanz oder zu erstellendes JWT