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 ile ilgili riskleri (özellikle bilet hırsızlığı veya yetkisiz bilet satışı) 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 bkz. RotatingBarcode türü.

Ö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, aynı anda yalnızca bir teklif kullanma mekanizması kullanılır. Bu, kartın nasıl yapılandırıldığına ve cihazın özelliklerine bağlı olarak değişir. Öncelik sırasına göre aşağıdaki tekliften yararlanma türleri kullanılır:

  1. Akıllı Dokunma: Akıllı dokunma yükü belirtildiyse ve cihazın destekliyorsa NFC/HCE
    • Bunun kullanıcı tarafından geçersiz kılınabileceğini lütfen unutmayın. Bunun için "Kodu göster" dönen barkod/statik barkodun görüntülenmesini sağlar.
  2. Dönen barkod: Dönen barkod yükü belirtilmişse
  3. Statik barkod: Barkod yükü belirtilmişse

Birden fazla teklif kullanma 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:

  • Hediye kartı sınıflarını daha sonra veya önceden oluşturma
  • JWT'nizde nesnelerin tamamını gönderme veya nesneleri önceden kaydedip JWT'nizde kimliğe göre referans verme
  • Kaydedildikten sonra nesneleri 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 bir nesneye referans verecek şekilde yapılandırın. Bu, oluşturulan JWT'nin dönen barkodun gizli anahtarını içermemesini sağlar.
  • Tek geçiş için kapsamlı 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, ilgili dönem boyunca herhangi bir sıklıkta güncellenmesi beklenmiyor. devam etmesi gerekir.

Aşağıdaki dizi diyagramında farklı aktörler arasındaki akış gösterilmektedir şu adımları izleyin:

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