Bán sản phẩm số qua chatbot AI không giữ tiền: hướng dẫn AgentPay VN
Bạn đang mất tiền vì cách bán hàng truyền thống
Hãy tưởng tượng: Bạn có một chatbot AI bán khóa học lập trình, mỗi ngày xử lý 50 đơn hàng. Nhưng vấn đề là tiền của khách hàng phải gửi vào ví trung gian — hoặc bạn phải tự quản lý thanh toán, rồi chuyển tiền cho khách sau, hoặc dùng cổng thanh toán tập trung mà lấy phí 2-3% cho mỗi giao dịch.
Nhân viên kế toán phải đối chiếu thủ công. Tiền nằm cầm chừng. Có thể bị chậm thanh toán. Và nếu khách hàng kiện, ví số có thể đóng băng tài khoản của bạn.
Nếu tiền có thể đi thẳng vào ngân hàng của bạn trong vòng vài phút mà không cần trung gian thì sao?
AgentPay VN chính là câu trả lời. Nó là một SDK Python mã nguồn mở (MIT) cho phép chatbot AI của bạn tạo yêu cầu thanh toán VietQR — và tiền đi thẳng vào tài khoản ngân hàng của bạn mà không bao giờ qua bàn tay của hệ thống.
Vấn đề: Tại sao các cách cũ không còn phù hợp
Khi bạn muốn bán sản phẩm số (khóa học, eBook, phần mềm, thiết kế) qua chatbot AI, bạn gặp phải một vài tình huống khó chịu:
1. Phí giao dịch cao và không minh bạch - Cổng thanh toán tập trung lấy 2-3% mỗi lần - Với doanh số 100 triệu/tháng, bạn mất 2-3 triệu chỉ vì phí - Hợp đồng dài, khó rút lui
2. Quản lý tiền phức tạp - Tiền nằm trong ví số, không phải tài khoản của bạn - Cần chờ T+1, T+2 để thanh toán - Nếu bị tranh chấp, tài khoản có thể bị đóng băng
3. Chatbot AI không thể tự xử lý thanh toán một cách an toàn - Phải dùng API phức tạp, cần xử lý bảo mật tiền - Nếu code có lỗi, có thể để lộ dữ liệu thanh toán - Không có cách nào để confirm rằng "tiền đã vào tài khoản"
Giải pháp: AgentPay VN là gì?
AgentPay VN là một SDK Python nhẹ + MCP server cho phép AI agent (Claude, o1, hoặc bất kỳ LLM nào) tạo yêu cầu thanh toán VietQR mà không bao giờ cầm giữ tiền.
Cách hoạt động:
- Agent tạo yêu cầu thanh toán → SDK sinh ra QR code
- QR code trỏ thẳng tới ngân hàng của bạn (không qua server trung gian)
- Khách hàng quét QR, chuyển tiền qua ứng dụng ngân hàng của họ
- Ngân hàng xác nhận tiền đã vào → Agent nhận được callback
- Gửi sản phẩm cho khách tự động
Đặc điểm chính:
- ✅ Mã nguồn mở (MIT) — kiểm tra được, không có ẩn số
- ✅ Không giữ tiền — an tâm về pháp lý
- ✅ Miễn phí (ngoài phí chuyển tiền ngân hàng bình thường 0-0.5%)
- ✅ Tích hợp trực tiếp với Claude và các AI agent khác qua MCP
- ✅ Cài đặt trong 1 phút: pip install agentpay-vn
Quy trình 3 dòng: Từ yêu cầu đến xác nhận thanh toán
AgentPay VN hoạt động theo một quy trình rất đơn giản:
# Bước 1: Tạo yêu cầu thanh toán
payment_request = create_payment_request(
amount=499000, # 499.000 VND
description="Khóa học AI từ A-Z",
merchant_id="your_account_id",
order_id="order_12345"
)
# Bước 2: Gửi checkout URL cho khách
print(f"Khách vui lòng thanh toán tại: {payment_request['checkout_url']}")
# Bước 3: Chờ xác nhận từ ngân hàng
result = await_settlement(
order_id="order_12345",
timeout=600 # Chờ 10 phút
)
if result['status'] == 'settled':
print("✅ Tiền đã vào tài khoản!")
# Gửi sản phẩm cho khách
send_course_link(customer_email)
else:
print("⏳ Chờ xác nhận hoặc giao dịch thất bại")
Giải thích từng dòng:
create_payment_request()→ Tạo một "hóa đơn" với số tiền, mô tả, và ID merchant (tài khoản ngân hàng của bạn)amount→ Số tiền khách phải trả (tính bằng đồng)merchant_id→ Định danh tài khoản ngân hàng hoặc số điện thoại để nhận tiềnorder_id→ ID giao dịch duy nhất (để theo dõi)checkout_url→ URL QR hoặc link mà khách sẽ nhấn để thanh toánawait_settlement()→ Chạy vòng lặp kiểm tra (polling) xem tiền đã vào chưastatus == 'settled'→ Tiền đã được ngân hàng xác nhận vào tài khoản
Hướng dẫn cài đặt từng bước
1. Cài đặt SDK
pip install agentpay-vn
Xong. Không cần phải tạo tài khoản hay xin phê duyệt gì cả.
2. Cấu hình cho Claude (hoặc AI agent khác) qua MCP
Nếu bạn dùng Claude Desktop hoặc một ứng dụng hỗ trợ MCP, thêm cấu hình này vào file claude_desktop_config.json:
{
"mcpServers": {
"agentpay": {
"command": "agentpay-mcp",
"args": [
"--merchant-id",
"your_phone_or_bank_id",
"--secret-key",
"your_secret_key_from_env"
]
}
}
}
Giải thích:
- merchant_id → Số điện thoại hoặc ID tài khoản ngân hàng của bạn (nơi nhận tiền)
- secret_key → Khóa bí mật để ký các yêu cầu thanh toán (bảo mật)
- MCP server sẽ cho phép Claude trực tiếp gọi create_payment_request và await_settlement
3. Tạo file Python đơn giản
from agentpay_vn import PaymentClient
# Khởi tạo client
client = PaymentClient(
merchant_id="0901234567", # Số điện thoại hoặc ID ngân hàng
secret_key="your_secret_key"
)
# Ví dụ: Khách muốn mua khóa học
def sell_course(customer_email, course_price):
# 1. Tạo yêu cầu
req = client.create_payment_request(
amount=course_price,
description=f"Khóa học AI - {customer_email}",
order_id=f"course_{int(time.time())}"
)
# 2. Gửi QR code cho khách (qua email, Telegram, Zalo...)
print(f"QR code: {req['qr_image_url']}")
print(f"Hoặc nhấn: {req['checkout_url']}")
# 3. Chờ tiền vào
settlement = client.await_settlement(req['order_id'])
if settlement['confirmed']:
send_email(customer_email, "course_download_link.pdf")
return True
return False
# Chạy
sell_course("customer@example.com", 499000)
FILE này có thể chạy độc lập hoặc tích hợp vào Flask/FastAPI web app của bạn.
Kịch bản đời thực: Quán cà phê bán online qua chatbot
Quán cà phê "Cà Phê AI" muốn bán gói "Đặc biệt hôm nay" (50k/ly) qua chatbot Telegram:
Tình huống: - Khách: "Tôi muốn mua 2 ly cà phê đặc biệt" - Bot (chạy AgentPay): - Tính giá: 2 × 50.000 = 100.000 VND - Tạo yêu cầu thanh toán - Gửi QR code + link thanh toán cho khách - Khách: Quét QR → chuyển tiền qua app ngân hàng → hoàn tất - Ngân hàng: Xác nhận tiền vào → bot nhận callback - Bot: Gửi mã lấy hàng (hoặc địa chỉ giao hàng) cho khách - Quán: Tiền đã có trong tài khoản, không cần chờ
Lợi ích: - Khách vừa nhấn quét QR, vừa thanh toán (không cần sang trang khác) - Quán không giữ tiền, tiền vào ngay ngân hàng - Không phí trung gian - Tự động gửi mã/hóa đơn khi tiền xác nhận
Nên & Không nên khi dùng AgentPay VN
| Nên ✅ | Không nên ❌ |
|---|---|
| Dùng để bán sản phẩm số (khoá học, eBook, phần mềm) | Dùng để tích trữ tiền của khách (là ví số) |
| Chạy trên server riêng mà bạn kiểm soát | Để SDK lộ secret_key trên GitHub công khai |
Kiểm tra secret_key từ environment variable |
Hardcode merchant_id trong mã |
| Dùng MCP với Claude để bot tự quyết định tạo payment | Tạo yêu cầu thanh toán mà không log order_id |
Chờ settled status trước khi gửi sản phẩm |
Gửi sản phẩm ngay khi khách quét QR (chưa trả tiền) |
| Thử nghiệm trên testnet (nếu có) trước | Xoá các order_id cũ mà chưa xác nhận |
Những tính năng nâng cao
Webhook: Tự động phản hồi khi tiền vào
Thay vì gọi await_settlement() liên tục, bạn có thể bật webhook để AgentPay gửi thông báo tức thì:
client.register_webhook(
url="https://yourapp.com/webhook/agentpay",
events=["payment.settled", "payment.failed"]
)
# Trong app của bạn:
@app.post("/webhook/agentpay")
def on_payment(data):
order_id = data['order_id']
if data['event'] == 'payment.settled':
send_product(order_id)
return {"ok": True}
Tạo QR code động theo sản phẩm
def generate_vietqr_for_product(product_id, price):
req = client.create_payment_request(
amount=price,
description=f"Sản phẩm #{product_id}",
order_id=f"product_{product_id}_{uuid.uuid4()}"
)
# Trả về QR image base64
return {
"qr_image": req['qr_image_url'],
"checkout_url": req['checkout_url'],
"expire_at": req['expire_at']
}
Câu hỏi thường gặp (FAQ)
Tiền có thể "mất" trong quá trình thanh toán không?
Không. Vì AgentPay không bao giờ giữ tiền. Tiền đi từ tài khoản khách → Ngân hàng → Tài khoản của bạn. AgentPay chỉ là "người nhắn tin" (message broker), không phải "kho bạc".
Nếu khách chuyển tiền nhưng chưa nhận được sản phẩm thì sao?
Hãy check settlement status. Nếu status == 'settled', tức là tiền đã vào ngân hàng của bạn rồi. Nếu bot không gửi sản phẩm, bạn có thể:
1. Thêm retry logic: gửi lại nếu lần trước bị lỗi
2. Hỗ trợ khách thủ công qua email/chat
3. Webhook sẽ giúp bạn không bỏ sót bất kỳ thanh toán nào
Có bảo mật không? secret_key có bị lộ không?
Rất bảo mật nếu bạn tuân thủ quy tắc:
- KHÔNG hardcode secret_key → Dùng environment variable (os.getenv('AGENTPAY_SECRET'))
- KHÔNG commit secret_key lên GitHub → Thêm vào .gitignore
- KHÔNG share secret_key công khai
- Mã nguồn AgentPay là open-source, bạn có thể tự kiểm tra logic
Có thể dùng AgentPay với Telegram Bot / Discord Bot / Zalo không?
Có. AgentPay chỉ là một SDK Python, nó không kết nộn với bất kỳ nền tảng nào. Bạn có thể tích hợp với:
- python-telegram-bot
- discord.py
- zalobot
- FastAPI web app
- AWS Lambda functions
Miễn sao bạn có quyền chạy Python code, bạn có thể dùng AgentPay.
Tóm tắt nhanh
- 🚀 AgentPay VN = SDK Python để chatbot AI nhận thanh toán VietQR mà không giữ tiền
- 📦 Cài đặt:
pip install agentpay-vn(1 phút) - 💰 Tiền vào ngân hàng của bạn trong vài phút, không qua trung gian
- 🤖 MCP support: Tích hợp trực tiếp với Claude (
agentpay-mcp) - 🔄 3 bước cơ bản:
create_payment_request→send_checkout_url→await_settlement - 💵 Phí: Chỉ phí chuyển tiền ngân hàng bình thường (0-0.5%), không phí giao dịch
- 📖 Mã nguồn mở (MIT): Xem được, kiểm tra được, tin tưởng được
- ✅ Dành cho: Bán khóa học, eBook, phần mềm, dịch vụ số qua chatbot
- ⚠️ KHÔNG dùng: Để cầm giữ tiền hoặc làm ví số
Bước tiếp theo: Bắt đầu ngay hôm nay
Cài đặt:
pip install agentpay-vn
Xem tài liệu chi tiết: 👉 https://agentpay.servicesai.vn/v1/docs
Xem mã nguồn + ví dụ: 👉 https://github.com/phuocdu/agentpay-vn
Nếu bạn đang chạy chatbot AI và muốn bán hàng trực tiếp mà không cần ví số trung gian, AgentPay VN chính là công cụ bạn cần. Hãy thử nó ngay — không cần đăng ký, không cần đợi phê duyệt, chỉ cần 1 lệnh pip.
Câu hỏi cuối cùng: Bạn muốn chatbot tạo ra doanh thu mà không phải lo lắng về quản lý tiền phức tạp, đúng không? AgentPay VN cho phép bạn làm điều đó — trong vòng 5 phút từ khi cài đặt.