Tạo MCP Server Có Thu Phí: Cho Claude Thanh Toán Ngay Trong Chat
Vấn đề: AI Agent Của Bạn Có Thể Kiếm Tiền, Nhưng Chưa Bao Giờ Thử
Hãy tưởng tượng: Bạn xây dựng một chatbot AI bán khoá học trực tuyến. Khách hàng yêu thích nội dung, thậm chí muốn mua ngay trong cuộc hội thoại — nhưng dừng lại ở "hãy chuyển khoản qua...". Họ rời đi. Giao dịch mất.
Hoặc bạn chạy một bot quản lý đơn đặt hàng cho quán cà phê. Khách yêu cầu "thanh toán ngay đây", nhưng bot không làm được gì ngoài tạo hoá đơn. Bạn mất cơ hội bán hang.
Vấn đề thực là: AI agents hiện tại không thể xử lý thanh toán một cách tự nhiên và an toàn. Hầu hết giải pháp yêu cầu khách chuyển hướng, hoặc yêu cầu ứng dụng của bạn "lưu giữ tiền" — điều rủi ro và phức tạp.
AgentPay VN thay đổi điều này hoàn toàn.
AgentPay VN Là Gì? Tại Sao Lại Dùng MCP?
AgentPay VN là một SDK Python mã nguồn mở (MIT) cho phép AI agents thu tiền thông qua VietQR — hệ thống mã QR thanh toán ngân hàng của Việt Nam. Điểm khác biệt lớn nhất:
Ứng dụng của bạn KHÔNG bao giờ giữ tiền. QR code trỏ thẳng vào tài khoản ngân hàng của merchant (bạn). Khi khách quét và thanh toán, tiền về tài khoản bạn ngay. Một feed từ ngân hàng xác nhận giao dịch.
MCP (Model Context Protocol) là một tiêu chuẩn cho phép Claude và các AI agents khác "gọi các công cụ bên ngoài" một cách an toàn. Thay vì viết code Claude không hiểu, bạn tạo một MCP server có các hàm như create_payment_request(), await_settlement() — Claude sẽ tự động sử dụng chúng khi cần thanh toán.
Kết quả: "Bạn có thể bán gì đó trực tiếp trong cuộc hội thoại với Claude."
Cài Đặt: 3 Lệnh, Bạn Sẵn Sàng
Bước 1: Cài SDK
pip install agentpay-vn
Có thế. SDK Python của AgentPay VN sẽ được tải về máy bạn.
Bước 2: Cài MCP Server
pip install agentpay-mcp
MCP server là cái "cầu nối" giữa Claude và SDK. Nó chạy ở background, lắng nghe các lệnh từ Claude.
Bước 3: Cấu Hình Thông Tin Merchant
Bạn cần cung cấp thông tin ngân hàng của bạn (tên ngân hàng, số tài khoản, tên chủ tài khoản). AgentPay VN hỗ trợ hầu hết các ngân hàng lớn ở Việt Nam.
Quy Trình 3 Dòng: Từ Yêu Cầu Thanh Toán Đến Xác Nhận
Mọi giao dịch qua AgentPay VN tuân theo một quy trình đơn giản:
1. Tạo Yêu Cầu Thanh Toán
from agentpay_vn import PaymentRequest
# Claude gọi hàm này khi khách muốn mua
payment = create_payment_request(
merchant_id="your_merchant_id", # ID của bạn từ AgentPay
amount_vnd=299000, # Giá bán: 299,000 VND
description="Khoá học Python Advanced",# Mô tả sản phẩm
order_id="order_20250115_001", # ID đơn hàng duy nhất
customer_email="khach@example.com" # Email khách
)
checkout_url = payment.checkout_url
print(f"Gửi QR này cho khách: {checkout_url}")
Giải thích:
- create_payment_request() tạo một yêu cầu thanh toán mới.
- amount_vnd là số tiền khách phải trả (tính bằng đồng Việt).
- order_id là một mã duy nhất để bạn theo dõi đơn hàng này (không được trùng).
- Hàm trả về một object có checkout_url — URL chứa QR code VietQR.
2. Gửi URL Checkout Cho Khách
Claude (hoặc bot của bạn) gửi checkout_url cho khách. Khách quét QR bằng app ngân hàng → thanh toán → hoàn tất.
3. Chờ Xác Nhận Thanh Toán
import asyncio
from agentpay_vn import await_settlement
async def wait_for_payment(order_id):
"""Chờ tối đa 15 phút cho xác nhận thanh toán"""
result = await await_settlement(
order_id=order_id,
timeout_seconds=900 # 15 phút
)
if result.status == "settled":
print(f"✅ Thanh toán thành công! Khách đã gửi {result.amount_vnd} VND")
# Cấp quyền truy cập khoá học, gửi email xác nhận, v.v.
return True
else:
print(f"❌ Thanh toán thất bại hoặc hết thời gian")
return False
# Claude tự động gọi trong backend
result = asyncio.run(wait_for_payment("order_20250115_001"))
Giải thích:
- await_settlement() là một async function — nó "chờ" tiền đến mà không làm treo ứng dụng.
- timeout_seconds=900 nghĩa là nếu quá 15 phút mà chưa có tiền, thôi chờ.
- result.status == "settled" cho biết tiền đã vào tài khoản bạn.
- Khi thanh toán thành công, bạn có thể tự động cấp quyền sản phẩm, gửi email, hoặc làm gì đó khác.
Cấu Hình MCP Server Cho Claude
Để Claude biết cách dùng AgentPay, bạn phải "đăng ký" MCP server vào Claude hoặc ứng dụng của mình.
File cấu hình claude_config.json (hoặc trong .env):
{
"mcp_servers": {
"agentpay": {
"type": "stdio",
"command": "python",
"args": ["-m", "agentpay_mcp"],
"env": {
"AGENTPAY_MERCHANT_ID": "your_merchant_id",
"AGENTPAY_BANK_NAME": "Vietcombank",
"AGENTPAY_ACCOUNT_NUMBER": "1234567890",
"AGENTPAY_ACCOUNT_NAME": "Nguyen Van A"
}
}
}
}
Giải thích:
- "type": "stdio" nghĩa là MCP server chạy như một process riêng.
- "command": "python", "args": ["-m", "agentpay_mcp"] khởi động MCP server.
- Các biến env là thông tin ngân hàng của bạn — quan trọng, giữ bí mật!
Sau khi cấu hình, Claude sẽ thấy và có thể gọi các tools từ AgentPay.
Ví Dụ Thực Tế: Bot Bán Khoá Học Trực Tuyến
Hãy tưởng tượng bạn chạy một cửa hàng bán khoá học lập trình qua chatbot.
Kịch bản:
1. Khách: "Tôi muốn mua khoá Python Advanced giá 299 nghìn"
2. Claude: "Tuyệt! Tôi sẽ tạo hoá đơn cho bạn."
- Gọi create_payment_request() với amount_vnd=299000
3. Claude: "Đây là QR code thanh toán. Hãy quét bằng app ngân hàng của bạn."
4. Khách quét QR → thanh toán 299,000 VND từ tài khoản ngân hàng của mình.
5. Tiền về tài khoản của bạn ngay lập tức.
6. Claude nhận được xác nhận từ await_settlement().
7. Claude: "Thanh toán thành công! Tôi sẽ gửi link tải khoá học cho bạn trong 2 phút." → Gửi email với link truy cập.
Toàn bộ quá trình diễn ra trong cuộc hội thoại. Khách không cần rời khỏi chat, không cần điền form phức tạp. Bạn không cần xử lý tiền, không cần chuyên viên kế toán.
Nên Làm / Không Nên Làm Khi Dùng AgentPay
| Hành Động | Nên | Không Nên | Lý Do |
|---|---|---|---|
| Lưu order_id duy nhất | ✅ | ❌ | Tránh tạo 2 thanh toán cho 1 đơn hàng |
| Chờ xác nhận trước khi cấp sản phẩm | ✅ | ❌ | Nếu bạn cấp trước, khách có thể không thanh toán |
| Lưu toàn bộ dữ liệu giao dịch | ✅ | ❌ | Cần để theo dõi, audit, hoàn tiền nếu cần |
| Đặt timeout hợp lý (10-15 phút) | ✅ | ❌ | Quá ngắn: khách không kịp thanh toán; quá dài: chờ lâu |
| Cố gắng "giữ tiền" trong app | ❌ | ✅ | AgentPay trỏ thẳng vào tài khoản bạn, không cần giữ |
| Quên lưu thông tin merchant | ❌ | ✅ | Nếu mất, không thể khởi động MCP server |
| Gửi QR mà không xác thực khách | ⚠️ | ⚠️ | Tùy trường hợp — cho bán hàng công khai, cần xác thực cho dịch vụ riêng |
Câu Hỏi Thường Gặp (FAQ)
Q1: Nếu khách quét QR nhưng không thanh toán, sẽ xảy ra gì?
A: QR code vẫn có thể sử dụng được (nó không hết hạn). await_settlement() sẽ chờ. Nếu quá timeout (ví dụ 15 phút), Claude có thể hỏi khách "Thanh toán thành công chưa?" hoặc gửi QR mới.
Q2: Bạn có thể hoàn tiền không?
A: Có. Nếu khách yêu cầu hủy đơn hàng sau khi thanh toán, bạn có thể yêu cầu hoàn tiền thông qua SDK hoặc liên hệ hỗ trợ AgentPay. Hoàn tiền sẽ về tài khoản ngân hàng khách trong 1-3 ngày.
Q3: Có phí gì không?
A: AgentPay VN là open-source, miễn phí cài đặt. Tuy nhiên, mỗi giao dịch VietQR có phí từ ngân hàng của bạn (thường 0% hoặc ~0.5% tùy ngân hàng). Bạn cần xác nhận phí với ngân hàng riêng.
Q4: Tôi có thể bán bao nhiêu loại sản phẩm?
A: Không giới hạn. Mỗi sản phẩm tương ứng một lần gọi create_payment_request() với giá khác nhau. Chỉ cần đảm bảo order_id luôn duy nhất.
Tóm Tắt Nhanh
- 🎯 AgentPay VN: SDK Python mã nguồn mở giúp AI agents thu tiền VietQR.
- 🏦 Không giữ tiền: QR trỏ thẳng vào tài khoản merchant bạn; ngân hàng xác nhận.
- ⚡ Quy trình 3 bước:
create_payment_request()→ gửi URL →await_settlement(). - 🤖 MCP Server: Kết nối Claude với AgentPay; Claude tự động gọi khi cần thanh toán.
- 💰 Kịch bản: Bán khoá học, dịch vụ, hoặc bất kỳ sản phẩm kỹ thuật số nào trong chat.
- ✅ Lợi ích: Giảm ma sát bán hàng, tăng tỷ lệ chuyển đổi, không cần xử lý tiền phức tạp.
Bước Tiếp Theo: Xây Dựng Bot Của Bạn
Cài đặt ngay:
pip install agentpay-vn
pip install agentpay-mcp
Đọc tài liệu chi tiết:
👉 https://agentpay.servicesai.vn/v1/docs — Hướng dẫn đầy đủ, ví dụ code, và FAQ.
Xem mã nguồn:
👉 https://github.com/phuocdu/agentpay-vn — Code mở, bạn có thể modify hoặc đóng góp.
Kết Luận
Thời đại của các bot AI mà không thể kiếm tiền đã qua. AgentPay VN cho phép bạn biến Claude (hoặc bất kỳ AI agent nào) thành một nhân viên bán hàng thực sự — người có thể thương lượng, hỗ trợ khách, và nhận tiền mà không cần can thiệp của con người.
Hãy bắt đầu ngay. Chỉ 3 lệnh pip, một chút cấu hình, và bạn đã sẵn sàng bán gì đó. Khách của bạn sẽ tấm lòng vì sự mượt mà.