Pengantar
Kode batang yang diputar akan terlihat seperti kode batang biasa, tetapi berubah secara berkala, biasanya setiap menit, dan terminal/pembaca diprogram agar hanya menerima yang terbaru. Langkah keamanan ini mengurangi risiko yang terkait dengan screenshot kode batang, khususnya pencurian tiket atau penjualan kembali tiket tanpa izin. Kode batang yang berputar juga dapat berfungsi sebagai penggantian untuk perangkat yang tidak dapat memanfaatkan Smart Tap, karena tidak mendukung NFC (kurangnya hardware atau software yang dinonaktifkan).
Referensi API
Untuk detail teknis tentang Memutar Kode Batang, lihat
jenis RotatingBarcode
.
Contoh payload
JSON | |
---|---|
{ "rotatingBarcode": { "type": "QR_CODE", "valuePattern": "MyRotatingBarcode-{totp_timestamp_seconds}-{totp_value_0}", "alternateText": "Ticket#: 1234567890", "totpDetails": { "algorithm": "TOTP_SHA1", "periodMillis": "3000", "parameters": [ { "key": "3132333435363738393031323334353637383930", "valueLength": "8" } ] } } } |
Mekanisme Penggantian
Di perangkat pengguna, hanya satu mekanisme penukaran yang digunakan pada waktu tertentu, bergantung pada cara kartu dikonfigurasi dan kemampuan perangkat. Berdasarkan urutan prioritas, jenis penukaran berikut digunakan:
-
Smart Tap: Jika payload ketuk smart ditentukan dan jika perangkat mendukung
NFC/HCE
- Perhatikan bahwa hal ini dapat diganti oleh pengguna dengan mengklik “Tampilkan kode”, yang akan memaksa tampilan kode batang/kode batang statis yang berputar.
- Memutar kode batang: Jika muatan kode batang yang berputar ditetapkan
- Kode batang statis: Jika payload kode batang ditentukan
Menentukan beberapa payload penukaran dapat memastikan bahwa semua pengguna didukung, tetapi mungkin berdampak pada keamanan. Secara khusus, penggunaan kode batang statis sebagai pengganti kode batang yang berputar akan meniadakan sebagian besar manfaat keamanan dari penggunaan kode batang yang berputar. Penggantian kode batang statis hanya akan ditampilkan di tampilan web atau pada klien yang tidak mendukung rotasi kode batang. Mulai hari ini, kami berharap semua klien Google Wallet mendukung rotasi kode batang.
Simpan Alur
Google Wallet API menawarkan beberapa alur, termasuk:
- Membuat kelas kartu voucher pada waktu yang tepat, atau sebelumnya
- Mengirim objek lengkap di JWT Anda, atau menyimpan objek terlebih dahulu, lalu mereferensikannya melalui ID di JWT Anda
- Memperbarui objek setelah disimpan
Kolom rotatingBarcode yang diusulkan kompatibel dengan semua alur ini, tetapi, untuk meningkatkan keamanan, kami menyarankan hal berikut:
-
Panggil
object:insert
API untuk menyisipkan kartu ke server Google Wallet dan mengonfigurasi tombol Tambahkan ke Google Wallet untuk mereferensikan objek tertentu berdasarkan ID di JWT Anda. Cara ini memastikan JWT yang dihasilkan tidak menyertakan kunci rahasia kode batang yang berputar. - Gunakan kunci rahasia OTP yang dicakup dalam satu penerusan
- Kunci, kecuali jika diperbarui, diharapkan valid selama masa aktif kartu. Kami tidak mengharapkan kunci ini diperbarui pada frekuensi apa pun selama operasi normal.
Diagram urutan berikut menggambarkan alur antara berbagai aktor untuk integrasi standar: