4 SERVICES · 1 PAYMENT
Điểm đi đâu
sau cú quét?
QR chỉ mang link checkout một lần. Giá nằm trên server; điện thoại không thể sửa đơn hay số điểm.
SEQUENCE DIAGRAM
Một payment đi qua hệ thống
Trên màn hình nhỏ: kéo ngang để theo dõi đủ bốn service.
- 01Máy tạo đơn cố định
Vending Frontend gửi món và giá điểm tới Payment Backend. Backend gọi Boon Backend để tạo order có hạn dùng.
- 02QR mở Boon checkout
Payment Backend nhận checkout URL và QR thật. QR không chứa user ID, balance hay access token.
- 03Staff login và xác nhận
Boon Frontend lưu login demo, quay lại đúng checkout URL rồi hiển thị order do server giữ.
- 04Boon trừ điểm một lần
Boon Backend check balance, trừ điểm atomically và ghi ledger bằng idempotency key.
- 05Webhook chốt trạng thái
Boon Backend gửi webhook
PAIDtới Payment Backend. Vending Frontend poll thấy thành công rồi mới cho máy dispense.
Chỉ refund khi dispense thất bại chắc chắn và luôn tham chiếu originalPaymentId. Kết quả chưa rõ không hoàn ngay, tránh staff vừa nhận nước vừa nhận lại điểm.