Ringkasan Class dan Objek

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

Google Wallet API menyediakan serangkaian Kelas Kartu dan Objek Kartu yang telah ditentukan sebelumnya yang Anda buat instansnya, lalu gunakan untuk membuat kartu yang diterbitkan kepada pengguna, seperti GiftCardClass dan GiftCardObject, GenericClass dan GenericObject, serta lainnya.

Setiap instance Class Kartu dan Objek Kartu ditentukan sebagai objek JSON, yang memiliki serangkaian properti wajib dan opsional yang sesuai dengan kasus penggunaan tertentu yang ditujukan untuk jenis kartu tersebut.

Kelas Kartu

Anggaplah Class Kartu sebagai template yang dibagikan yang digunakan untuk membuat satu atau beberapa kartu yang akan Anda terbitkan kepada pengguna. Class Kartu menentukan kumpulan properti umum yang akan disertakan di semua kartu yang merujuknya.

Misalnya, instance EventTicketClass berikut menentukan kolom yang umum untuk semua tiket yang dikeluarkan 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 Passes Class memerlukan properti id, yang Anda tentukan. ID Class ini berfungsi sebagai ID unik yang akan Anda referensikan setiap kali Anda menggunakannya untuk membuat instance Objek Kartu baru.

Objek Kartu

Meskipun instance Class Kartu menentukan serangkaian properti bersama yang akan digunakan dalam satu atau beberapa kartu, Objek Kartu menentukan detail unik kartu tertentu yang dikeluarkan untuk pengguna tertentu.

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

{
  "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 berfungsi sebagai ID unik yang akan Anda rujuk saat mengeluarkan 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 lengkap. Hubungan antara instance Class Kartu dan Objek Kartu ini berarti Anda dapat menetapkan dan memperbarui properti yang umum untuk semua kartu yang diterbitkan melalui instance Class Kartu, dan properti unik untuk setiap kartu di instance Objek Kartu.

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

Perubahan yang dilakukan pada instance instance Class Kartu akan langsung diterapkan di semua instance Objek Kartu yang mereferensikannya. Pengguna akan melihat perubahan apa pun yang Anda lakukan pada instance Class Kartu yang ditampilkan di kartu di aplikasi Google Wallet mereka saat mereka menyinkronkan kartu tersebut berikutnya.

Menambahkan kartu ke Google Wallet pengguna

Untuk menambahkan kartu ke Google Wallet pengguna, Anda membuat Token Web JSON (JWT) yang berisi klaim yang Anda (penerbit) buat tentang instance Objek Kartu yang akan disimpan di Google Wallet pengguna - yang paling penting, ID Objek dari instance Objek Kartu yang Anda terbitkan kepada pengguna. JWT kemudian dikirimkan kepada pengguna melalui tombol Tambahkan ke Google Wallet atau link Tambahkan ke Google Wallet.

Setelah pengguna mengklik tombol atau link untuk menambahkan kartu yang diterbitkan ke Google Wallet mereka, link instance Objek Kartu yang dienkode dalam JWT ditautkan ke Akun Google pengguna tersebut. Artinya, saat pengguna mengklik tombol lagi, link sudah ada ke Objek Kartu tersebut, sehingga salinan duplikat tidak akan ditambahkan ke wallet pengguna.

Jika pengguna menghapus kartu dari aplikasi Google Wallet, instance Objek Kartu yang sesuai akan otomatis dibatalkan tautannya dari pengguna, tetapi tidak dihapus. Artinya, pengguna dapat mengklik tombol atau link Tambahkan ke Google Wallet lagi, untuk menyimpan kartu tanpa perlu membuat instance Objek Kartu atau JWT baru.