Bán sản phẩm số qua chatbot AI mà không giữ tiền
Nỗi đau khi bán hàng số qua bot AI
Bạn đang chạy một chatbot bán khoá học online, hay một cửa hàng bán ảnh minh hoạ cho designer. Bot của bạn hoạt động tốt, tự động trả lời, gợi ý sản phẩm chính xác — nhưng khi khách muốn thanh toán, bạn phải dừng lại. Tại sao?
Vì hiện nay, hầu hết solution thanh toán AI yêu cầu bạn giữ tiền hộ trước. Khách chuyển tiền vào tài khoản trung gian của nền tảng, rồi nền tảng "chuyển lại" cho bạn sau khi khấu trừ phí. Điều này tạo ra:
- Rủi ro pháp lý: Bạn trở thành trung gian tài chính (cần licence)
- Độ trễ: Tiền mất 2-3 ngày mới vào tài khoản thực
- Chi phí: Phí dịch vụ 3-5% + phí chuyển tiền
- Căng thẳng: Quản lý ngoài tài khoản chính, phức tạp kế toán
AgentPay VN giải quyết điều này hoàn toàn. Tiền đi thẳng vào tài khoản ngân hàng của bạn, không bao giờ nằm ở nơi khác.
AgentPay VN là gì? Cơ chế hoạt động
AgentPay VN là một Python SDK mã nguồn mở (MIT) cho phép AI agent (chatbot, automation) tạo yêu cầu thanh toán VietQR mà không bao giờ giữ tiền.
Cơ chế: 1. Bot tạo một yêu cầu thanh toán → trả về QR code 2. QR code trỏ trực tiếp tới tài khoản ngân hàng của merchant (bạn) 3. Khách quét mã, chuyển tiền vào tài khoản bạn 4. Bank feed (tích hợp từ ngân hàng) xác nhận tiền vào → tự động gửi hàng/mở khoá
Không có trung gian, không có "ví" của platform, không có chờ đợi.
Lợi ích so với các phương án khác
| Tiêu chí | AgentPay VN | Payment Gateway thông thường | Chuyển khoản thủ công |
|---|---|---|---|
| Tiền đi đâu | Ngay vào tài khoản bạn | Giữ ở platform, sau rút ra | Tùy khách |
| Phí | 0% (mã mở, tự host) | 2-5% + phí | 0% |
| Độ trễ | Ngay khi bank confirm | 1-3 ngày | Không xác định |
| Tự động hoá | Có (bank feed + API) | Có | Không |
| Rủi ro pháp lý | Không (không giữ tiền) | Cao (trung gian tài chính) | Không |
| Dễ setup | Rất dễ (3 dòng code) | Phức tạp (KYC, contract) | Rất dễ nhưng không tin cậy |
Cài đặt AgentPay VN — 2 phút xong
Bước 1: Cài đặt SDK
Mở terminal, chạy:
pip install agentpay-vn
Xong! SDK sẽ tải Python package với các hàm cần thiết.
Bước 2: Cấu hình MCP Server (tuỳ chọn, nhưng nên)
Nếu bạn dùng Claude (hoặc LLM khác support MCP), cài MCP server:
pip install agentpay-mcp
Tạo file claude_config.json trong thư mục config của Claude:
{
"mcpServers": {
"agentpay": {
"command": "python",
"args": ["-m", "agentpay_mcp"],
"env": {
"AGENTPAY_MERCHANT_ID": "your_merchant_id",
"AGENTPAY_BANK_ACCOUNT": "your_bank_account"
}
}
}
}
Với cấu hình này, Claude có thể gọi AgentPay trực tiếp.
Code thực tế: Tạo yêu cầu thanh toán
Với AgentPay VN, flow thanh toán chỉ có 3 bước:
from agentpay_vn import PaymentRequest, await_settlement
# Bước 1: Tạo yêu cầu thanh toán
payment = PaymentRequest(
merchant_id="your_merchant_id",
bank_account="0123456789", # Tài khoản ngân hàng thực của bạn
bank_code="MB", # Mã ngân hàng (MB = MBBank)
amount=299000, # Số tiền (VND)
description="Khoá học Python nâng cao",
order_id="order_20250120_001", # ID đơn hàng của bạn
customer_phone="0912345678" # (tuỳ chọn)
)
# Bước 2: Tạo URL checkout hoặc QR
checkout_url = payment.create_checkout_url()
qr_code = payment.get_qr_image() # Trả về QR PNG
print(f"Gửi cho khách: {checkout_url}")
print(f"Hoặc hiện QR: {qr_code}")
# Bước 3: Chờ xác nhận từ bank feed
result = await_settlement(
order_id="order_20250120_001",
timeout_seconds=600, # Chờ tối đa 10 phút
poll_interval=5 # Kiểm tra mỗi 5 giây
)
if result["status"] == "settled":
print(f"✅ Tiền đã vào: {result['amount']} VND")
# Tự động gửi khoá học, kích hoạt tài khoản, v.v.
send_course_access(customer_phone=payment.customer_phone)
else:
print(f"❌ Timeout hoặc lỗi: {result['error']}")
Giải thích từng dòng:
- PaymentRequest(): Khởi tạo yêu cầu với thông tin merchant + khách hàng
- merchant_id, bank_account: Thông tin tài khoản thực của bạn (không phải platform)
- amount: Giá tiền sản phẩm (không có phí ẩn)
- create_checkout_url(): Trả về link để khách thanh toán (hoặc embed QR)
- await_settlement(): Lắng nghe bank feed, chờ xác nhận tiền thực tế vào tài khoản
Ví dụ thực tế: Bot bán khoá học
Bạn chạy chatbot (Telegram, Discord, hoặc web) bán khoá học Python. Khi khách nói "Mình muốn mua", bot làm như sau:
from agentpay_vn import PaymentRequest, await_settlement
import asyncio
async def handle_purchase(customer_id: str, course_id: str, course_title: str, price: int):
"""
Xử lý mua hàng trong bot (gọi từ message handler)
"""
# 1. Tạo yêu cầu thanh toán
payment = PaymentRequest(
merchant_id="mybot_merchant",
bank_account="0987654321",
bank_code="VCCB",
amount=price,
description=f"Khoá {course_title}",
order_id=f"course_{customer_id}_{course_id}",
customer_phone=customer_id # Dùng ID khách làm identifier
)
# 2. Gửi QR/URL cho khách
qr_image = payment.get_qr_image()
bot.send_message(
chat_id=customer_id,
text=f"🎓 Khoá: {course_title}\n💰 Giá: {price:,} VND\n\n"
f"Quét mã dưới đây để thanh toán:",
photo=qr_image
)
# 3. Chờ xác nhận (non-blocking với asyncio)
result = await asyncio.to_thread(
await_settlement,
order_id=payment.order_id,
timeout_seconds=300
)
# 4. Tự động cấp quyền
if result["status"] == "settled":
bot.send_message(
chat_id=customer_id,
text=f"✅ Thanh toán thành công!\n\n"
f"📚 Khoá học của bạn:\n"
f"🔗 {get_course_link(course_id)}\n"
f"🔑 Mật khẩu: {generate_password()}"
)
log_purchase(customer_id, course_id, price) # Ghi sổ
else:
bot.send_message(
chat_id=customer_id,
text="⏱️ Timeout hoặc thanh toán bị hủy. Vui lòng thử lại."
)
Kịch bản thực tế: - Khách: "Mua khoá Python Pro" - Bot: Gửi QR (kèm giá 499k) - Khách: Quét QR bằng app ngân hàng, chuyển 499k - Tiền vào account bạn ngay lập tức ✅ - Bot tự động nhận signal từ bank feed - Bot gửi link khoá + password cho khách ✅ - Khách học ngay lập tức ✅
Toàn bộ quá trình < 30 giây, không có trung gian.
Integrtion với LLM Agent (Claude, GPT, v.v.)
Nếu dùng Claude hoặc LLM khác, AgentPay VN cung cấp MCP server để agent tự gọi:
{
"mcpServers": {
"agentpay": {
"command": "python",
"args": ["-m", "agentpay_mcp"],
"env": {
"AGENTPAY_MERCHANT_ID": "my_shop",
"AGENTPAY_BANK_ACCOUNT": "0123456789",
"AGENTPAY_BANK_CODE": "MB"
}
}
}
}
Sau đó, Claude có thể tự động:
- Nghe yêu cầu mua hàng từ khách
- Gọi agentpay.create_payment_request() để tạo QR
- Gửi URL/QR cho khách
- Gọi agentpay.await_settlement() để chờ tiền
- Tự động cấp quyền/gửi hàng
Toàn bộ không cần can thiệp con người!
Những điều nên & không nên làm
✅ Nên làm
- Kiểm tra bank_account đúng trước khi deploy → tiền vào tài khoản sai là rắc rối
- Set timeout hợp lý (300-600 giây) → không quá ngắn (khách chậm), không quá dài (user experience tệ)
- Dùng order_id duy nhất → tránh duplicate settlement detection
- Log tất cả transaction → để kiểm toán, ghi sổ kế toán
- Test với amount nhỏ (1000 VND) trước khi bán thật
❌ Không nên làm
- Để merchant_id công khai → nên dùng biến môi trường (.env)
- Gửi tiền hộ khách → AgentPay không giữ tiền, không cách nào refund
- Chờ settlement quá lâu → khách mất kiên nhẫn, nên có UX feedback ("Đang xác nhận...")
- Không có phương án xử lý timeout → lập lịch retry hoặc gửi thông báo cho admin
- Sử dụng bank_code sai → VietQR yêu cầu mã đúng (MB, VCCB, TCB, v.v.)
FAQ — Câu hỏi thường gặp
Q1: Tiền mất bao lâu mới vào tài khoản?
A: Ngay sau khi khách chuyển từ app ngân hàng của họ. VietQR là hệ thống real-time, tiền vào trong < 1 phút. AgentPay chỉ chờ bank feed xác nhận (thường 5-10 giây).
Q2: Nếu khách chuyển sai số tiền thì sao?
A: AgentPay so sánh amount dự kiến với tiền thực tế. Nếu không khớp, await_settlement() sẽ return lỗi. Bạn có thể thông báo cho khách: "Bạn chuyển 299k nhưng khoá này 399k, vui lòng chuyển thêm". Tiền chuyển sai không bị "giữ" ở đâu, nó nằm trong tài khoản bạn rồi — bạn phải refund thủ công.
Q3: Có cần API key, auth phức tạp không?
A: Không. AgentPay chỉ cần merchant_id, bank_account, bank_code — tất cả đã biết của bạn. Không cần "secret key" hay "access token" từ platform khác. Máy chủ của bạn chạy SDK → tạo QR → nhận bank feed = hoàn toàn trong kiểm soát.
Q4: Có giữ fee, giữ phí không?
A: Không. AgentPay VN là open-source (MIT), mã mở, không bao giờ giữ tiền. Nếu tự host bank feed (hoặc dùng API ngân hàng trực tiếp), 100% tiền là của bạn. Nếu dùng dịch vụ bank feed của bên thứ ba, họ có thể tính phí, nhưng tiền vẫn là của bạn.
Q5: Hỗ trợ ngân hàng nào?
A: VietQR hỗ trợ hầu hết ngân hàng lớn: MBBank (MB), VietcomBank (VCCB), Techcombank (TCB), ACB, STB, HDB, v.v. Xem danh sách đầy đủ tại AgentPay docs.
Cách thiết lập Bank Feed (tích hợp xác nhận tiền)
AgentPay cần "biết" khi tiền vào tài khoản. Có 2 cách:
Cách 1: Dùng API Ngân hàng (nếu ngân hàng hỗ trợ)
Most ngân hàng VN hiện hỗ trợ API query balance/transaction: - MBBank: API Connect - Techcombank: TechAPI - VietcomBank: API Portal
Bạn cấu hình AgentPay kết nối, nó sẽ poll balance/transaction log định kỳ.
Cách 2: Webhook từ bên thứ ba
Sử dụng dịch vụ bank feed (ví dụ mBank WebService, DaoPayment, v.v.) → service này webhook tiền vào → AgentPay nhận và trigger await_settlement() callback.
Chi tiết setup xem tại: https://agentpay.servicesai.vn/v1/docs
Tóm tắt nhanh
- 🚀 AgentPay VN = Python SDK mã mở để AI bot bán hàng + nhận VietQR, tiền trực tiếp vào tài khoản ngân hàng thực
- 💰 Không giữ tiền = Không rủi ro pháp lý, không phí ẩn, không độ trễ
- ⚡ 3 bước:
create_payment_request()→send_checkout_url()→await_settlement() - 🔐 Bảo mật = Không API key bị leak, toàn bộ kiểm soát, open-source audit được
- 🤖 Tự động hoá = MCP server cho Claude/LLM, bot tự xử lý mua bán từ đầu đến cuối
- 💻 Cài dễ:
pip install agentpay-vn+ 5 phút config
Bước tiếp theo: Bắt đầu ngay hôm nay
-
Cài SDK:
bash pip install agentpay-vn -
Xem docs chi tiết & ví dụ: 👉 https://agentpay.servicesai.vn/v1/docs
-
Fork/star GitHub: 👉 https://github.com/phuocdu/agentpay-vn
-
Để feedback, báo lỗi: 👉 Issues trên GitHub hoặc discussions
Tức thì bạn đã có hệ thống bán hàng số tự động, không giữ tiền, không rủi ro! Bot của bạn từ giờ có thể bán khoá học, ebook, phần mềm, dịch vụ subscriptions mà không cần lo về tiền bạc — nó vào tài khoản thực bạn ngay lập tức.
Chúc bạn bán hàng vui vẻ! 🎉