Ringkasan Class dan Objek

Hampir semua kartu yang dapat Anda berikan kepada pengguna akhir untuk disimpan di Google Wallet mereka ditentukan oleh dua komponen: Kelas Kartu dan Objek Kartu. Setiap kali memberikan kartu kepada pengguna, Anda memerlukan instance Class Kartu dan Objek Kartu, yang memberi tahu Google Wallet API jenis kartu apa yang harus dibuat, serta detail yang akan ditampilkan pada kartu, seperti nilai kartu voucher atau nama pemegang tiket.

Google Wallet API menyediakan kumpulan Class dan Objek Kartu yang telah ditentukan sebelumnya yang Anda buat instance-nya, lalu digunakan untuk membuat kartu yang diterbitkan untuk pengguna, seperti GiftCardClass dan GiftCardObject, GenericClass dan GenericObject, serta lainnya.

Setiap instance Objek Passes Class dan Passes Object didefinisikan sebagai objek JSON, yang memiliki serangkaian properti wajib dan opsional yang sesuai dengan kasus penggunaan tertentu yang dimaksudkan untuk jenis kartu tersebut.

Kelas Kartu

Anggaplah Kelas Kartu sebagai template bersama yang digunakan untuk membuat satu atau beberapa kartu yang akan Anda berikan kepada pengguna. Class Kartu menentukan kumpulan properti umum yang akan disertakan dalam semua penerusan yang mereferensikannya.

Misalnya, instance EventTicketClass berikut menentukan kolom yang biasanya ada pada semua tiket yang diterbitkan untuk acara mendatang(tempat, nama acara, penerbit, tanggal/waktu).

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

Setiap instance Class Kartu memerlukan properti id, yang Anda tentukan. ID Kelas ini bertindak sebagai ID unik yang akan Anda referensikan setiap kali Anda menggunakannya untuk membuat Objek Kartu baru di instance Compute Engine.

Objek Kartu

Meskipun instance Class Kartu menentukan kumpulan properti bersama yang akan digunakan di satu atau beberapa diteruskan, Objek Kartu menentukan detail unik dari kartu tertentu yang diberikan kepada pengguna tertentu.

Misalnya, saat Kartu Tiket Acara dibuat dengan Google Wallet API, EventTicketObject mencakup properti untuk kursi yang ditetapkan ke tiket tersebut karena nilai tersebut akan unik untuk masing-masing tiket yang diberikan.

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

Setiap instance Objek Kartu memerlukan properti id, yang Anda tentukan. ID Objek ini bertindak sebagai ID unik yang akan Anda rujuk saat memberikan kartu kepada pengguna.

Cara kerja Class Kartu dengan Objek Kartu

Objek Kartu harus memperluas instance Class Kartu dengan mereferensikan ID Class-nya atau menyertakan definisi Class Kartu secara lengkap. Hubungan antara Class Kartu dan instance Objek Kartu berarti Anda dapat menetapkan dan memperbarui properti yang umum untuk semua kartu yang diterbitkan melalui instance Class Kartu, dan properti unik untuk setiap {i>pass <i} dalam instance Passes Object.

Misalnya, diagram kartu Tiket Acara sederhana berikut menunjukkan cara kolom yang ditentukan di EventTicketClass bersama, dan kolom untuk tiket tertentu yang ditentukan dalam EventTicketObject digabungkan untuk membuat kartu akhir yang diterbitkan. Perhatikan bagaimana ID Class Kartu dirujuk di properti classId Objek Kartu.

Perubahan yang dibuat pada instance instance Passes Class akan segera diterapkan di semua instance Objek Kartu yang mereferensikannya. Pengguna akan melihat setiap perubahan yang Anda buat pada instance Kelas Kartu yang ditampilkan menggunakan kartu di aplikasi Google Wallet saat mereka melakukan sinkronisasi berikutnya.

Menambahkan kartu ke Google Wallet pengguna

Untuk menambahkan kartu ke Google Wallet pengguna, Anda harus membuat Token Web JSON (JWT) yang berisi klaim yang Anda (penerbit) buat terkait instance Objek Kartu yang akan disimpan di Google Wallet pengguna - yang terpenting, ID Objek dari instance Objek Kartu yang Anda berikan kepada pengguna. JWT kemudian dikirimkan kepada pengguna melalui tombol Tambahkan ke Google Wallet atau Tambahkan ke Google Wallet tautan.

Setelah pengguna mengklik tombol atau link untuk menambahkan kartu yang diterbitkan ke Google Wallet mereka, link akan Meneruskan instance Objek yang dienkode dalam JWT yang ditautkan ke Akun Google pengguna tersebut. Hal ini berarti bahwa ketika pengguna mengklik tombol itu lagi, tautan sudah ada ke Objek Lulus itu, jadi salinan tidak akan ditambahkan ke dompet pengguna.

Jika pengguna menghapus kartu dari aplikasi Google Wallet, instance Objek Kartu yang sesuai akan secara otomatis membatalkan tautan dari pengguna, tetapi tidak dihapus. Ini berarti bahwa pengguna dapat mengklik Tombol atau link Tambahkan ke Google Wallet lagi, untuk menyimpan kartu tanpa perlu instance Passes Object atau JWT baru akan dibuat.