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
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.
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.
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:
- Memperbarui saldo atau status pengguna
- Mengupdate backend Anda sendiri berdasarkan transaksi
- 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.