Skip to content

URD: Thiết bị

ModulePhiên bảnCập nhật
CORE-04v0.52026-07-21

Module Thiết bị làm gì

Xác định các yêu cầu hướng người dùng cho quản lý thiết bị và tích hợp phần cứng - cách một organizer đăng ký, quản lý và giám sát thiết bị vật lý (máy POS, ứng dụng di động, client web), và cách nền tảng tích hợp thiết bị ngoại vi (máy in, máy quét mã vạch, SoundBox, SoftPOS/NFC, màn hình phụ).

Thiết bị không chỉ là một bản ghi quản lý - nó là điểm neo runtime mà một phiên đăng nhập, một ca bán hàng, một ngăn kéo tiền và một báo cáo đều gắn vào (xem chương DSX). Vì vậy, thiết bị phải được nhận diện đúng và chỉ một lần trên mỗi phần cứng vật lý - nhận diện sai sinh ra thiết bị trùng, mất dấu vết ca và báo cáo.

Bốn ý cần hiểu trước

Đây là phần quan trọng nhất của tài liệu. Hiểu bốn ý dưới đây là hiểu phần lõi của module.

1. Một thiết bị, một định danh bền vững

Mỗi thiết bị mang một Định danh thiết bị (D_YYYYMMDD_<snowflakeId>) sinh đúng một lần khi thiết bị được tạo, và không đổi qua các lần gỡ cài đặt / cài đặt lại ứng dụng trên cùng phần cứng. Đây là bất biến quan trọng nhất của toàn module: nếu định danh trôi qua mỗi lần cài lại, cùng một cái máy POS sẽ bị hệ thống hiểu nhầm thành nhiều thiết bị khác nhau, mỗi lần lại là một bản ghi mới, một vòng đời mới, một lịch sử ca rời rạc.

Vì vậy định danh không được phép chỉ sống trong local storage của ứng dụng (thứ biến mất khi gỡ cài đặt hoặc khi trình duyệt xóa dữ liệu) - nó phải suy ra được từ chính phần cứng hoặc được phục hồi bằng một cơ chế không phụ thuộc bộ nhớ cục bộ (xem ý 3).

2. Đăng nhập là kiểm tra trước, tạo mới sau

Thiết bị không tự động có mặt trong hệ thống chỉ vì ai đó cài app lên nó. Mỗi lần đăng nhập, ứng dụng gọi một API hỏi: "định danh này đã thuộc merchant hiện tại chưa?"

  • → thiết bị đã được biết đến, mọi thứ hoạt động bình thường, không có gì được tạo mới.
  • Chưa → hệ thống tạo một bản ghi thiết bị mới, ở trạng thái NEW (chưa kích hoạt).

Phép kiểm tra này chạy trên mọi loại client (POS, di động, trình duyệt), không riêng gì một nền tảng.

3. Kích hoạt là một hành động rời rạc, không phải một bước ẩn

Đây là chỗ dễ hiểu lầm nhất: tạo thiết bị mới không đồng nghĩa với kích hoạt nó. Một thiết bị NEW chỉ trở thành ACTIVATED qua đúng một con đường: ai đó quét hoặc nhập Mã kích hoạt của thiết bị đó rồi bấm "Kích hoạt".

Khi một thiết bị mới được tạo, hệ thống tự sinh Mã kích hoạt dưới hai dạng song song - một mã QR (quét bằng camera) và một mã Barcode (quét bằng máy quét mã vạch hoặc gõ tay). Có hai dạng vì hai lý do khác nhau:

  • Không phải thiết bị nào cũng có camera để quét QR - Barcode phục vụ đúng nhóm thiết bị đó (máy POS chuyên dụng, máy tính không webcam).
  • Trình duyệt đôi khi không giữ được định danh do chính sách ITP (Intelligent Tracking Prevention) - chặn cookie hoặc tập lệnh theo dõi hành vi giữa các trang web khác nhau, kéo theo giới hạn thời gian lưu trữ phía client - khi đó phép kiểm tra tự động ở ý 2 không đáng tin cậy, và việc kích hoạt bằng mã cho một con đường không phụ thuộc bộ nhớ trình duyệt để hoàn tất.

Mỗi Mã kích hoạt chỉ dùng được đúng một lần - dùng lại bị từ chối, kể cả trên chính thiết bị đó.

4. Vòng đời vận hành và tình trạng vật lý là hai trục khác nhau

Trạng thái vận hành (NEW → ACTIVATED → DEACTIVATED → SUSPENDED → ARCHIVED) trả lời câu "thiết bị này được phép giao dịch không". Tình trạng vật lý (Đang hoạt động / Đang bảo trì / Hư hỏng) trả lời một câu khác hẳn: "cái máy này có đang chạy tốt không". Một thiết bị có thể ACTIVATED (được phép bán hàng) trong khi Hư hỏng (hỏng thật) - và chính khoảng trống đó là lý do Tình trạng thiết bị tồn tại như một trục riêng, không lẫn vào Trạng thái vận hành.

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.