Thanh toán hóa đơn (Checkout)
Khi shop bạn nhận được hóa đơn gói TrolyPage (subscription), trang Checkout (/app/checkout/{invoiceCode}) là nơi thanh toán. Đây là Luồng B trong tổng quan SePay — dùng cùng SePay nhưng khác mục đích với Luồng A (khách trả tiền cho shop).
Vào trang Checkout thế nào
Phần tiêu đề “Vào trang Checkout thế nào”- Mở Tài khoản & Thanh toán (
/app/billing). - Xem hóa đơn chưa thanh toán trong list.
- Bấm Thanh toán ngay.
- Redirect →
/app/checkout/{invoiceCode}.
Hoặc click Xem thông tin thanh toán → ở bất kỳ invoice nào.
Bố cục trang Checkout
Phần tiêu đề “Bố cục trang Checkout”Trang chia 2 bước hiển thị tuần tự:
Bước 1: Phương thức
Phần tiêu đề “Bước 1: Phương thức”Chọn cổng thanh toán:
| Phương thức | Yêu cầu |
|---|---|
| Chuyển khoản | SePay đã cấu hình → QR VietQR + thông tin CK |
| SePay | (đổi tên từ Chuyển khoản nếu có nhiều config) |
| Stripe | Thẻ Visa/Mastercard (USD) |
| PayPal | Tài khoản PayPal (USD) |
| MoMo | QR MoMo động |
| VNPay | QR VNPay động |
Mặc định = Chuyển khoản nếu SePay/Bank transfer đã cấu hình.
Bước 2: Thanh toán
Phần tiêu đề “Bước 2: Thanh toán”Tuỳ phương thức, hiển thị khác nhau. Với Chuyển khoản (SePay):
- Mã QR VietQR — quét bằng app ngân hàng bất kỳ.
- Thông tin chuyển khoản (copy từng dòng):
| Dòng | Giá trị |
|---|---|
| Ngân hàng | (theo STK shop cấu hình) |
| Số tài khoản | STK |
| Chủ tài khoản | Tên shop |
| Nội dung CK | Mã hóa đơn (vd PLAB12CD34) — quan trọng! |
| Số tiền | X VNĐ |
Nhập chính xác nội dung CK
Banner “Nhập chính xác nội dung chuyển khoản để hệ thống tự động xác nhận.” — nếu nhập sai mã invoice → webhook đến nhưng không match → bạn phải liên hệ support đối soát tay.
- Countdown: “Hết hạn sau: XX:YY” — invoice có hạn, quá hạn phải tạo lại.
Sau khi chuyển khoản
Phần tiêu đề “Sau khi chuyển khoản”Trang checkout tự poll mỗi 5 giây (không cần F5):
- Bạn chuyển khoản xong (đúng nội dung + đúng số tiền).
- SePay phát hiện giao dịch → gọi
POST /webhook/billing/sepay. - TrolyPage match mã invoice trong nội dung →
BillingService::confirmPayment(). - Invoice chuyển trạng thái
paid. - Checkout poll → phát hiện
status: 'paid'. - Trang hiển thị “Thanh toán thành công!” + confetti + nút in biên lai.
Tự động nạp ví (Auto-deposit)
Phần tiêu đề “Tự động nạp ví (Auto-deposit)”Nếu bạn CK nhưng không khớp mã invoice mà khớp Virtual Account / memo của shop bạn → SePay tự nạp số tiền đó vào Ví nội bộ TrolyPage thay vì match invoice.
| Tình huống | Xảy ra gì |
|---|---|
| CK đúng nội dung invoice | Invoice paid ✓ |
| CK khớp Virtual Account | Nạp ví (số dư ví tăng) |
| CK không khớp gì | Unmatched → admin TrolyPage xử lý tay |
Xử lý khi không tự xác nhận
Phần tiêu đề “Xử lý khi không tự xác nhận”| Triệu chứng | Nguyên nhân | Fix |
|---|---|---|
| CK xong > 1 phút, trang vẫn “Đang chờ” | Nội dung CK sai | Liên hệ support + gửi billet CK |
| Hiện “Hết hạn” | Quá hạn invoice | Vào Billing tạo invoice mới |
| “Không có mã QR” | SePay chưa cấu hình | Kết nối SePay hoặc dùng VietQR manual |
| Trùng giao dịch | CK 2 lần | Sẽ auto-refund vào ví nội bộ |
Liên hệ support khi unmatched
Phần tiêu đề “Liên hệ support khi unmatched”Gửi cho hotro@trolypage.com:
- Mã hóa đơn (
PL...). - Billet CK (screenshot app ngân hàng).
- Thời gian CK.
- STK nguồn.
Support sẽ đối soát tay + cập nhật trạng thái trong 1-2 giờ làm việc.
Lịch sử giao dịch
Phần tiêu đề “Lịch sử giao dịch”Xem toàn bộ giao dịch đã thanh toán:
/app/billing/transactions— list giao dịch của shop bạn.- Hoặc trong Tài khoản & Thanh toán → tab/số Giao dịch.
Mỗi giao dịch có: mã, ngày, số tiền, phương thức, invoice liên quan, trạng thái.
Bước tiếp theo
Phần tiêu đề “Bước tiếp theo”- Tổng quan SePay — 2 luồng thanh toán.
- Kết nối SePay how-to — OAuth wizard.
- Tài khoản & Thanh toán — quản lý gói + invoice.
- Ví nội bộ — auto-deposit vào đây khi sai nội dung.
