Alur komunikasi Smart Tap

Komunikasi antara terminal dan aplikasi Google Wallet

Terminal mengidentifikasi dirinya dengan ID Kolektor yang dipetakan ke ID Penerbit Penukaran. Saat Smart Tap terjadi, terminal akan mengirimkan ID Kolektor ke perangkat pengguna. Aplikasi Google Wallet kemudian memeriksa ID Kelas dan ID Kolektor dari setiap kartu yang disimpan. Jika satu atau beberapa kecocokan ditemukan, aplikasi Google Wallet akan mengirimkan kartu yang cocok ke terminal. Lihat Konfigurasi penjual untuk detail penyiapan.

Contoh 1: Satu Penerbit Penukaran

Bagian berikut menjelaskan penyiapan yang diuraikan dalam grafik ini.

Pada diagram sebelumnya, ada dua Penerbit yang berbeda:

  • Penerbit 2018 adalah developer kartu (juga disebut Agregator)
  • Penerbit 1990 adalah penjual, fooPizza (juga disebut Penerbit Penukaran)

Penerbit Penukaran, fooPizza, ingin mengaktifkan fungsi Smart Tap untuk kartu mereka (dikelola oleh Aggregator). Agregator dan Penerbit Penukaran harus menyelesaikan langkah-langkah berikut untuk mengaktifkan Smart Tap untuk terminal penjual.

Langkah Role Deskripsi
1 Agregator Buat class dan objek kartu (dalam diagram, abc dan 123, masing-masing).
2 Agregator Sertakan ID Penerbit Penukaran di properti redemptionIssuers pada class kartu. Hal ini memberi tahu Google Wallet bahwa ID Penerbit 1990 diizinkan untuk menukarkan objek kartu yang mereferensikan class ini.
3 Penerbit Penukaran Dapatkan ID Kolektor (dalam diagram, 12345678).
4 Penerbit Penukaran Tetapkan ID Kolektor 12345678 di setiap terminal yang mendukung Smart Tap yang akan digunakan. Setiap objek dengan ID Class abc dan ID Kolektor 12345678 akan dikirimkan kepada pembaca.

Contoh 2: Beberapa Penerbit Penukaran

Satu class kartu dapat memiliki beberapa Penerbit Penukaran. Agar dapat menukarkan kelas kartu tertentu, ID Penerbit Penukaran harus disertakan dalam properti redemptionIssuers kelas tersebut. Setiap Penerbit Penukaran kemudian memiliki ID Kolektor sendiri, yang dikonfigurasi di terminal yang mendukung Smart Tap.

Bagian berikut menjelaskan penyiapan yang diuraikan dalam grafik ini.

Pada diagram sebelumnya, ada tiga Penerbit yang berbeda:

  • Penerbit 8088 adalah developer kartu (Agregator)
  • Penerbit 1990 adalah penjual, fooPizza (Penerbit Penukaran)
  • Penerbit 2018 adalah penjual, yumPie (Penerbit Penukaran)

Agregator dan Penerbit Penukaran harus menyelesaikan langkah-langkah berikut untuk mengaktifkan Smart Tap untuk terminal penjual.

Langkah Role Deskripsi
1 Agregator Buat class dan objek kartu (dalam diagram, abc dan 123, masing-masing).
2 Agregator Sertakan ID Penerbit Penukaran di properti redemptionIssuers pada class kartu. Hal ini memberi tahu Google Wallet bahwa ID Penerbit 1990 dan 2018 diizinkan untuk menukarkan objek kartu yang merujuk class ini.
3 Penerbit Penukaran Mendapatkan ID Kolektor (dalam diagram, 12345678 untuk fooPizza dan 18802001 untuk yumPie).
4 Penerbit Penukaran Tetapkan ID Kolektor yang sesuai pada setiap terminal yang mendukung Smart Tap yang akan digunakan. Setiap objek dengan ID Class abc dan ID Kolektor yang cocok akan dikirimkan kepada pembaca.

Contoh 3: Tidak Ada Agregator

Class kartu dapat dikembangkan dan diterbitkan dalam akun Penerbit yang sama. Dalam hal ini, tidak ada Agregator yang mengelola class kartu untuk beberapa Penerbit Penukaran. Agar dapat menukarkan class kartu tertentu, developer kartu harus menyertakan ID Penerbit mereka di properti redemptionIssuers class tersebut. Kemudian, developer kartu harus mendapatkan ID Kolektor dan mengonfigurasinya di terminal yang mendukung Smart Tap.

Bagian berikut menjelaskan penyiapan yang diuraikan dalam grafik ini.

Developer kartu harus menyelesaikan langkah-langkah berikut untuk mengaktifkan Smart Tap bagi terminal penjual.

Langkah Role Deskripsi
1 Lulus Developer Buat class dan objek kartu (dalam diagram, abc dan 123, masing-masing).
2 Lulus Developer Sertakan ID Penerbit miliknya di properti redemptionIssuers pada class kartu. Atribut ini memberi tahu Google Wallet bahwa ID Penerbit 2018 diizinkan untuk menukarkan objek kartu yang mereferensikan class ini.
3 Lulus Developer Dapatkan ID Kolektor (dalam diagram, 12345678).
4 Lulus Developer Tetapkan ID Kolektor yang sesuai pada setiap terminal yang mendukung Smart Tap yang akan digunakan. Setiap objek dengan ID Class abc dan ID Kolektor yang cocok akan dikirimkan kepada pembaca.

Pengalaman dan perilaku pengguna

Perilaku yang ditransmisikan antara terminal dan aplikasi Google Wallet bergantung pada pengguna dan cara mereka berinteraksi dengan aplikasi Google Wallet pada saat itu.

Skenario 1: Pengguna membuka kartu tertentu

Langkah Role Deskripsi
1 Pengguna Pilih kartu tertentu di aplikasi Google Wallet.
2 Pengguna Ketuk terminal yang mengaktifkan Smart Tap.
3 Terminal (ID Kolektor cocok) Kartu akan dikirim ke terminal.
(ID Kolektor tidak cocok) Kartu tidak dikirim ke terminal.

Skenario 2: Tab Beranda Google Wallet atau tampilan layar yang tidak terkunci

Langkah Role Deskripsi
1 Pengguna Buka tab Beranda di aplikasi Google Wallet, atau buka kunci layar perangkat.
2 Pengguna Ketuk terminal yang mengaktifkan Smart Tap.
3 Terminal (Satu ID Kolektor yang valid cocok) Kartu dikirim ke terminal.
(Beberapa ID Kolektor yang valid) Menampilkan carousel kartu yang valid dan mengirimkan kartu yang dipilih oleh pengguna.

Catatan: Validitas kartu bergantung pada konfigurasi spesifik objek kartu. Pastikan untuk memeriksa properti objek penerusan berikut:

  • state
  • validTimeInterval

Contoh koleksi Smart Tap

Tabel berikut menjelaskan Penerbit dan kartu yang akan digunakan dalam contoh ini:

Nama penjual ILuvCoffee Minum Kopi Moka-R-U
ID Penerbit 123 456 789
ID Kolektor 11111111 44444444 77777777
Tingkat Loyalitas Dasar-Dasar R Reward Saya
Emas R

ILuvCoffee memiliki dua tingkat loyalitas yang berbeda: R-Basic dan R-Gold. Sementara itu, Coffee-Foo memiliki program loyalitas dengan satu tingkat, My Rewards, dan Mocha-R-Us tidak memiliki program loyalitas.

Sebagai bagian dari kampanye promosi silang, penjual ingin menyediakan opsi berikut kepada pelanggan mereka:

  • Pelanggan tingkat R-Basic dapat menggunakan Smart Tap untuk menukarkan langganan loyalitas mereka di Coffee-Foo dan Mocha-R-Us
  • Pelanggan tingkat R-Gold tidak memerlukan penukaran Smart Tap
  • Pelanggan Reward Saya dapat menggunakan Smart Tap untuk menukarkan keanggotaan loyalitas mereka hanya di Coffee-Foo

Agar kampanye ini berfungsi, setiap kelas loyalitas memerlukan nilai berikut yang ditetapkan dalam properti redemptionIssuers definisi class.

Kelas loyalitas ID Penerbit Penukaran
Dasar-Dasar R ["456", "789"]
Emas R []
Reward Saya ["456"]

Dengan konfigurasi ini, objek kartu apa pun yang mereferensikan class ini akan memiliki ID Kolektor berikut:

  • Dasar-R: 44444444, 77777777
  • R-Gold: Tidak ada ID Kolektor yang akan disertakan
  • Reward Saya: 44444444

Autentikasi kolektor pada waktu ketuk

Sebagai bagian dari Konfigurasi penerbit, Akun penerbit mungkin memiliki beberapa kunci publik yang terkait dengannya. Kunci publik ini disimpan di aplikasi Google Wallet yang menggunakannya untuk autentikasi saat pengguna mengetuk perangkatnya pada terminal yang mengaktifkan Smart Tap. Langkah autentikasi ini dilakukan setelah aplikasi menemukan objek kartu yang dikeluarkan kepada pengguna yang memiliki ID Kolektor yang cocok dengan nilai yang diiklankan oleh terminal.

Melanjutkan contoh di bagian sebelumnya, tabel berikut menjelaskan kunci publik yang terkait dengan setiap Penerbit.

Nama penjual ILuvCoffee Minum Kopi Moka-R-U
ID Penerbit 123 456 789
ID Kolektor 11111111 44444444 77777777
Tingkat Loyalitas Dasar-Dasar R Reward Saya
Emas R
Kunci Publik aaa bbb

Contoh pelanggan memiliki kartu loyalitas berikut yang tersimpan di aplikasi Google Wallet mereka:

  • ILuvCoffee: R-Basic
  • Coffee-Foo: Reward Saya

Seperti sebelumnya, nilai berikut ditetapkan dalam properti redemptionIssuers untuk setiap class loyalitas.

  • Dasar-R: ["456", "789"]
  • Reward Saya: ["456"]

Jika pengguna mengetuk perangkat mereka di terminal untuk setiap penjual, ada tiga kemungkinan hasil:

Terminal penjual Hasil
ILuvCoffee Karena ILuvCoffee (ID Penerbit Penukaran 123) saat ini tidak dikonfigurasi untuk menukarkan class loyalitasnya sendiri, yaitu R-Basic, tidak ada yang dikirimkan.
Minum Kopi Aplikasi Google Wallet mengautentikasi ke terminal Coffee-Foo menggunakan kunci publik bbb. Bergantung pada layar saat ini yang dilihat pengguna di perangkatnya, salah satu skenario yang tercantum di bagian Pengalaman pengguna akan terjadi.
Moka-R-U Tidak ada kunci publik untuk Mocha-R-Us dalam contoh ini. Meskipun program R-Basic dapat ditukarkan dengan penjual, program ini tidak dapat melakukan autentikasi ke terminal sehingga tidak ada yang akan dikirimkan.

Batas autentikasi

Saat kartu disinkronkan ke aplikasi Google Wallet pengguna, semua Penerbit Penukaran kartu tersebut akan dicari dari backend Google Wallet. ID Kolektor, kunci publik, dan versi kunci untuk setiap Penerbit Penukaran disimpan secara lokal di aplikasi Google Wallet.

Kartu dapat memiliki banyak ID Penerbit Penukaran. Selanjutnya, akan dipetakan ke ID Kolektor tertentu untuk penjual tertentu. Selain itu, mungkin ada banyak kunci publik dan versi kunci untuk satu ID Kolektor.

Aplikasi Google Wallet tidak akan mencoba melakukan autentikasi ke terminal jika tidak memiliki kartu yang dapat ditukarkan oleh terminal tersebut. Hal ini didasarkan pada ID Kolektor dan versi kunci publik. Untuk memperbarui kunci publik kartu Anda, terminal harus memiliki koneksi internet agar dapat mengambil kunci publik baru dari backend Google Wallet.

Satu {i>pass<i} dapat dikaitkan dengan banyak kunci publik sekaligus. Lihat Konfigurasi penjual untuk mengetahui informasi tentang cara menetapkan beberapa kunci publik untuk kartu yang sama.

Transmisi nilai selama ketukan

Untuk mengirim data dari kartu selama ketukan, smartTapRedemptionValue objek kartu harus ditetapkan. Setelah class yang sesuai dengan objek diaktifkan untuk Smart Tap, nilai ini akan dikirim ke terminal.

Berdasarkan integrasi dan kasus penggunaan Anda, nilai ini akan digunakan untuk mengidentifikasi penerusan pengguna dan melakukan logika transaksi yang diperlukan, seperti berikut:

  1. Memperbarui saldo atau status pengguna
  2. Mengupdate backend Anda sendiri berdasarkan transaksi
  3. Jalankan update pada objek kartu menggunakan Google Wallet API agar objek tersebut mencerminkan perubahan apa pun pada status pengguna di perangkatnya

Terminal dan aplikasi Google Wallet menangani enkripsi semua data yang dikirim melalui NFC. Terminal menangani dekripsi data setelah Smart Tap dilakukan. Dalam data tersebut, ada data NDEF Objek Layanan yang mewakili setiap penerusan yang ditransmisikan. Service number NDEF Record Objek Layanan memiliki payload yang berisi nilai yang ditetapkan dalam properti smartTapRedemptionValue objek penerusan. Artinya, developer kartu tidak perlu menangani enkripsi data yang dikirim.

Jika ingin menambahkan lapisan keamanan lain, Anda dapat menetapkan properti smartTapRedemptionValue sehingga hanya sistem yang menerima data yang dikirim (seperti Tempat Penjualan) yang dapat mendekripsinya. Namun, developer kartu dan administrator POS akan bertanggung jawab atas proses enkripsi/dekripsi.