Dönen Barkodlar

Giriş

Dönen barkodlar normal barkodlara benzer ancak genellikle her dakika düzenli olarak değişir. Terminal/okuyucu yalnızca en son olanı kabul edecek şekilde programlanmıştır. Bu güvenlik önlemi, barkod ekran görüntüsü alma ve özellikle bilet hırsızlığı veya yetkisiz bilet satışı ile ilgili riskleri azaltır. Dönen barkodlar, NFC'yi desteklemediği (donanım eksikliği veya yazılım devre dışı bırakılmış) için Akıllı Dokunma'dan yararlanamayan cihazlar için yedek olarak da kullanılabilir.

API referansı

Dönen barkodlar hakkında teknik ayrıntılar için RotatingBarcode türüne bakın.

Örnek yükü

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"
        }
      ]
    }
  }
}

Yedek Mekanizmalar

Kullanıcı cihazında, kartın yapılandırmasına ve cihazın özelliklerine bağlı olarak belirli bir zamanda yalnızca bir kullanım mekanizması kullanılır. Öncelik sırasına göre aşağıdaki kullanım türleri kullanılır:

  1. Akıllı Dokunma: Akıllı dokunma yükü belirtilmişse ve cihaz NFC/HCE destekliyorsa
    • Kullanıcının "Kodu göster"i tıklayarak bu ayarı geçersiz kılabileceğini unutmayın. Bu durumda dönen/statik barkod gösterilir.
  2. Dönen barkod: Dönen barkod yükü belirtilmişse
  3. Statik barkod: Barkod yükü belirtilmişse

Birden fazla kullanım yükü belirtmek tüm kullanıcıların desteklenmesini sağlayabilir ancak güvenlikle ilgili sonuçlara yol açabilir. Özellikle, dönen barkod için yedek olarak statik barkod kullanmak, dönen barkodların sağladığı güvenlik avantajlarının çoğunu ortadan kaldırır. Statik barkod yedeği yalnızca web görünümlerinde veya dönen barkodu desteklemeyen istemcilerde gösterilir. Bugün itibarıyla tüm Google Cüzdan istemcilerinin dönen barkodları desteklemesini bekliyoruz.

Akışı Kaydetme

Google Cüzdan API'si aşağıdakiler gibi çeşitli akışlar sunar:

  • Bağlılık sınıflarını zamandan tasarruf ederek veya önceden oluşturma
  • JWT'nizde nesnelerin tamamını gönderme veya nesneleri önceden kaydedip JWT'nizde kimliğe göre referans verme
  • Nesneleri kaydedildikten sonra güncelleme

Önerilen rotatingBarcode alanı tüm bu akışlarla uyumludur. Ancak güvenliği artırmak için aşağıdakileri öneririz:

  • Kartı Google Cüzdan sunucusuna eklemek için object:insert API'yi çağırın ve Google Cüzdan'a Ekle düğmesini, JWT'nizdeki kimliğe göre belirli nesneyi referans alacak şekilde yapılandırın. Bu, oluşturulan JWT'nin dönen barkodun gizli anahtarını içermemesini sağlar.
  • Kapsamı tek geçişle sınırlı olan bir OTP gizli anahtarı kullanın
  • Anahtarın, güncellenmediği sürece geçişin kullanım ömrü boyunca geçerli olması beklenir. Bu anahtarın normal çalışma sırasında herhangi bir sıklıkta güncellenmesi beklenmez.

Aşağıdaki sıra şemasında, tipik bir entegrasyon için çeşitli aktörler arasındaki akış gösterilmektedir:

Dönen barkodları kullanmaya yönelik ardışık düzen şeması