Bán sản phẩm số qua chatbot AI mà không giữ tiền

2026-08-02 · AgentPay VN

aipythonvietqrmcppayment

Nỗi đau khi bán hàng số qua bot AI

Bạn đang chạy một chatbot bán khoá học online, hay một cửa hàng bán ảnh minh hoạ cho designer. Bot của bạn hoạt động tốt, tự động trả lời, gợi ý sản phẩm chính xác — nhưng khi khách muốn thanh toán, bạn phải dừng lại. Tại sao?

Vì hiện nay, hầu hết solution thanh toán AI yêu cầu bạn giữ tiền hộ trước. Khách chuyển tiền vào tài khoản trung gian của nền tảng, rồi nền tảng "chuyển lại" cho bạn sau khi khấu trừ phí. Điều này tạo ra:

AgentPay VN giải quyết điều này hoàn toàn. Tiền đi thẳng vào tài khoản ngân hàng của bạn, không bao giờ nằm ở nơi khác.


AgentPay VN là gì? Cơ chế hoạt động

AgentPay VN là một Python SDK mã nguồn mở (MIT) cho phép AI agent (chatbot, automation) tạo yêu cầu thanh toán VietQR mà không bao giờ giữ tiền.

Cơ chế: 1. Bot tạo một yêu cầu thanh toán → trả về QR code 2. QR code trỏ trực tiếp tới tài khoản ngân hàng của merchant (bạn) 3. Khách quét mã, chuyển tiền vào tài khoản bạn 4. Bank feed (tích hợp từ ngân hàng) xác nhận tiền vào → tự động gửi hàng/mở khoá

Không có trung gian, không có "ví" của platform, không có chờ đợi.


Lợi ích so với các phương án khác

Tiêu chí AgentPay VN Payment Gateway thông thường Chuyển khoản thủ công
Tiền đi đâu Ngay vào tài khoản bạn Giữ ở platform, sau rút ra Tùy khách
Phí 0% (mã mở, tự host) 2-5% + phí 0%
Độ trễ Ngay khi bank confirm 1-3 ngày Không xác định
Tự động hoá Có (bank feed + API) Không
Rủi ro pháp lý Không (không giữ tiền) Cao (trung gian tài chính) Không
Dễ setup Rất dễ (3 dòng code) Phức tạp (KYC, contract) Rất dễ nhưng không tin cậy

Cài đặt AgentPay VN — 2 phút xong

Bước 1: Cài đặt SDK

Mở terminal, chạy:

pip install agentpay-vn

Xong! SDK sẽ tải Python package với các hàm cần thiết.

Bước 2: Cấu hình MCP Server (tuỳ chọn, nhưng nên)

Nếu bạn dùng Claude (hoặc LLM khác support MCP), cài MCP server:

pip install agentpay-mcp

Tạo file claude_config.json trong thư mục config của Claude:

{
  "mcpServers": {
    "agentpay": {
      "command": "python",
      "args": ["-m", "agentpay_mcp"],
      "env": {
        "AGENTPAY_MERCHANT_ID": "your_merchant_id",
        "AGENTPAY_BANK_ACCOUNT": "your_bank_account"
      }
    }
  }
}

Với cấu hình này, Claude có thể gọi AgentPay trực tiếp.


Code thực tế: Tạo yêu cầu thanh toán

Với AgentPay VN, flow thanh toán chỉ có 3 bước:

from agentpay_vn import PaymentRequest, await_settlement

# Bước 1: Tạo yêu cầu thanh toán
payment = PaymentRequest(
    merchant_id="your_merchant_id",
    bank_account="0123456789",        # Tài khoản ngân hàng thực của bạn
    bank_code="MB",                   # Mã ngân hàng (MB = MBBank)
    amount=299000,                    # Số tiền (VND)
    description="Khoá học Python nâng cao",
    order_id="order_20250120_001",    # ID đơn hàng của bạn
    customer_phone="0912345678"       # (tuỳ chọn)
)

# Bước 2: Tạo URL checkout hoặc QR
checkout_url = payment.create_checkout_url()
qr_code = payment.get_qr_image()  # Trả về QR PNG

print(f"Gửi cho khách: {checkout_url}")
print(f"Hoặc hiện QR: {qr_code}")

# Bước 3: Chờ xác nhận từ bank feed
result = await_settlement(
    order_id="order_20250120_001",
    timeout_seconds=600,              # Chờ tối đa 10 phút
    poll_interval=5                   # Kiểm tra mỗi 5 giây
)

if result["status"] == "settled":
    print(f"✅ Tiền đã vào: {result['amount']} VND")
    # Tự động gửi khoá học, kích hoạt tài khoản, v.v.
    send_course_access(customer_phone=payment.customer_phone)
else:
    print(f"❌ Timeout hoặc lỗi: {result['error']}")

Giải thích từng dòng: - PaymentRequest(): Khởi tạo yêu cầu với thông tin merchant + khách hàng - merchant_id, bank_account: Thông tin tài khoản thực của bạn (không phải platform) - amount: Giá tiền sản phẩm (không có phí ẩn) - create_checkout_url(): Trả về link để khách thanh toán (hoặc embed QR) - await_settlement(): Lắng nghe bank feed, chờ xác nhận tiền thực tế vào tài khoản


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

Bạn chạy chatbot (Telegram, Discord, hoặc web) bán khoá học Python. Khi khách nói "Mình muốn mua", bot làm như sau:

from agentpay_vn import PaymentRequest, await_settlement
import asyncio

async def handle_purchase(customer_id: str, course_id: str, course_title: str, price: int):
    """
    Xử lý mua hàng trong bot (gọi từ message handler)
    """

    # 1. Tạo yêu cầu thanh toán
    payment = PaymentRequest(
        merchant_id="mybot_merchant",
        bank_account="0987654321",
        bank_code="VCCB",
        amount=price,
        description=f"Khoá {course_title}",
        order_id=f"course_{customer_id}_{course_id}",
        customer_phone=customer_id  # Dùng ID khách làm identifier
    )

    # 2. Gửi QR/URL cho khách
    qr_image = payment.get_qr_image()
    bot.send_message(
        chat_id=customer_id,
        text=f"🎓 Khoá: {course_title}\n💰 Giá: {price:,} VND\n\n"
             f"Quét mã dưới đây để thanh toán:",
        photo=qr_image
    )

    # 3. Chờ xác nhận (non-blocking với asyncio)
    result = await asyncio.to_thread(
        await_settlement,
        order_id=payment.order_id,
        timeout_seconds=300
    )

    # 4. Tự động cấp quyền
    if result["status"] == "settled":
        bot.send_message(
            chat_id=customer_id,
            text=f"✅ Thanh toán thành công!\n\n"
                 f"📚 Khoá học của bạn:\n"
                 f"🔗 {get_course_link(course_id)}\n"
                 f"🔑 Mật khẩu: {generate_password()}"
        )
        log_purchase(customer_id, course_id, price)  # Ghi sổ
    else:
        bot.send_message(
            chat_id=customer_id,
            text="⏱️ Timeout hoặc thanh toán bị hủy. Vui lòng thử lại."
        )

Kịch bản thực tế: - Khách: "Mua khoá Python Pro" - Bot: Gửi QR (kèm giá 499k) - Khách: Quét QR bằng app ngân hàng, chuyển 499k - Tiền vào account bạn ngay lập tức ✅ - Bot tự động nhận signal từ bank feed - Bot gửi link khoá + password cho khách ✅ - Khách học ngay lập tức ✅

Toàn bộ quá trình < 30 giây, không có trung gian.


Integrtion với LLM Agent (Claude, GPT, v.v.)

Nếu dùng Claude hoặc LLM khác, AgentPay VN cung cấp MCP server để agent tự gọi:

{
  "mcpServers": {
    "agentpay": {
      "command": "python",
      "args": ["-m", "agentpay_mcp"],
      "env": {
        "AGENTPAY_MERCHANT_ID": "my_shop",
        "AGENTPAY_BANK_ACCOUNT": "0123456789",
        "AGENTPAY_BANK_CODE": "MB"
      }
    }
  }
}

Sau đó, Claude có thể tự động: - Nghe yêu cầu mua hàng từ khách - Gọi agentpay.create_payment_request() để tạo QR - Gửi URL/QR cho khách - Gọi agentpay.await_settlement() để chờ tiền - Tự động cấp quyền/gửi hàng

Toàn bộ không cần can thiệp con người!


Những điều nên & không nên làm

✅ Nên làm

❌ Không nên làm


FAQ — Câu hỏi thường gặp

Q1: Tiền mất bao lâu mới vào tài khoản?

A: Ngay sau khi khách chuyển từ app ngân hàng của họ. VietQR là hệ thống real-time, tiền vào trong < 1 phút. AgentPay chỉ chờ bank feed xác nhận (thường 5-10 giây).

Q2: Nếu khách chuyển sai số tiền thì sao?

A: AgentPay so sánh amount dự kiến với tiền thực tế. Nếu không khớp, await_settlement() sẽ return lỗi. Bạn có thể thông báo cho khách: "Bạn chuyển 299k nhưng khoá này 399k, vui lòng chuyển thêm". Tiền chuyển sai không bị "giữ" ở đâu, nó nằm trong tài khoản bạn rồi — bạn phải refund thủ công.

Q3: Có cần API key, auth phức tạp không?

A: Không. AgentPay chỉ cần merchant_id, bank_account, bank_code — tất cả đã biết của bạn. Không cần "secret key" hay "access token" từ platform khác. Máy chủ của bạn chạy SDK → tạo QR → nhận bank feed = hoàn toàn trong kiểm soát.

Q4: Có giữ fee, giữ phí không?

A: Không. AgentPay VN là open-source (MIT), mã mở, không bao giờ giữ tiền. Nếu tự host bank feed (hoặc dùng API ngân hàng trực tiếp), 100% tiền là của bạn. Nếu dùng dịch vụ bank feed của bên thứ ba, họ có thể tính phí, nhưng tiền vẫn là của bạn.

Q5: Hỗ trợ ngân hàng nào?

A: VietQR hỗ trợ hầu hết ngân hàng lớn: MBBank (MB), VietcomBank (VCCB), Techcombank (TCB), ACB, STB, HDB, v.v. Xem danh sách đầy đủ tại AgentPay docs.


Cách thiết lập Bank Feed (tích hợp xác nhận tiền)

AgentPay cần "biết" khi tiền vào tài khoản. Có 2 cách:

Cách 1: Dùng API Ngân hàng (nếu ngân hàng hỗ trợ)

Most ngân hàng VN hiện hỗ trợ API query balance/transaction: - MBBank: API Connect - Techcombank: TechAPI - VietcomBank: API Portal

Bạn cấu hình AgentPay kết nối, nó sẽ poll balance/transaction log định kỳ.

Cách 2: Webhook từ bên thứ ba

Sử dụng dịch vụ bank feed (ví dụ mBank WebService, DaoPayment, v.v.) → service này webhook tiền vào → AgentPay nhận và trigger await_settlement() callback.

Chi tiết setup xem tại: https://agentpay.servicesai.vn/v1/docs


Tóm tắt nhanh


Bước tiếp theo: Bắt đầu ngay hôm nay

  1. Cài SDK: bash pip install agentpay-vn

  2. Xem docs chi tiết & ví dụ: 👉 https://agentpay.servicesai.vn/v1/docs

  3. Fork/star GitHub: 👉 https://github.com/phuocdu/agentpay-vn

  4. Để feedback, báo lỗi: 👉 Issues trên GitHub hoặc discussions

Tức thì bạn đã có hệ thống bán hàng số tự động, không giữ tiền, không rủi ro! Bot của bạn từ giờ có thể bán khoá học, ebook, phần mềm, dịch vụ subscriptions mà không cần lo về tiền bạc — nó vào tài khoản thực bạn ngay lập tức.

Chúc bạn bán hàng vui vẻ! 🎉

Bắt đầu →

← Tất cả bài