Bán sản phẩm số qua chatbot AI không giữ tiền: Hướng dẫn AgentPay

2026-08-04 · AgentPay VN

aipythonvietqrmcpthanh toán

Nỗi đau của người bán sản phẩm số

Bạn vừa xây dựng một chatbot AI bán khoá học online, mẫu thiết kế Figma, hoặc dịch vụ tư vấn. Bot hoạt động tuyệt vời, tỷ lệ chuyển đổi 15%... nhưng lại có một vấn đề lớn: cách nào để nhận tiền mà không cần một platform thanh toán third-party?

Hầu hết các giải pháp hiện nay bắt buộc bạn chịu phí cao (2-5%), phải đợi 3-5 ngày để rút tiền, hoặc tệ hơn — phải giữ tiền của khách trong tài khoản riêng rồi chuyển lại sau. Điều này vừa rủi ro pháp lý, vừa phức tạp, vừa khiến khách không yên tâm.

Chính vì vậy, AgentPay VN ra đời với một triết lý đơn giản nhưng mạnh mẽ: agent AI của bạn tạo mã QR thanh toán, khách quét và chuyển tiền trực tiếp vào tài khoản ngân hàng của bạn — không có trung gian giữ tiền.


AgentPay VN là gì? Và tại sao nó khác biệt

AgentPay VN là một Python SDK mã nguồn mở (MIT) + MCP server cho phép các agent AI tạo yêu cầu thanh toán VietQR và nhận xác nhận thanh toán từ ngân hàng của bạn. Cốt lõi của nó:

So với Stripe, Zalopay, hay MoMo — AgentPay là để agent AI của bạn quản lý thanh toán, không phải bạn quản lý platform khác.


Kiến trúc hoạt động: 3 bước đơn giản

Quy trình nhận thanh toán qua AgentPay chỉ có 3 bước:

1. create_payment_request — Agent tạo yêu cầu thanh toán (amount, description, order_id)

2. send_checkout_url — Bot gửi link checkout (chứa mã QR) cho khách

3. await_settlement — Chờ xác nhận từ bank feed → tự động thực hiện hành động (gửi khoá học, tạo tài khoản, v.v.)

Không cần polling, không cần webhook phức tạp — tất cả diễn ra trong vòng vài giây.


Cài đặt AgentPay VN: Bước đầu tiên

Bước 1: Cài Python SDK

pip install agentpay-vn

Bước 2: Khởi tạo agent AgentPay

from agentpay_vn import AgentPay
from agentpay_vn.models import PaymentRequest

# Khởi tạo với thông tin tài khoản ngân hàng
agentpay = AgentPay(
    bank_account="1234567890",  # Số tài khoản của bạn
    bank_code="VCB",            # Mã ngân hàng (ví dụ: VCB=Vietcombank)
    account_name="NGUYEN VAN A", # Tên chủ tài khoản
    api_key="your-api-key-here" # Lấy từ https://agentpay.servicesai.vn
)

Bước 3: Tạo payment request trong hàm agent

# Khi khách muốn mua sản phẩm
payment_req = agentpay.create_payment_request(
    amount=299000,                      # 299k VNĐ
    description="Khoá học Python nâng cao",
    order_id="ORDER_20250115_001",     # ID duy nhất cho đơn hàng
    metadata={"customer_email": "khach@example.com"}
)

# Lấy checkout URL (chứa QR code)
checkout_url = payment_req.checkout_url
print(f"Gửi link thanh toán cho khách: {checkout_url}")

Như vậy là xong — khách chỉ cần quét QR hoặc click link.


Chờ xác nhận thanh toán: Cách tự động giao sản phẩm

Sau khi khách thanh toán, bot cần chờ xác nhận từ ngân hàng rồi giao hàng. AgentPay cung cấp hàm await_settlement() cho việc này:

import asyncio

async def process_order_payment(order_id: str, customer_email: str):
    """
    Chờ xác nhận thanh toán, sau đó giao sản phẩm
    """
    try:
        # Chờ đến 5 phút để nhận tiền (timeout=300 giây)
        settlement = await agentpay.await_settlement(
            order_id=order_id,
            timeout=300
        )

        if settlement.status == "confirmed":
            print(f"✅ Thanh toán thành công: {settlement.amount} VNĐ")
            print(f"Thời gian giao dịch: {settlement.timestamp}")

            # Tự động giao sản phẩm
            course_link = generate_course_access_link(customer_email)
            send_email(
                to=customer_email,
                subject="Bạn đã mua khoá học thành công!",
                body=f"Truy cập khoá học tại: {course_link}"
            )

            return {"status": "success", "course_link": course_link}

    except agentpay.PaymentTimeoutError:
        print(f"❌ Thanh toán lỗi: Quá hạn chờ {order_id}")
        return {"status": "timeout"}
    except Exception as e:
        print(f"❌ Lỗi xử lý thanh toán: {e}")
        return {"status": "error", "message": str(e)}

# Gọi hàm (chạy trong event loop)
asyncio.run(process_order_payment("ORDER_20250115_001", "khach@example.com"))

Dòng await agentpay.await_settlement() sẽ block (chờ) cho đến khi nhận tiền hoặc hết timeout. Điều này rất tiện vì bạn không phải poll database liên tục.


Tích hợp với Claude AI qua MCP Server

Nếu bạn dùng Claude hoặc agent AI khác hỗ trợ MCP (Model Context Protocol), bạn có thể kích hoạt AgentPay như một "công cụ" của Claude.

Bước 1: Cài MCP server

pip install agentpay-mcp

Bước 2: Cấu hình trong Claude (file claude_desktop_config.json hoặc trong Cursor):

{
  "mcpServers": {
    "agentpay": {
      "command": "python",
      "args": ["-m", "agentpay_mcp.server"],
      "env": {
        "AGENTPAY_API_KEY": "your-api-key",
        "AGENTPAY_BANK_ACCOUNT": "1234567890",
        "AGENTPAY_BANK_CODE": "VCB",
        "AGENTPAY_ACCOUNT_NAME": "NGUYEN VAN A"
      }
    }
  }
}

Bước 3: Từ giờ, Claude có thể tự gọi AgentPay trong conversation:

Bạn: "Tôi muốn bán khoá học Python cho khách với giá 299k. Nếu khách chuyển tiền, hãy gửi link truy cập cho họ."

Claude: "Tôi sẽ giúp bạn. Hãy cho tôi biết email khách hàng..."
[Claude tự động gọi create_payment_request → send_checkout_url → await_settlement]

Diều này giúp bạn không cần code lại, mà để Claude quản lý toàn bộ quy trình bán hàng.


Ví dụ thực tế: Bot bán khoá học online

Hãy tưởng tượng bạn có một chatbot Telegram/Discord phục vụ khách hàng, bán khoá học Python. Đây là cách nó hoạt động:

Tình huống: - Khách: "Tôi muốn mua khoá 'Python nâng cao'" - Bot kiểm tra giá trong database → 299,000 VNĐ - Bot tạo yêu cầu thanh toán → gửi mã QR cho khách - Khách quét QR → chuyển tiền vào tài khoản bot - Ngay sau 2-3 giây, ngân hàng gửi thông báo → bot nhận → tự động gửi link khoá học + password - Khách vào học ngay

Kịch bản code:

from agentpay_vn import AgentPay
import asyncio

class CourseBot:
    def __init__(self):
        self.agentpay = AgentPay(
            bank_account="1234567890",
            bank_code="VCB",
            account_name="COURSE SHOP VN"
        )
        self.courses = {
            "python-101": {"name": "Python cơ bản", "price": 199000},
            "python-pro": {"name": "Python nâng cao", "price": 299000},
        }

    async def sell_course(self, customer_email: str, course_id: str):
        # Lấy thông tin khoá học
        course = self.courses.get(course_id)
        if not course:
            return {"error": "Khoá học không tồn tại"}

        # Tạo yêu cầu thanh toán
        payment = self.agentpay.create_payment_request(
            amount=course["price"],
            description=f"Mua khoá: {course['name']}",
            order_id=f"{course_id}_{customer_email}_{int(time.time())}",
            metadata={"course_id": course_id, "customer_email": customer_email}
        )

        print(f"Gửi QR cho {customer_email}: {payment.checkout_url}")

        # Chờ thanh toán (tối đa 10 phút)
        settlement = await self.agentpay.await_settlement(
            order_id=payment.order_id,
            timeout=600
        )

        if settlement.status == "confirmed":
            # Giao khoá học
            access_link = f"https://courses.example.com/{course_id}?token=ABC123"
            send_email(
                to=customer_email,
                subject=f"Chúc mừng! Bạn đã mua {course['name']}",
                body=f"Vào học tại: {access_link}\nMật khẩu: 12345"
            )
            return {"status": "success", "access_link": access_link}
        else:
            return {"status": "timeout", "message": "Thanh toán lỗi"}

# Sử dụng
bot = CourseBot()
asyncio.run(bot.sell_course("khach@gmail.com", "python-pro"))

Rõ ràng, đơn giản, và không cần backend phức tạp.


Nên và không nên khi dùng AgentPay

Tiêu chí Nên ✅ Không nên ❌
Sản phẩm digital Khoá học, ebook, file, dịch vụ tư vấn Hàng vật lý, cần verify địa chỉ giao
Thời gian giao hàng Tức thì hoặc trong vài phút Cần giao hàng sau vài ngày
Lượng giao dịch Từ vài nghìn đến hàng triệu/tháng Không giới hạn, nhưng cần scale banking
Tích hợp bot AI Claude, Cursor, agent tự làm Platform không hỗ trợ Python SDK
Quản lý tiền Chấp nhận tiền vào tài khoản cá nhân/kinh doanh Cần escrow, cần giữ tiền tạm thời
Phí Tối thiểu (phí ngân hàng chuyển tiền) Bắt buộc phải trả hoa hồng 3-5%

Mục FAQ: Các câu hỏi thường gặp

1. Tiền đi vào tài khoản nào?

Tiền sẽ vào tài khoản ngân hàng bạn cung cấp khi cấu hình AgentPay. Bạn chỉ cần cho biết số tài khoản + tên chủ tài khoản, mã ngân hàng.

2. Nếu khách thanh toán nhưng bot không nhận được, làm sao?

AgentPay tích hợp bank feed (OCR thông báo SMS/email từ ngân hàng), nhưng để an toàn, bạn nên: - Dùng timeout vừa phải (5-10 phút) - Lưu order_id để check lại bằng bank transaction statement - Có fallback: nếu timeout, yêu cầu khách upload screenshot chứng minh thanh toán

3. Có phí API không?

AgentPay open-source, miễn phí. Bạn chỉ tốn phí ngân hàng khi chuyển tiền (thường 0-2000 VNĐ/lần). Nếu dùng MCP server trên cloud, có thể tốn chi phí server AWS/GCP.

4. Bảo mật như thế nào? Sẽ không bị hack lấy API key?


Tóm tắt nhanh


Bước tiếp theo: Triển khai ngay

1. Cài AgentPay:

pip install agentpay-vn

2. Lấy API key từ: https://agentpay.servicesai.vn/v1/docs

3. Xem full docs (ví dụ chi tiết, SDK reference): https://agentpay.servicesai.vn/v1/docs

4. Fork/star trên GitHub: https://github.com/phuocdu/agentpay-vn

5. Thử integrate với bot/agent của bạn — trong 10 phút bạn sẽ có hệ thống bán hàng online hoàn chỉnh.

Hãy bắt đầu bán sản phẩm số mà không lo tiền tạm giữ. AgentPay sẽ lo phần còn lại! 🚀

Bắt đầu →

← Tất cả bài