Ringkasan Class dan Objek

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

Google Wallet API menyediakan kumpulan Class Kartu dan Objek Kartu yang telah dibuat sebelumnya, lalu digunakan untuk membuat kartu yang diberikan kepada pengguna, seperti GiftCardClass dan GiftCardObject, GenericClass dan GenericObject, serta lainnya.

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

Kelas Kartu

Anggap 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 kartu yang mereferensikannya.

Misalnya, instance EventTicketClass berikut menentukan kolom yang sama untuk 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 Class ini bertindak sebagai ID unik yang akan Anda referensikan setiap kali Anda menggunakannya untuk membuat instance Objek Kartu yang baru.

Meneruskan Objek

Meskipun instance Class Kartu menetapkan sekumpulan properti bersama untuk digunakan dalam satu atau beberapa pass, Objek Kartu menentukan detail unik dari kartu tertentu yang diberikan kepada pengguna tertentu.

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

{
  "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 referensikan 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 yang lengkap. Hubungan antara instance Class Passes dan Passes Object ini berarti Anda dapat menetapkan dan memperbarui properti yang umum untuk semua kartu yang diterbitkan melalui instance Passes Class, dan properti yang unik untuk setiap pass 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 di EventTicketObject digabungkan untuk membuat kartu akhir yang diterbitkan. Perhatikan bagaimana ID Class Kartu dirujuk dalam properti classId Objek Kartu.

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

Menambahkan kartu ke Google Wallet pengguna

Untuk menambahkan kartu ke Google Wallet pengguna, buat JSON Web Token (JWT) yang berisi klaim yang Anda (penerbit) tentang instance Objek Kartu yang akan disimpan di Google Wallet pengguna - yang paling penting, ID Objek dari instance Objek Kartu yang Anda keluarkan untuk 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 di JWT akan ditautkan ke Akun Google pengguna tersebut. Artinya, saat pengguna mengklik tombol itu lagi, link ke Objek Kartu tersebut sudah ada, sehingga salinan duplikat tidak akan ditambahkan ke dompet 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 Add to Google Wallet atau link lagi, untuk menyimpan kartu tanpa perlu membuat instance Objek Kartu atau JWT baru.