Skip to content

PRD: Vòng đời thanh toán qua nhà cung cấp

ModuleThanh toánPRD IDPRD-PAY-001
Trạng tháiSẵn sàng devFEATPAY
EpicPlaneBANA-1511
Ngày2026-07-15Phiên bảnv1.1
Gói@nx/paymentURDPAY
SurfaceBackendSale · POS
Phụ tráchPhát Nguyễn

Dịch vụ thanh toán làm gì

Khi thu ngân (cashier) thu tiền một đơn bằng mã QR hoặc máy quẹt, tiền không đi thẳng từ POS vào sổ. Nó đi qua một nhà cung cấp thanh toán (payment provider) bên ngoài - VNPAY - rồi nhà cung cấp báo kết quả về.

Dịch vụ thanh toán (Payment Service) là nơi nhận kết quả đó. Nó lấy thông báo từ nhà cung cấp, đổi trạng thái của khoản thanh toán, đẩy trạng thái mới về màn hình thu ngân ngay lập tức, và báo cho bán hàng (Sale) biết để tất toán đơn. Từ đó tài chính, kho và hóa đơn tự phản ứng theo.

Bốn trạng thái của một khoản thanh toán

Mỗi khoản thanh toán đi qua một vòng đời ngắn, mô tả bằng ngôn ngữ nghiệp vụ:

Trạng tháiNghĩa
đang chờ (pending)Đã tạo yêu cầu, mã QR đang chờ khách quét hoặc máy quẹt đang chờ thẻ
đã thanh toán (paid)Nhà cung cấp xác nhận tiền đã vào
thất bại (failed)Nhà cung cấp báo giao dịch không thành
hết hạn (expired)Mã QR hết hạn trước khi có ai trả

Hai kiểu nhận tiền của VNPAY

  • VNPAY QR MMS: sinh một mã QR, khách quét bằng app ngân hàng để trả.
  • PhonePOS: biến điện thoại của thu ngân thành thiết bị nhận thẻ, khách chạm thẻ vào điện thoại.

Cả hai đều báo kết quả về dịch vụ thanh toán theo cùng một đường, nên phần sau của hệ thống xử lý giống nhau bất kể khách trả bằng cách nào.

Một khoản thanh toán QR, từ lúc quét tới lúc lên sổ

Thu ngân thu 200.000đ cho đơn #123 bằng VNPAY QR MMS:

Việc xảy raTrạng thái khoản thanh toánThu ngân thấy
Thu ngân bấm thu tiền, mã QR hiện rađang chờMàn chờ khách quét
Khách quét và trả, VNPAY báo vềđã thanh toánMàn tự chuyển sang đã trả, không cần bấm làm mới
Bán hàng nhận tin, tất toán đơn #123đã thanh toánĐơn #123 đóng, in hóa đơn
  • Thu ngân không phải bấm làm mới hay chờ vòng hỏi trạng thái. Trạng thái tự đẩy về ngay khi VNPAY xác nhận.
  • Ngay sau khi đơn tất toán, tài chính ghi phiếu thu, kho trừ hàng, hóa đơn phát hành - tất cả tự chạy, không giữ chân thu ngân.

Chỗ dễ sai nhất

Cấu hình và thông tin xác thực KHÔNG thuộc dịch vụ thanh toán

Việc chọn nhà cung cấp nào, nhập mã merchant và thông tin xác thực, gắn với ví nào - tất cả nằm trong ví tài chính (Finance Account) của merchant, do module tài chính quản lý. Cả chủ merchant và đội vận hành (operations team) cấu hình tại đó.

Dịch vụ thanh toán chỉ đọc cấu hình đang hoạt động từ ví tài chính khi thu tiền. Nó không có màn cấu hình riêng và không lưu thông tin xác thực của riêng nó.

Một kết quả gửi lại chỉ được áp dụng một lần

Mạng chập chờn có thể khiến nhà cung cấp gửi cùng một thông báo thành công hai lần. Dịch vụ thanh toán nhận ra lần thứ hai và bỏ qua, nên không có chuyện tính tiền hai lần hay lên sổ hai lần cho cùng một khoản.

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