Đang trong quá trình Xây dựng
Các chi tiết tính năng trong tài liệu này có thể thay đổi trong các giai đoạn nghiên cứu, thảo luận, thiết kế và triển khai.
Payment / Thanh toán
Xử lý thanh toán với nhiều phương thức.
Tổng quan
| Thuộc tính | Giá trị |
|---|---|
| ID Module | CORE-09 |
| Giai đoạn | Giai đoạn 1 (QR/Tiền mặt), Giai đoạn 3 (SoftPOS) |
| Mức độ ưu tiên | RẤT CAO |
| Phụ thuộc | Đơn hàng, Thiết bị |
Module Thanh toán xử lý tất cả các giao dịch thanh toán, hỗ trợ nhiều phương thức thanh toán bao gồm mã QR, thiết bị POS, tiền mặt và thanh toán di động. Nó tích hợp với cơ sở hạ tầng thanh toán của VNPAY để xử lý giao dịch liền mạch và xác nhận thanh toán thời gian thực.
┌─────────────────────────────────────────────────────────────────┐
│ CÁC PHƯƠNG THỨC THANH TOÁN │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MÃ QR │ │ POS/THẺ │ │ TIỀN MẶT │ │
│ │ (VNPAY) │ │ (VNPAY) │ │ │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ THANH TOÁN ĐƠN HÀNG │ │
│ └─────────────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ GIAO DỊCH │ │ HÓA ĐƠN │ │ BIÊN LAI │ │
│ │ ĐÃ GHI NHẬN │ │ (Hóa đơn điện tử)│ │ (In) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ Giai đoạn 3: ┌─────────────┐ ┌─────────────┐ │
│ │ SOFTPOS │ │ VÍ ĐIỆN TỬ │ │
│ │ (Chạm để thanh toán)│ │ (Ví điện tử)│ │
│ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘User Stories
Giai đoạn 1 - Thanh toán Cốt lõi
| ID | Với vai trò... | Tôi muốn... | Để... |
|---|---|---|---|
| US-01 | Thu ngân | Chấp nhận thanh toán bằng mã QR | khách hàng có thể thanh toán qua VNPAY |
| US-02 | Thu ngân | Chấp nhận thanh toán tiền mặt | các khoản thanh toán truyền thống hoạt động |
| US-03 | Thu ngân | Tự động tính tiền thừa | tôi trả lại tiền thừa chính xác |
| US-04 | Thu ngân | Xử lý thanh toán bằng thẻ | khách hàng có thể sử dụng thẻ |
| US-05 | Thu ngân | Tách thanh toán theo phương thức | khách hàng có thể thanh toán một phần tiền mặt, một phần QR |
| US-06 | Chủ doanh nghiệp | Xem xác nhận thanh toán | tôi biết các khoản thanh toán đã thành công |
| US-07 | Chủ doanh nghiệp | Xem lịch sử thanh toán | tôi có thể theo dõi tất cả các khoản thanh toán |
Giai đoạn 2-3 - Thanh toán Nâng cao
| ID | Với vai trò... | Tôi muốn... | Để... |
|---|---|---|---|
| US-08 | Chủ doanh nghiệp | Chấp nhận thanh toán SoftPOS | điện thoại của tôi trở thành một thiết bị chấp nhận thẻ |
| US-09 | Chủ doanh nghiệp | Chấp nhận thanh toán một phần | khách hàng có thể thanh toán tiền đặt cọc |
| US-10 | Chủ doanh nghiệp | Xử lý hoàn tiền | tôi có thể trả lại tiền cho khách hàng |
| US-11 | Chủ doanh nghiệp | Đối soát thanh toán hàng ngày | ngăn kéo tiền mặt khớp với số liệu |
| US-12 | Thu ngân | Chấp nhận thanh toán bằng ví điện tử | có nhiều tùy chọn thanh toán hơn |
Ma trận Tính năng
| Tính năng | GĐ 1 | GĐ 2 | GĐ 3 | Mô tả |
|---|---|---|---|---|
| Thanh toán mã QR (VNPAY) | ✓ | Tạo mã QR động | ||
| Thanh toán tiền mặt | ✓ | Tiền mặt với tính toán tiền thừa | ||
| Thiết bị POS (thẻ) | ✓ | Thanh toán thẻ qua thiết bị | ||
| Xác nhận thanh toán | ✓ | Trạng thái thanh toán thời gian thực | ||
| Nhiều phương thức thanh toán | ✓ | Chia theo phương thức | ||
| Lịch sử thanh toán | ✓ | Xem tất cả các khoản thanh toán | ||
| Xử lý hoàn tiền | ✓ | Trả lại tiền cho khách hàng | ||
| SoftPOS (Chạm để thanh toán) | ✓ | Điện thoại làm thiết bị chấp nhận thẻ | ||
| Tích hợp ví điện tử | ✓ | MoMo, ZaloPay, v.v. | ||
| Thanh toán một phần | ✓ | Tiền đặt cọc, trả góp | ||
| Đối soát tiền mặt | ✓ | Số dư tiền mặt hàng ngày |
Các Phương thức Thanh toán
┌─────────────────────────────────────────────────────────────────┐
│ CHI TIẾT PHƯƠNG THỨC THANH TOÁN │
├─────────────────────────────────────────────────────────────────┤
│ │
│ PHƯƠNG THỨC GIAI ĐOẠN NHÀ CUNG CẤP TÍNH NĂNG │
│ ───────────────────────────────────────────────────────────── │
│ │ │
│ ├── VNPAY QR GĐ1 VNPAY Tạo QR động, Thời gian thực│
│ │ xác nhận, Phí thấp │
│ │ │
│ ├── TIỀN MẶT GĐ1 Nội bộ Tính tiền thừa, │
│ │ Tích hợp ngăn kéo tiền mặt│
│ │ │
│ ├── THẺ/POS GĐ1 VNPAY Visa/Master/JCB, │
│ │ Không tiếp xúc │
│ │ │
│ ├── CHUYỂN KHOẢN NGÂN HÀNG GĐ2 Nhiều nhà cung cấp Chuyển khoản tài khoản,│
│ │ QR ngân hàng │
│ │ │
│ ├── SOFTPOS GĐ3 VNPAY NFC chạm để thanh toán,│
│ │ Điện thoại làm thiết bị chấp nhận thẻ│
│ │ │
│ └── VÍ ĐIỆN TỬ GĐ3 Nhiều nhà cung cấp MoMo, ZaloPay, │
│ Ví VNPay │
│ │
└─────────────────────────────────────────────────────────────────┘Các Luồng chính
Luồng Thanh toán QR
Luồng Thanh toán Tiền mặt
Luồng Thanh toán Thẻ
Luồng Thanh toán Chia nhỏ
Luồng Hoàn tiền
Quy tắc Nghiệp vụ
| ID Quy tắc | Quy tắc | Mô tả |
|---|---|---|
| BR-01 | Thanh toán = Tổng đơn hàng | Khoản thanh toán phải bằng tổng đơn hàng |
| BR-02 | Cho phép nhiều phương thức | Đơn hàng có thể có nhiều khoản thanh toán |
| BR-03 | QR hết hạn | Mã QR hết hạn sau 5 phút |
| BR-04 | Tiền thừa chỉ cho tiền mặt | Tiền thừa chỉ được tính cho thanh toán tiền mặt |
| BR-05 | Hoàn tiền cùng phương thức | Hoàn tiền về phương thức thanh toán ban đầu |
| BR-06 | Phê duyệt hoàn tiền | Hoàn tiền yêu cầu phê duyệt của quản lý |
| BR-07 | Hoàn tiền tối đa | Hoàn tiền không thể vượt quá số tiền gốc |
| BR-08 | Yêu cầu ngăn kéo tiền mặt | Thanh toán tiền mặt cần ngăn kéo tiền mặt |
| BR-09 | Ghép nối thiết bị | Thanh toán thẻ cần thiết bị ghép nối |
| BR-10 | Hết thời gian chờ thanh toán | Thanh toán hết thời gian chờ sau 5 phút |
| BR-11 | Không QR một phần | Thanh toán QR phải là số tiền chính xác |
| BR-12 | Ghi nhật ký giao dịch | Tất cả các khoản thanh toán được ghi vào sổ cái |
Tiêu chí Chấp nhận
AC-01: Thanh toán QR
CHO một đơn hàng với số tiền phải trả
KHI thu ngân chọn thanh toán QR
THÌ - Mã QR động được hiển thị
- QR chứa số tiền chính xác
- Xác nhận thanh toán nhận được trong < 5 giây
- Trạng thái đơn hàng tự động cập nhật
- Hóa đơn có thể được inAC-02: Thanh toán Tiền mặt
CHO một đơn hàng với số tiền 85.000 VNĐ
KHI khách hàng thanh toán bằng 100.000 VNĐ
THÌ - Hệ thống hiển thị tiền thừa: 15.000 VNĐ
- Ngăn kéo tiền mặt tự động mở
- Thanh toán được ghi nhận
- Đơn hàng hoàn tất thành côngAC-03: Thanh toán Chia nhỏ
CHO một đơn hàng tổng cộng 100.000 VNĐ
KHI khách hàng thanh toán 60.000 QR + 40.000 tiền mặt
THÌ - Cả hai khoản thanh toán được ghi nhận
- Đơn hàng hiển thị chi tiết thanh toán
- Cả hai giao dịch được ghi lại
- Đơn hàng hoàn tất khi tổng = 100.000AC-04: Hết thời gian chờ Thanh toán
CHO một khoản thanh toán QR đang chờ xử lý
KHI khách hàng không thanh toán trong vòng 5 phút
THÌ - Mã QR hết hạn
- Trạng thái thanh toán hiển thị "Đã hết hạn"
- Có tùy chọn tạo lại QR
- Đơn hàng vẫn ở trạng thái đang chờ xử lýAC-05: Xử lý Hoàn tiền
CHO một đơn hàng đã hoàn tất với thanh toán QR
KHI quản lý khởi tạo hoàn tiền đầy đủ
THÌ - Yêu cầu hoàn tiền được gửi đến VNPAY
- Hoàn tiền được xác nhận
- Đơn hàng gốc được đánh dấu là đã hoàn tiền
- Giao dịch hoàn tiền được ghi lạiPhụ thuộc
Thanh toán
├── Yêu cầu: Đơn hàng, Thiết bị
├── Yêu cầu bởi: Giao dịch, Báo cáo
└── Tích hợp: Cổng VNPAY, Mạng lưới Ngân hàng| Module | Mối quan hệ |
|---|---|
| Đơn hàng | Thanh toán cho đơn hàng |
| Thiết bị | Thiết bị POS, ngăn kéo tiền mặt |
| Giao dịch | Bản ghi giao dịch |
| Báo cáo | Báo cáo thanh toán |
Điểm Tích hợp
Cổng Thanh toán VNPAY
┌─────────────────────────────────────────────────────────────────┐
│ TÍCH HỢP VNPAY │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Dịch vụ: │
│ ├── Tạo Mã QR (API VNPay QR) │
│ ├── Webhook Trạng thái Thanh toán │
│ ├── Xử lý Thẻ (Thiết bị POS) │
│ ├── Xử lý Hoàn tiền │
│ └── SoftPOS (Giai đoạn 3) │
│ │
│ Cấu hình: │
│ ├── ID Merchant │
│ ├── ID Terminal │
│ ├── Khóa Bí mật │
│ ├── URL Webhook │
│ └── Môi trường (Sandbox/Production) │
│ │
│ Bảo mật: │
│ ├── Xác minh chữ ký HMAC │
│ ├── Mã hóa TLS 1.2+ │
│ └── Danh sách IP được phép cho webhooks │
│ │
└─────────────────────────────────────────────────────────────────┘Tích hợp Ngăn kéo Tiền mặt
┌─────────────────────────────────────────────────────────────────┐
│ KIỂM SOÁT NGĂN KÉO TIỀN MẶT │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Phương pháp kích hoạt: │
│ ├── Kích hoạt máy in (qua máy in hóa đơn) │
│ ├── Điều khiển trực tiếp qua USB │
│ └── Lệnh mạng │
│ │
│ Các sự kiện: │
│ ├── Mở khi thanh toán tiền mặt │
│ ├── Mở khi có tiền thừa │
│ ├── Mở để đổi tiền/đóng ca │
│ └── Mở thủ công (yêu cầu quyền) │
│ │
└─────────────────────────────────────────────────────────────────┘Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình sẽ được thêm sau khi triển khai giao diện người dùng.
Các Module Liên quan
- Đơn hàng - Quản lý đơn hàng
- Thiết bị - Tích hợp phần cứng
- Giao dịch - Bản ghi giao dịch
- Thuế & Hóa đơn - Biên lai thanh toán
- Báo cáo - Báo cáo thanh toán