Memutar Kode Batang

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:

  1. 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.
  2. Memutar kode batang: Jika muatan kode batang yang berputar ditetapkan
  3. 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 transportasi umum pada waktu yang tepat atau lebih awal
  • 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:

Diagram urutan untuk menggunakan Kode Batang Berputar