Bán sản phẩm số qua AI chatbot mà không giữ tiền
Tình huống: Bạn muốn bán khoá học qua bot AI nhưng sợ giữ tiền
Hôm nay, bạn vừa xây xong một chatbot AI chạy trên Claude hoặc GPT để tư vấn và bán khoá học trực tuyến. Bot thông minh, khách hàng thích, nhưng có một vấn đề: làm sao nhận tiền mà không phải tự quản lý tài khoản trung gian? Nếu dùng Stripe, Paypal hay các cổng thanh toán Tây, phí cao và khách Việt mất thời gian. Nếu tự xây hệ thống, rủi ro bảo mật và pháp lý quá lớn.
Đó là lúc AgentPay VN ra đời—một giải pháp open-source MIT cho phép AI agent của bạn tạo mã QR VietQR trỏ thẳng vào tài khoản ngân hàng của bạn, mà không một đồng nào chạm vào máy chủ của AgentPay. Thanh toán xác nhận qua feed ngân hàng, an toàn 100%.
Vấn đề cốt lõi: Tại sao thanh toán AI lại khó?
Khi bạn muốn chatbot xử lý giao dịch, bạn phải chọn:
-
Cổng thanh toán quốc tế (Stripe, PayPal): Phí 2–3%, khách phải verify thẻ quốc tế, chậm, và bạn phải tuân thủ PCI-DSS (rắc rối).
-
Thanh toán truyền thống (Momo, ZaloPay): Yêu cầu redirect khách rời khỏi bot, trải nghiệm gãy.
-
Tự xây hệ thống: Phải lưu trữ tiền, xử lý reconciliation, gánh trách nhiệm pháp lý và bảo mật—quá nặng cho một bot nhỏ.
AgentPay VN giải quyết cả ba vấn đề bằng cách không bao giờ giữ tiền. Tiền từ QR VietQR chảy thẳng vào ngân hàng của bạn; AgentPay chỉ là cầu nối giữa bot AI và API ngân hàng.
Cách AgentPay VN hoạt động: 3 bước đơn giản
Quy trình thanh toán chỉ gồm 3 tương tác:
Bước 1: create_payment_request – Bot gửi yêu cầu thanh toán (số tiền, mô tả, hết hạn).
Bước 2: send checkout_url – Bot tạo mã QR VietQR và gửi link checkout cho khách.
Bước 3: await_settlement – Bot chờ ngân hàng của bạn xác nhận tiền đã vào, rồi phát hành khoá học.
Toàn bộ không có máy chủ trung gian, không có escrow, không có delay. Đó là điểm khác biệt.
Cài đặt và thiết lập đơn giản
Bước 1: Cài SDK Python
pip install agentpay-vn
Có thể lấy từ PyPI hoặc clone từ GitHub: https://github.com/phuocdu/agentpay-vn
Bước 2: Cấu hình MCP Server cho Claude
Nếu bạn dùng Claude (qua Claude Desktop hay API), thêm AgentPay MCP server vào file claude_desktop_config.json:
{
"mcpServers": {
"agentpay": {
"command": "uv",
"args": [
"--python",
"3.11",
"-m",
"agentpay_mcp"
],
"env": {
"AGENTPAY_MERCHANT_ID": "your_merchant_id",
"AGENTPAY_BANK_ACCOUNT": "your_account_number",
"AGENTPAY_BANK_CODE": "VIETCOMBANK"
}
}
}
}
Thay thế AGENTPAY_MERCHANT_ID bằng ID của bạn, và AGENTPAY_BANK_ACCOUNT với số tài khoản nhận tiền. Các giá trị này lưu local, không gửi lên cloud.
Code ví dụ: Tạo yêu cầu thanh toán
Dưới đây là cách một bot AI tạo yêu cầu thanh toán khi khách muốn mua:
from agentpay_vn import create_payment_request, await_settlement
import json
from datetime import datetime, timedelta
# Khách hàng muốn mua khoá học "Python nâng cao" giá 299.000đ
customer_email = "khach@example.com"
customer_name = "Nguyễn Văn A"
amount_vnd = 299000
course_id = "python-advanced-2025"
# Tạo yêu cầu thanh toán
payment_req = create_payment_request(
amount=amount_vnd,
description=f"Khoá học Python nâng cao cho {customer_name}",
reference_id=f"course_{course_id}_{datetime.now().timestamp()}",
customer_email=customer_email,
customer_name=customer_name,
expires_in=3600 # Hết hạn sau 1 giờ
)
print(f"✅ Yêu cầu thanh toán tạo thành công!")
print(f"Mã QR VietQR: {payment_req['qr_code_url']}")
print(f"Link checkout: {payment_req['checkout_url']}")
print(f"ID thanh toán: {payment_req['payment_id']}")
# Lưu thông tin này vào database để tracking
payment_data = {
"payment_id": payment_req["payment_id"],
"customer_email": customer_email,
"course_id": course_id,
"amount": amount_vnd,
"created_at": datetime.now().isoformat()
}
Giải thích từng dòng:
- amount: Số tiền tính bằng VND (đồng Việt Nam).
- description: Mô tả thanh toán sẽ hiển thị khi khách scan QR.
- reference_id: ID duy nhất để theo dõi giao dịch, nên kết hợp course_id + timestamp.
- customer_email, customer_name: Thông tin khách để gửi xác nhận sau.
- expires_in: Hết hạn tính bằng giây; 3600 = 1 giờ là đủ.
- checkout_url: Link mà bot gửi cho khách (hoặc embed QR).
Code ví dụ: Chờ và xác nhận thanh toán
Sau khi khách scan QR và thanh toán, bot cần chờ ngân hàng xác nhận rồi phát hành khoá:
import asyncio
from agentpay_vn import await_settlement
async def process_course_delivery(payment_id, customer_email, course_id):
"""
Chờ thanh toán xác nhận, sau đó gửi khoá học cho khách.
"""
try:
# Chờ tối đa 30 phút (1800 giây) cho ngân hàng xác nhận
settlement = await_settlement(
payment_id=payment_id,
timeout=1800
)
if settlement["status"] == "confirmed":
print(f"💰 Thanh toán xác nhận! Số tiền: {settlement['amount']}đ")
print(f"Người gửi: {settlement['sender_name']}")
print(f"Thời gian: {settlement['settled_at']}")
# Phát hành khoá học
course_link = generate_course_access_link(course_id, customer_email)
send_email(
to=customer_email,
subject=f"🎉 Khoá học Python nâng cao - Truy cập ngay",
body=f"Link khoá học của bạn: {course_link}"
)
# Cập nhật database
update_payment_status(payment_id, "delivered")
elif settlement["status"] == "pending":
print(f"⏳ Còn chờ xác nhận...")
# Có thể retry hoặc notify khách
else: # failed, expired, etc
print(f"❌ Thanh toán thất bại: {settlement['reason']}")
notify_customer_payment_failed(customer_email)
except TimeoutError:
print(f"⚠️ Hết thời gian chờ. Khách có thể thanh toán lại.")
send_reminder_email(customer_email, payment_id)
# Gọi async function
asyncio.run(process_course_delivery(
payment_id="pay_xyz123",
customer_email="khach@example.com",
course_id="python-advanced-2025"
))
Giải thích:
- await_settlement(): Hàm async chờ đến khi ngân hàng xác nhận tiền đã vào. Nó poll API feed ngân hàng mỗi vài giây.
- settlement["status"]: Có thể là confirmed, pending, failed, expired.
- Khi confirmed, bạn an toàn để phát hành khoá học—tiền đã chắc chắn trong tài khoản của bạn.
- timeout: Tính bằng giây. 1800 giây = 30 phút là hợp lý cho giao dịch VietQR.
Kịch bản đời thực: Quán cà phê bán combo online
Bạn có một quán cà phê nhỏ và muốn bán combo online qua chatbot Telegram:
- Khách nhắn bot: "Mình muốn mua combo Capuchino + Croissant (120k)"
- Bot tạo yêu cầu thanh toán dùng
create_payment_request. - Bot gửi lại: "Scan QR này để thanh toán" + hình ảnh mã QR.
- Khách scan bằng app ngân hàng (VietinBank, VCCB, Agribank...), không cần rời khỏi Telegram.
- Ngân hàng chuyển 120k vào tài khoản quán → tức thì.
- Bot nhận signal via
await_settlement→ phát hành coupon/thông tin giao hàng. - Khách bảo: "Mình sẽ tới quán lúc 3h chiều" hoặc "Giao hàng giùm mình".
Lợi ích: - Khách không phải rời khỏi ứng dụng quen thuộc (Telegram, Zalo). - Quán nhận tiền tức thì, không mất phí. - Không cần tích hợp cổng thanh toán phức tạp. - Hoàn toàn miễn phí (MIT license).
Nên làm gì / Không nên làm gì khi dùng AgentPay VN
| ✅ Nên làm | ❌ Không nên làm |
|---|---|
Lưu payment_id để tracking |
Lưu trữ QR code trên server—tạo thêm phức tạp |
Set expires_in phù hợp (1–3 giờ) |
Để QR hết hạn mà không thông báo khách |
| Gửi email xác nhận tức thì | Chờ khách nhắc nhở mới xác nhận |
Dùng reference_id duy nhất cho mỗi giao dịch |
Tái dùng reference_id cho nhiều thanh toán |
Kiểm tra settlement["sender_name"] để chống gian lận |
Dễ dàng cấp khoá mà không kiểm chứng |
Implement retry logic nếu await_settlement timeout |
Bỏ qua timeout mà không thông báo |
| Che dấu tên tài khoản trong frontend (chỉ hiển thị QR) | Hiển thị tên account trên giao diện công khai |
FAQ: Những câu hỏi thường gặp
1. Tiền sẽ về tài khoản mình bao lâu sau khi khách thanh toán?
Tùy ngân hàng khách dùng và loại chuyển khoản: - Cùng ngân hàng: Thường 1–5 phút (hoặc tức thì). - Khác ngân hàng qua Napas: 5–15 phút. - Khác ngân hàng qua FAST: 1–3 giờ (nếu xảy ra sau 22h hoặc weekend, chậm hơn).
AgentPay VN chờ confirm từ bank feed của bạn, nên độ chính xác phụ thuộc vào cập nhật của ngân hàng—thường 1–10 phút.
2. Nếu khách nhập sai số tiền hoặc chuyển thiếu, sao?
AgentPay sẽ báo lỗi: settlement["status"] = "pending" hoặc "mismatched_amount". Bạn nên:
- Gửi email yêu cầu khách thanh toán lại.
- Hoặc điều chỉnh kỳ vọng (vd: nếu khách chuyển 290k thay 299k, có thể coi là hợp lệ với discount nhỏ).
AgentPay không tự xử lý, để bạn kiểm soát luồng.
3. AgentPay có bảo mật không? Có bao giờ bị leak thông tin tài khoản?
AgentPay VN là open-source MIT—code bạn có thể audit. Tài khoản ngân hàng của bạn:
- Được lưu local trên máy chủ hoặc environment variable (trong claude_desktop_config.json).
- Không gửi tới AgentPay server (vì AgentPay không có server tập trung).
- Chỉ dùng để tạo QR VietQR, không được xử lý hoặc lưu trữ.
Secure level tương đương với việc bạn tự quản lý API key—phải giữ bí mật biến môi trường.
4. Tôi có thể dùng AgentPay cho bot trên GPT, Gemini hay chỉ Claude?
AgentPay VN cung cấp Python SDK (chạy mọi nơi) + MCP server (dành cho Claude). Nếu dùng GPT hoặc Gemini: - Bạn có thể gọi SDK qua custom API endpoint (host SDK trên máy chủ, expose qua REST/GraphQL). - Hoặc tích hợp trực tiếp: tạo OpenAI custom tool hoặc Google Cloud Function gọi SDK.
Thiếu tài liệu resmi cho GPT/Gemini nhưng kỹ thuật khả thi.
Tóm tắt nhanh: Những điểm chính
- 🎯 Không giữ tiền: Tiền chảy thẳng vào tài khoản ngân hàng của bạn; AgentPay chỉ là cầu nối.
- 📲 VietQR tự động: Bot tạo QR trỏ tài khoản của bạn; khách scan bằng app ngân hàng quen thuộc.
- ⚡ 3 bước đơn:
create_payment_request→send checkout_url→await_settlement. - 🔐 Open-source MIT: Code công khai, có thể audit, không vendor lock-in.
- 🤖 MCP server cho Claude: Cấu hình JSON đơn, Claude gọi trực tiếp mà không code backend.
- 💻 Python SDK linh hoạt: Dùng được mọi chatbot, bot Telegram, bot Discord, etc.
- 📊 Kiểm soát luồng: Bạn quyết định khi nào phát hành khoá/dịch vụ, không tự động.
- 🚀 Miễn phí: Không phí giao dịch, không phí setup, chỉ cần tài khoản ngân hàng Việt.
Tiếp theo: Bắt tay vào làm
Cài đặt ngay hôm nay
pip install agentpay-vn
Rồi clone repo để xem ví dụ đầy đủ:
git clone https://github.com/phuocdu/agentpay-vn
cd agentpay-vn
python examples/simple_payment.py # Chạy ví dụ đơn
Đọc tài liệu chi tiết
Truy cập https://agentpay.servicesai.vn/v1/docs để xem: - API reference đầy đủ. - Hướng dẫn tích hợp MCP cho Claude. - Ví dụ bot Telegram, Discord. - Troubleshooting & best practices.
Thử nghiệm với case của bạn
Nếu bạn có chatbot AI (Claude, GPT, hay Python tự viết):
- Sao chép code từ ví dụ ở trên vào bot của bạn.
- Set biến môi trường:
AGENTPAY_MERCHANT_ID,AGENTPAY_BANK_ACCOUNT. - Test giao dịch nhỏ (5.000–10.000đ) để quen.
- Lấy feedback từ khách beta—trải nghiệm gì, có vấn đề gì.
- Deploy full khi hài lòng.
Tựa lại: AgentPay VN cho phép AI agent của bạn bán sản phẩm/dịch vụ mà không lo giữ tiền. Thanh toán VietQR trực tiếp, confirm tức thì, code mở, dễ tích hợp. Nếu đang xây chatbot thương mại, đây là công cụ đúng lúc—thử ngay! 🚀