Xoay mã vạch

Giới thiệu

Việc xoay mã vạch trông giống như mã vạch thông thường nhưng thay đổi định kỳ (thường là sau mỗi phút) và thiết bị đầu cuối/trình đọc được lập trình để chỉ chấp nhận mã gần đây nhất. Biện pháp bảo mật này giúp giảm nguy cơ liên quan đến việc chụp ảnh màn hình mã vạch, cụ thể là hành vi ăn cắp vé hoặc bán lại vé trái phép. Việc xoay mã vạch cũng có thể đóng vai trò dự phòng cho các thiết bị không thể tận dụng được tính năng Chạm thông minh do không hỗ trợ NFC (thiếu phần cứng hoặc phần mềm bị vô hiệu hoá).

Tài liệu tham khảo API

Để biết thông tin kỹ thuật về việc xoay mã vạch, hãy xem loại RotatingBarcode.

Tải trọng mẫu

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

Cơ chế dự phòng

Trên thiết bị của người dùng, chỉ một cơ chế đổi thưởng được sử dụng tại một thời điểm nhất định, tuỳ thuộc vào cách định cấu hình thẻ và vé cũng như các chức năng của thiết bị. Các hình thức đổi thưởng sau đây được sử dụng theo thứ tự ưu tiên:

  1. Chạm thông minh: Nếu tải trọng nhấn thông minh được chỉ định và thiết bị có hỗ trợ NFC/HCE hay không
    • Lưu ý: Người dùng có thể ghi đè mã này bằng cách nhấp vào "Hiển thị mã". Thao tác này sẽ buộc hiển thị mã vạch/mã vạch tĩnh.
  2. Mã vạch xoay: Nếu tải trọng mã vạch xoay vòng được chỉ định
  3. Mã vạch tĩnh: Nếu tải trọng mã vạch được chỉ định

Việc chỉ định nhiều tải trọng đổi thưởng có thể đảm bảo tất cả người dùng đều được hỗ trợ nhưng có thể gây ra những vấn đề về bảo mật. Cụ thể, việc sử dụng mã vạch tĩnh làm giải pháp dự phòng cho mã vạch xoay vòng phủ định hầu hết các lợi ích bảo mật của việc sử dụng mã vạch xoay. Tính năng dự phòng mã vạch tĩnh sẽ chỉ xuất hiện trong chế độ xem web hoặc trên các ứng dụng không hỗ trợ mã vạch xoay. Kể từ hôm nay, chúng tôi mong muốn tất cả ứng dụng của Google Wallet sẽ hỗ trợ việc xoay vòng mã vạch.

Lưu quy trình

API Google Wallet cung cấp nhiều quy trình, bao gồm:

  • Tạo các lớp phương tiện công cộng khi tiết kiệm thời gian hoặc trước thời hạn
  • Gửi các đối tượng hoàn chỉnh trong JWT hoặc lưu trước các đối tượng sau đó tham chiếu đến các đối tượng đó theo mã nhận dạng trong JWT của bạn
  • Cập nhật các đối tượng sau khi lưu

Trường xoay Barcode được đề xuất tương thích với tất cả các quy trình này, tuy nhiên, để cải thiện tính bảo mật, bạn nên làm như sau:

  • Gọi API object:insert để chèn thẻ và vé vào máy chủ Google Wallet và định cấu hình nút Thêm vào Google Wallet để tham chiếu đối tượng cụ thể theo mã nhận dạng trong JWT của bạn. Việc này đảm bảo rằng JWT thu được không bao gồm khoá bí mật của mã vạch xoay.
  • Sử dụng khoá bí mật OTP trong phạm vi một thẻ và vé
  • Trừ phi bạn cập nhật khoá, khoá này dự kiến sẽ có hiệu lực trong thời gian tồn tại của thẻ. Chúng tôi dự kiến khoá này sẽ không được cập nhật theo bất kỳ tần suất nào trong quá trình hoạt động bình thường.

Sơ đồ trình tự sau đây minh hoạ quy trình giữa các đối tượng cho quá trình tích hợp thông thường:

Sơ đồ trình tự sử dụng mã vạch xoay