Thu tiền VietQR tự động cho AI agent - Thay thế Stripe Việt Nam
Vấn đề: Tại sao AI agent của bạn lại phải "chờ tiền"?
Tưởng tượng bạn có một chatbot bán khóa học lập trình online. Khách hàng muốn mua, agent của bạn hiểu được nhu cầu, thuyết phục thành công—nhưng tại sao phải dừng lại để chuyển sang Stripe, Paypal hay các dịch vụ nước ngoài? Còn tệ hơn: nếu khách là người Việt, họ phải tìm thẻ quốc tế, chờ xác thực, rồi mới thanh toán.
Hơn nữa, khi sử dụng dịch vụ thanh toán truyền thống, tiền sẽ: - Treo trong tài khoản trung gian hàng ngày hoặc hàng tuần - Bị trừ phí xử lý từ 3-5% cho mỗi giao dịch - Yêu cầu tích hợp phức tạp với hệ thống của bên thứ ba - Không lưu ý gì đến đặc thù của AI agent và các tác vụ tự động
Đó là lý do AgentPay VN ra đời.
AgentPay VN là gì? Giải pháp "bằng hàng" cho bài toán thanh toán AI
AgentPay VN là một SDK Python mã nguồn mở (giấy phép MIT) được thiết kế riêng cho các AI agent, bot, và ứng dụng tự động cần thu tiền từ người dùng Việt Nam—mà hoàn toàn không giữ tiền bạn.
Thay vì tạo một tài khoản trung gian (escrow account), AgentPay VN: 1. Tạo mã QR VietQR trỏ thẳng vào tài khoản ngân hàng của bạn 2. Agent gửi URL checkout cho khách hàng 3. Khách scan QR và thanh toán (ngân hàng xử lý) 4. Hệ thống xác nhận nhận tiền thông qua bank feed (liên kết ngân hàng) 5. Agent tiếp tục tác vụ (gửi khoá học, tạo tài khoản, v.v.)
Trọng tâm: tiền đi thẳng vào tài khoản của bạn, không qua trung gian. Phí chỉ là phí chuyển khoản ngân hàng bình thường (~0-2.5%)—không phí dịch vụ ngoài.
Tại sao chọn AgentPay VN thay vì Stripe hoặc PayPal?
| Tiêu chí | AgentPay VN | Stripe | PayPal |
|---|---|---|---|
| Hỗ trợ VietQR | ✅ Tự nhiên | ❌ Cần tích hợp riêng | ❌ Không trực tiếp |
| Phí giao dịch | 0-2.5% (ngân hàng) | 3.6% + 2,000đ | 3.49% + 4,500đ |
| Giữ tiền trong hệ thống | ❌ Không | ✅ Có (1-2 ngày) | ✅ Có (1-3 ngày) |
| Mã nguồn mở | ✅ MIT License | ❌ Proprietary | ❌ Proprietary |
| Độ phức tạp tích hợp | ⭐ Dễ (3 dòng) | ⭐⭐⭐⭐ Phức tạp | ⭐⭐⭐ Trung bình |
| Hỗ trợ AI agent/MCP | ✅ Có | ❌ Không | ❌ Không |
| Cài đặt | pip install agentpay-vn |
Kompleks | Kompleks |
Bắt đầu: Cài đặt AgentPay VN trong 2 phút
Bước 1: Cài đặt SDK Python
pip install agentpay-vn
Đó là tất cả. Không cần khóa API, không cần tạo tài khoản seller, không cần xác thực qua email liên miên.
Bước 2: Kết nối ngân hàng (Bank Feed)
Bạn cần liên kết một ngân hàng hỗ trợ VietQR (VCB, MB, TCB, ACB, v.v.). AgentPay VN sẽ: - Đọc thông tin từ API ngân hàng hoặc qua bank feed - Xác nhận khoản thanh toán khi tiền vào tài khoản - Gửi webhook về hệ thống của bạn
Bước 3: Viết code (ba dòng magic)
from agentpay_vn import PaymentManager
# Khởi tạo
pay_manager = PaymentManager(
merchant_account="0123456789", # Tài khoản ngân hàng của bạn
merchant_name="Cửa hàng bán khoá học",
bank_code="VCB" # Hoặc MB, TCB, v.v.
)
# Tạo yêu cầu thanh toán
payment_request = pay_manager.create_payment_request(
amount=299000, # 299k VND
description="Khoá học Python Advanced",
customer_id="cust_12345",
callback_url="https://yourapp.com/webhook"
)
# In ra URL checkout
checkout_url = payment_request.checkout_url
print(f"Gửi cho khách: {checkout_url}")
# Chờ thanh toán (có thể dùng async)
settlement = pay_manager.await_settlement(
payment_id=payment_request.id,
timeout=900 # 15 phút
)
if settlement.status == "confirmed":
print(f"✅ Nhận {settlement.amount}đ từ {settlement.customer_name}")
# Gửi khoá học, tạo tài khoản, v.v.
else:
print("❌ Thanh toán thất bại hoặc timeout")
Giải thích từng bước:
- create_payment_request(): Tạo một giao dịch mới, trả về object có checkout_url (là QR hoặc link)
- await_settlement(): Chờ khách thanh toán; dò xem tiền vào tài khoản chưa
- Khi status == "confirmed", tiền đã an toàn vào tài khoản của bạn—bạn có thể hành động
Tích hợp MCP Server cho Claude (và các AI khác)
Nếu bạn muốn cho Claude hoặc Anthropic's Claude API trực tiếp gọi AgentPay VN (không qua code trung gian), sử dụng agentpay-mcp server:
pip install agentpay-mcp
agentpay-mcp serve
Sau đó, cấu hình file claude_desktop_config.json:
{
"mcpServers": {
"agentpay": {
"command": "agentpay-mcp",
"args": ["serve"],
"env": {
"MERCHANT_ACCOUNT": "0123456789",
"MERCHANT_NAME": "Cửa hàng của bạn",
"BANK_CODE": "VCB",
"CALLBACK_URL": "https://yourapp.com/webhook"
}
}
}
}
Giờ đây, Claude có thể gọi trực tiếp:
Claude: "Tạo yêu cầu thanh toán 299,000đ cho khách học Python"
→ Gọi agentpay.create_payment_request(amount=299000, ...)
→ Claude nhận URL → Gửi cho khách
→ Chờ settlement → Thông báo kết quả
Kịch bản thực tế: Bot bán khoá học online
Giả sử bạn có một chatbot Telegram bán khoá học:
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
from agentpay_vn import PaymentManager
pay_manager = PaymentManager(
merchant_account="1234567890",
merchant_name="EduBot Academy",
bank_code="MB"
)
async def start_course_purchase(update: Update, context: ContextTypes.DEFAULT_TYPE):
"""Khách nhập /buy_python"""
user_id = update.effective_user.id
course_name = "Python Advanced"
price = 299000
# Bước 1: Tạo yêu cầu thanh toán
payment = pay_manager.create_payment_request(
amount=price,
description=f"Khoá {course_name}",
customer_id=str(user_id),
callback_url="https://edubot.com/webhook"
)
# Bước 2: Gửi QR checkout cho khách
await update.message.reply_text(
f"🎓 Khoá {course_name}\n"
f"💰 Giá: {price:,}đ\n\n"
f"Scan QR hoặc click link để thanh toán:\n"
f"{payment.checkout_url}"
)
# Bước 3: Chờ khách thanh toán (có thể dùng background task)
context.user_data['payment_id'] = payment.id
context.user_data['course_name'] = course_name
async def check_payment_status(user_id: int):
"""Chạy mỗi 10 giây để check xem khách đã thanh toán chưa"""
payment_id = ... # lấy từ database
settlement = pay_manager.await_settlement(
payment_id=payment_id,
timeout=1 # check ngay, không chờ
)
if settlement and settlement.status == "confirmed":
# ✅ Tiền vào tài khoản!
# Gửi khoá học, tạo link download, v.v.
await telegram.send_message(
chat_id=user_id,
text="✅ Thanh toán thành công!\n\n"
"Dưới đây là link truy cập khoá học:\n"
"https://edubot.com/course/python-advanced/..."
)
# Cập nhật database: user_id đã trả tiền
else:
# Tiền chưa vào, hoặc hết timeout
pass
# Cài đặt bot
app = Application.builder().token("YOUR_TELEGRAM_TOKEN").build()
app.add_handler(CommandHandler("buy_python", start_course_purchase))
app.run_polling()
Luồng thực tế:
1. Khách: /buy_python
2. Bot: Hiển thị QR + link thanh toán
3. Khách: Scan QR → thanh toán 299k
4. Ngân hàng: Chuyển tiền vào tài khoản bot (tức là bạn)
5. Bot: Nhận webhook xác nhận → gửi khoá học cho khách
6. Tất cả trong vòng <30 giây, không cần bot "chờ" hoặc "treo".
Nên & Không nên khi dùng AgentPay VN
✅ NÊN LÀM:
- Dùng callback_url để bot tự động xử lý khi tiền vào (webhook)
- Lưu payment_id vào database để track giao dịch lâu dài
- Cấu hình timeout phù hợp (không quá ngắn, không quá dài)
- Kiểm tra settlement.verified để đảm bảo tiền thực sự an toàn
- Dùng try-except để bắt lỗi kết nối ngân hàng
❌ KHÔNG NÊN:
- Gửi khoá học trước khi settlement confirmed → mất tiền
- Hardcode merchant_account vào code → dùng biến môi trường
- Bỏ qua bank feed setup → không thể xác nhận thanh toán
- Dùng timeout quá ngắn (< 60 giây) → khách chưa kịp thanh toán
- Tin tưởng toàn bộ vào webhook → luôn verify lại trước hành động quan trọng
Mục FAQ: Câu hỏi thường gặp
1. Nếu khách thanh toán 2 lần (nhầm), sao?
AgentPay VN ghi nhận từng giao dịch theo payment_id độc nhất. Bạn cần kiểm tra:
# Trước khi gửi khoá học
if db.is_course_already_sent(payment_id):
# Hoàn tiền hoặc thông báo
else:
# Gửi khoá học
2. Có hỗ trợ thanh toán bằng app ngân hàng không?
Có! VietQR hoạt động trên tất cả app ngân hàng (Vietcombank, MB Bank, Techcombank, v.v.). Khách không cần scan QR—họ có thể bấm vào link checkout, chọn ngân hàng, rồi xác nhận thanh toán trực tiếp.
3. Tiền vào tài khoản mất bao lâu?
Gần như ngay tức thì (< 5 giây)—nếu ngân hàng của bạn hỗ trợ real-time bank feed. Nếu không, có thể mất đến 30 phút (nhưng hiếm).
4. Có thể integrate với WordPress/Shopify không?
Có! AgentPay VN cung cấp REST API và webhooks. Bạn có thể viết plugin WordPress hoặc app Shopify để gọi API này. Tuy nhiên, hiện tại tập trung vào Python SDK—các integration khác đang phát triển.
Tóm tắt nhanh
- 🚀 AgentPay VN = SDK Python mã nguồn mở (MIT), không giữ tiền của bạn
- 💰 Tiền đi thẳng vào tài khoản ngân hàng của bạn (VietQR), phí chỉ 0-2.5%
- ⚡ 3 dòng code để tạo yêu cầu thanh toán + chờ settlement
- 🤖 Hỗ trợ AI agent & MCP server (Claude, dạo này)
- 🔐 Bank feed xác nhận thanh toán tự động, không cần polling
- 📱 VietQR everywhere: scan QR, app ngân hàng, hay link checkout tùy thích
- 🔧 Nằm trong câu lệnh:
pip install agentpay-vn+ cấu hình bank
Lời kết & Hành động tiếp theo
Nếu bạn có chatbot, AI agent, hoặc ứng dụng nào cần thu tiền từ người dùng Việt Nam—AgentPay VN là giải pháp tối ưu nhất hiện tại. Không có khoảng chờ, không có phí ẩn, không có tài khoản trung gian—chỉ có tiền, code, và sự tin tưởng.
Bắt đầu ngay:
1. Cài đặt: pip install agentpay-vn
2. Đọc tài liệu: https://agentpay.servicesai.vn/v1/docs
3. Fork repository & contribute: https://github.com/phuocdu/agentpay-vn
Câu hỏi? Kinh nghiệm? Hãy mở issue trên GitHub hoặc comment dưới—chúng tôi rất muốn nghe từ bạn! 💬