Module · WS đào tạo · 07/7/2026

payment — Thanh toán online v2

Cổng thanh toán online cho học phí đợt và phiên thuê xe chip — làm sau khi có app học viên. Giao dịch cổng đổ về phiếu thu tuition và đối soát cổng.

⚠️ v2 — adapter theo cổng (VNPay/MoMo/chuyển khoản QR…).
1

Feature / BO / Action

FeatureBO chínhAction
transactionGiao dịch cổngviewexportrefund
gateway-reconcileĐối soát cổngviewreconcile
2

Dữ liệu chính

BOTrường chính
Giao dịchMã GD cổng · loại (học phí đợt / phiên thuê) · tham chiếu (công nợ đợt / phiên booking) · số tiền · trạng thái (khởi tạo/thành công/thất bại/hoàn) · thời gian
Đối soát cổngKỳ × Σ giao dịch thành công ↔ file đối soát cổng ↔ phiếu thu đã sinh — chênh lệch + xử lý
3

Quy tắc & liên kết

Quy tắc nghiệp vụ

  • GD thành công → tự sinh phiếu thu tuition (hoặc gạch nợ phiên booking) — một nguồn sự thật về tiền vẫn là tuition/finance
  • Hoàn tiền (refund) đi kèm phiếu hoàn bên tuition
  • Adapter theo cổng — thêm cổng mới không sửa lõi
  • Webhook idempotent (GD trùng không ghi đôi)

Liên kết chéo

  • tuition — sinh phiếu thu/gạch nợ
  • booking — thu phiên thuê
  • portal — thanh toán trong app
  • finance — đối soát doanh thu

⚠ Câu hỏi mở

  • Chọn cổng nào trước (phí, độ phủ)?
  • Chính sách hoàn khi hủy phiên thuê?
Quyền

Ma trận phân quyền — ốp vào manifest & seed role

Khối permissions[] dán vào manifest.json; bảng dưới là gán quyền theo vai trò (seed rt_role). Permission key đầy đủ: payment.main.<feature>.<action>.

▸ permissions[] — manifest.json

[ { "group": "main", "feature": "transaction", "label": "Giao dịch cổng", "actions": [ "view", "export", "refund" ] }, { "group": "main", "feature": "gateway-reconcile", "label": "Đối soát cổng", "actions": [ "view", "reconcile" ] } ]

⚠️ Action đặc thù (reconcile, refund) cần bổ sung vào validator manifest — xem plan data-scope P1.

▸ Ma trận vai trò × feature

FeatureQTHTGIAM_DOCKE_TOAN
transactionRRW
gateway-reconcileRRW

R xem · W tạo/sửa · A duyệt · không có quyền · ¹ dữ liệu phân công · ² của chính mình · ³ theo trạng thái hồ sơ. Vai trò không liệt kê = không có quyền.

Đặc thù: +refund, +reconcile (KE_TOAN)