Bán sản phẩm số qua chatbot AI: Không giữ tiền, chỉ nhận thanh toán
Tình huống thực tế: Sợ hãi kiểm soát tiền tệ
Bạn vừa xây dựng một chatbot AI để bán khoá học lập trình trực tuyến. Mỗi ngày hơn 100 khách hàng tương tác, một số quyết định mua. Nhưng bạn đứng trước một cuộc tranh cãi nội tâm:
- Nếu dùng payment gateway truyền thống (Stripe, PayPal), họ giữ tiền tạm, phí cao, quy trình phức tạp.
- Nếu để chatbot tự xử lý tiền mặt hoặc crypto, bạn vừa tạo ra một đối tượng quản lý tài chính mà chatbot không nên có quyền hạn.
- Nếu hỏi khách "vào Ngân hàng A chuyển khoản cho tôi", bạn vừa mất khoảng 30% conversion rate vì rác rối.
Hai tuần trước, một startup fintech Việt Nam gặp vấn đề tương tự: bot AI bán vé sự kiện kiếm được ~200 triệu/tháng, nhưng không có cách nào để AI agent tự thực hiện thanh toán an toàn. Đó chính là lúc AgentPay VN ra đời.
AgentPay VN là gì?
AgentPay VN là một SDK Python (MIT license) + MCP server cho phép AI agents tạo yêu cầu thanh toán VietQR mà KHÔNG bao giờ giữ tiền. Dòng tiền đi thẳng từ khách hàng → tài khoản ngân hàng của merchant → bot xác nhận settlement qua bank feed.
Khác biệt cốt lõi:
| Giải pháp | Tiền đi đâu? | Phí | Khó độ | Bảo mật |
|---|---|---|---|---|
| Gateway truyền thống | Qua nền tảng → bạn | 2-3% | Dễ | Phụ thuộc họ |
| AgentPay VN | Thẳng vào ngân hàng bạn | 0% | Siêu đơn giản | Bạn kiểm soát |
| Crypto/Direct | Tự xử lý | 0% | Rất khó | Bạn chịu risk |
| Chuyển khoản thủ công | Ngân hàng | 0% | Rất phiền | Khó quy mô |
Quy trình 3 bước: Dễ như ăn bánh
AgentPay VN hoạt động theo một flow siêu đơn giản:
1. Bot tạo yêu cầu thanh toán → create_payment_request()
2. Bot gửi link QR checkout cho khách → khách scan & thanh toán
3. Bot đợi xác nhận settlement → tự động kích hoạt trao sản phẩm
Không giữ tiền, không ủy quyền, không lo lắng.
Cài đặt và thiết lập ban đầu
Bước 1: Cài đặt SDK Python
pip install agentpay-vn
Xong, không cần config gì phức tạp.
Bước 2: Cấu hình MCP server cho Claude
Nếu bạn dùng Claude hoặc OpenAI qua MCP (Model Context Protocol), thêm vào .claude_config hoặc tệp cấu hình AI của bạn:
{
"mcpServers": {
"agentpay-mcp": {
"command": "python",
"args": ["-m", "agentpay_mcp.server"],
"env": {
"AGENTPAY_MERCHANT_ID": "your_merchant_id",
"AGENTPAY_BANK_ACCOUNT": "your_vietqr_account",
"AGENTPAY_API_KEY": "your_api_key"
}
}
}
}
Các biến môi trường này bạn lấy từ https://agentpay.servicesai.vn/v1/docs sau khi đăng ký merchant.
Bước 3: Test kết nối
from agentpay_vn import AgentPayClient
client = AgentPayClient(merchant_id="demo_123", api_key="your_key")
response = client.health_check()
print(f"Kết nối thành công: {response['status']}")
Nếu in ra Kết nối thành công: healthy, bạn đã sẵn sàng bán hàng.
Mã ví dụ thực tế: Bot bán khoá học
Giả sử bạn có một chatbot bán khoá học "Lập trình Python từ 0" giá 299.000 VNĐ. Dưới đây là flow hoàn chỉnh:
import asyncio
from agentpay_vn import AgentPayClient, PaymentRequest
# Khởi tạo client
client = AgentPayClient(
merchant_id="shop_laptrinhpython",
api_key="sk_live_abc123xyz"
)
async def handle_student_purchase(student_name: str, student_email: str):
"""
Xử lý yêu cầu mua khoá học từ chatbot
"""
# Bước 1: Tạo yêu cầu thanh toán
payment_req = PaymentRequest(
merchant_id="shop_laptrinhpython",
amount_vnd=299_000,
description=f"Khoá Python Cơ Bản - {student_name}",
customer_name=student_name,
customer_email=student_email,
metadata={
"course_id": "python_101",
"course_name": "Lập trình Python từ 0",
"access_duration_days": 365
}
)
# Tạo payment request trên server
payment = await client.create_payment_request(payment_req)
print(f"✓ Yêu cầu thanh toán tạo thành công")
print(f" Payment ID: {payment['payment_id']}")
print(f" QR Code: {payment['qr_code_url']}")
# Bước 2: Gửi checkout link cho khách
checkout_message = f"""
Bạn đã chọn khoá học "Lập trình Python từ 0" (299.000 VNĐ).
👉 Quét mã QR để thanh toán:
{payment['qr_code_url']}
Hoặc copy link: {payment['checkout_url']}
Sau khi thanh toán, bạn sẽ nhận được truy cập ngay lập tức!
"""
# Bot gửi pesan này cho user (SMS, Telegram, email, tùy)
# send_to_user(student_email, checkout_message)
# Bước 3: Đợi settlement xác nhận
print(f"\n⏳ Chờ khách thanh toán...")
settlement = await client.await_settlement(
payment_id=payment['payment_id'],
timeout_seconds=600 # 10 phút
)
if settlement['status'] == 'settled':
print(f"✅ THANH TOÁN THÀNH CÔNG!")
print(f" Tiền vào tài khoản: {settlement['amount_received']} VNĐ")
print(f" Thời gian: {settlement['settled_at']}")
# Trao sản phẩm cho học sinh
access_token = generate_course_access_token(
student_email=student_email,
course_id="python_101",
expires_days=365
)
send_access_email(
student_email,
access_token,
course_name="Lập trình Python từ 0"
)
return {"success": True, "message": "Trao khoá học thành công!"}
else:
print(f"❌ Thanh toán thất bại hoặc hết hạn")
return {"success": False, "message": "Thanh toán không hoàn thành"}
# Chạy khi khách nói "Mua khoá Python"
asyncio.run(handle_student_purchase(
student_name="Nguyễn Văn A",
student_email="a@example.com"
))
Giải thích từng phần:
- PaymentRequest: Định nghĩa yêu cầu thanh toán (số tiền, mô tả, metadata để tracking).
- create_payment_request(): Gọi API AgentPay để sinh ra QR code + checkout URL.
- qr_code_url & checkout_url: Gửi cho khách (QR để scan, URL cho web).
- await_settlement(): Bot chờ ngân hàng xác nhận tiền vào tài khoản merchant. Khi settled, bot trao sản phẩm.
- metadata: Lưu info khóa học để sau này audit, report, hoặc phục hồi.
Ứng dụng thực tế: 5 kịch bản
1. Bot bán khoá học trực tuyến
- Khách chat: "Tôi muốn mua khoá Python"
- Bot: Tạo request → gửi QR → khách scan thanh toán
- Settlement xác nhận → Bot email link khoá học
- Lợi ích: Không cần staff xác nhận thủ công, quy mô vô hạn.
2. Quán cà phê: Thanh toán trước để giữ chỗ
- Bot Telegram quán cà phê: "Bạn muốn giữ bàn hôm nay lúc 3 chiều?"
- Khách: "Có, đặt 1 bàn cho 2 người"
- Bot: Gửi QR cọc 50k → khách thanh toán → bot ghi chú "Bàn 5, 3h chiều, đã thanh toán"
3. Shop online mini: Thanh toán ghi tên
- ChatGPT plugin hoặc Telegram shop bot
- Khách chọn sản phẩm → tổng tiền → scan QR
- Bot tự động confirm đơn hàng, lên sẵn phiếu giao hàng
4. Sự kiện / vé tham dự
- Sự kiện tech meetup 100 người
- Bot: "Vé tham dự: 99k, scan mã QR để đăng ký"
- Người mua thanh toán → bot gửi vé điện tử (QR code tham dự)
5. Tư vấn + Booking dịch vụ
- Bot doanh nhân tự do: "Bạn muốn book 1h tư vấn kinh doanh? 500k/h"
- Khách: "Đồng ý"
- Bot: Gửi QR → thanh toán → tự động đặt lịch Google Calendar
Nên và Không nên khi dùng AgentPay VN
| ✅ NÊN | ❌ KHÔNG NÊN |
|---|---|
| Tạo payment request mỗi lần khách mua | Giữ private key trong code hoặc git |
Dùng await_settlement() để chờ xác nhận |
Tăng timeout quá cao (>1h) gây lag |
| Lưu payment_id để tracking & audit | Xóa metadata sau khi trao sản phẩm |
| Test ở chế độ sandbox trước production | Deploy mà chưa test flow end-to-end |
| Gửi email/SMS xác nhận ngay khi settled | Trao sản phẩm trước khi settlement hoàn toàn |
| Retry settlement check nếu timeout | Vội vàng, bỏ qua settlement confirmation |
Câu hỏi thường gặp
Q1: Nếu khách thanh toán nhưng mạng mất, bot không nhận được settlement thông báo, thì sao?
A: AgentPay VN kết nối trực tiếp với bank feed của bạn (ví dụ API Vietcombank, BIDV). Nếu settlement thực sự xảy ra ở ngân hàng, bot sẽ retry kiểm tra mỗi vài giây. Nếu khách không thấy sản phẩm, họ có thể forward email xác nhận từ ngân hàng, bạn kiểm tra payment_id trong AgentPay dashboard và trao lại.
Q2: Nếu khách quét QR nhưng chưa thanh toán, link QR có hết hạn không?
A: Mặc định link QR có hiệu lực 10 phút (thông qua timeout_seconds=600). Nếu khách quá 10 phút chưa thanh toán, yêu cầu hết hạn. Khách phải chat lại, bot tạo yêu cầu mới.
Q3: Có được dùng AgentPay VN để bot tự rút tiền ra ngân hàng khác không?
A: Không, AgentPay VN chỉ nhận tiền vào tài khoản merchant của bạn. Rút tiền là chuyện riêng của bạn với ngân hàng. Điều này vừa an toàn (bot không cần quyền rút), vừa tuân thủ (tài chính do bạn kiểm soát).
Q4: AgentPay VN có hỗ trợ payment plan (thanh toán theo kỳ) không?
A: Phiên bản hiện tại tập trung vào one-time payments. Tuy nhiên bạn có thể lập trình: sau mỗi tháng, bot tự tạo payment request mới và gửi yêu cầu thanh toán định kỳ.
Các tính năng nâng cao
Webhook & Event Listener
Ngoài await_settlement() chờ đồng bộ, bạn có thể dùng webhook để bot nhận thông báo bất đồng bộ:
from agentpay_vn import WebhookListener
listener = WebhookListener(port=8000)
@listener.on("payment.settled")
async def handle_settlement(event):
payment_id = event['payment_id']
amount = event['amount_vnd']
print(f"Payment {payment_id} settled: {amount} VNĐ")
# Trao sản phẩm, gửi email, update database...
listener.start()
Refund & Cancellation
Nếu khách muốn hoàn tiền (ví dụ không hài lòng khoá học):
refund = await client.refund_payment(
payment_id="pay_abc123",
reason="Khách hàng yêu cầu hoàn tiền"
)
print(f"Refund status: {refund['status']}")
# Tiền sẽ hoàn lại tài khoản khách trong 1-3 ngày làm việc
So sánh tổng quan: Giải pháp thanh toán cho AI agents
| Tiêu chí | AgentPay VN | Stripe | PayPal | Direct Bank |
|---|---|---|---|---|
| Bảo mật | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Phí | 0% | 3.6% | 3.5% | 0% |
| Bot giữ tiền? | KHÔNG | KHÔNG | KHÔNG | CÓ (rủi ro) |
| Settlement tự động | CÓ | CÓ | Có | KHÔNG |
| Dùng VietQR | CÓ | KHÔNG | KHÔNG | CÓ |
| Quy mô từ 0 | CÓ | CÓ | CÓ | KHÔNG |
| Dễ tích hợp AI | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
Tóm tắt nhanh
✅ AgentPay VN là gì? SDK Python (MIT) + MCP server cho AI agents tạo payment request VietQR mà không giữ tiền.
✅ 3 bước chính: create_payment_request() → gửi QR → await_settlement()
✅ Cài đặt: pip install agentpay-vn
✅ Tiền đi đâu? Thẳng vào tài khoản ngân hàng merchant, bot chỉ là trung gian xác nhận.
✅ Ai nên dùng? Bot bán sản phẩm số (khoá học, ebook, plugin), dịch vụ booking, quản lý sự kiện, shop online mini.
✅ Ưu điểm: Phí 0%, settlement tự động, bảo mật cao, quy mô không giới hạn, tuân thủ pháp luật.
✅ Khó khăn? Cần account VietQR, bank feed, setup MCP nếu dùng Claude.
Bước tiếp theo
- Truy cập docs chính thức: https://agentpay.servicesai.vn/v1/docs
- Clone GitHub repository: https://github.com/phuocdu/agentpay-vn
- Cài đặt:
pip install agentpay-vn - Chạy ví dụ demo:
python examples/simple_checkout.py - Tích hợp vào bot của bạn: Copy pattern ở phần "Mã ví dụ" ở trên
- Test ở sandbox: Dùng account test trước khi go live
- Deploy & thu tiền: Bạn đã sẵn sàng bán hàng tự động!
Nhớ rằng: AI agents không cần quyền giữ tiền để bán hàng tốt. AgentPay VN chứng minh điều đó. Thanh toán đơn giản, bảo mật cao, dòng tiền rõ ràng — đó là cách bán hàng của tương lai.
Chúc bạn thành công! 🚀