Bán hàng số qua chatbot AI không cần giữ tiền: Hướng dẫn AgentPay VN

2026-08-12 · AgentPay VN

agentpayai-agentspythonvietqrmcp

Nỗi đau khi bán sản phẩm số qua AI chatbot

Bạn vừa xây dựng một AI chatbot bán khoá học trực tuyến, phần mềm, hoặc dịch vụ kỹ thuật. Mỗi khi khách yêu cầu mua, bot phải:

  1. Tạo hoá đơn, ghi lại thông tin thanh toán
  2. Chuyển tiền vào ví trung gian (Stripe, PayPal, hay ngân hàng công ty)
  3. Quản lý tài khoản trung gian, lo lắng về an toàn dữ liệu
  4. Chờ hàng ngày hoặc hàng tuần mới rút được tiền về tài khoản cá nhân
  5. Xử lý khiếu nại, hoàn tiền một cách thủ công

Vấn đề: bạn chính mình đang giữ tiền của khách hàng, rủi ro pháp lý, phức tạp kế toán, và người dùng không thấy an tâm.

Nếu bạn là startup hoặc cá nhân, việc này thực sự không cần thiết. Tại sao không cho khách trả tiền trực tiếp vào tài khoản ngân hàng của bạn mà vẫn tự động hóa toàn bộ quy trình bán hàng?

Đó là lý do AgentPay VN được sinh ra.

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

AgentPay VN là một bộ công cụ mã nguồn mở (MIT license), viết bằng Python, cho phép AI agent và chatbot của bạn:

Điểm khác biệt quan trọng nhất: AgentPay VN KHÔNG BAOGIỜ giữ tiền bạn. Đó là lý do tại sao nó an toàn và nhẹ nhàng.

Kiến trúc đơn giản: 3 bước

1. create_payment_request(amount=99000, description="Khoá học Python")
   ↓
2. send_checkout_url_to_user(checkout_url)
   ↓
3. await_settlement(payment_id)
   ↓ (Xác nhận từ ngân hàng) ↓
   Giao hàng tự động

Cài đặt AgentPay VN: Chỉ cần một lệnh

Nếu bạn đã có môi trường Python 3.8+:

pip install agentpay-vn

Xong! SDK đã sẵn sàng để import trong code Python của bạn.

Nếu bạn muốn chạy AgentPay dưới dạng MCP server (để dùng với Claude hoặc các AI model khác):

pip install agentpay-vn
agentpay-mcp start --port 3000

Quy trình 3 bước: Tạo → Gửi → Chờ nhận tiền

Bước 1: Tạo yêu cầu thanh toán

from agentpay_vn import PaymentClient

# Khởi tạo client (cần config ngân hàng: số tài khoản, tên chủ tài khoản)
client = PaymentClient(
    account_number="1234567890",
    account_holder="Nguyen Van A",
    bank_code="970418"  # MB Bank
)

# Tạo yêu cầu thanh toán
payment_request = client.create_payment_request(
    amount=99000,  # VNĐ
    description="Khoá học Python cơ bản",
    reference_id="COURSE_001_2024"  # ID duy nhất của hóa đơn
)

print(f"Payment ID: {payment_request.payment_id}")
print(f"VietQR URL: {payment_request.checkout_url}")

Giải thích: - amount: số tiền khách phải trả (tính bằng VNĐ) - description: lý do thanh toán (khách sẽ thấy trên ứng dụng banking) - reference_id: ID riêng để bạn theo dõi trong hệ thống của bạn - checkout_url: QR code / link mà bạn gửi cho khách (để khách quét hoặc click)

Bước 2: Gửi checkout_url cho khách qua chatbot

# Ví dụ: AI agent gửi tin nhắn cho khách
async def send_invoice_to_customer(customer_id, payment_request):
    message = f"""
    🎉 Đơn hàng của bạn đã được tạo!

    💰 Tổng tiền: {payment_request.amount:,} VNĐ
    📦 Sản phẩm: {payment_request.description}

    Vui lòng thanh toán bằng cách quét mã QR dưới đây:
    {payment_request.checkout_url}

    Sau khi thanh toán, bạn sẽ nhận được link tải khoá học ngay lập tức.
    """

    # Gửi qua Telegram, WhatsApp, hoặc bất kỳ kênh nào
    await send_message(customer_id, message)

Bước 3: Chờ và xác nhận thanh toán

import asyncio
from agentpay_vn import await_settlement

async def process_payment_and_deliver(payment_id, customer_id, course_data):
    # Chờ xác nhận từ ngân hàng (timeout = 30 phút)
    settlement = await await_settlement(
        payment_id=payment_id,
        timeout=1800  # giây
    )

    if settlement.confirmed:
        print(f"✅ Thanh toán thành công: {settlement.amount} VNĐ")

        # Giao hàng tự động
        delivery_link = generate_course_access_link(course_data, customer_id)
        await send_message(
            customer_id,
            f"🎓 Đây là link truy cập khóa học của bạn:\n{delivery_link}"
        )
    else:
        print(f"❌ Thanh toán bị hủy hoặc hết hạn")
        # Gửi thông báo cho khách

Điểm quan trọng: await_settlement() là hàm async, nó sẽ chặn cho đến khi ngân hàng xác nhận tiền đã vào tài khoản của bạn. Bạn có thể để chạy nền (background task) trong ứng dụng.

Tích hợp với Claude / AI agents: Cấu hình MCP Server

Nếu bạn dùng Claude hoặc các AI model hỗ trợ MCP (Model Context Protocol), bạn có thể để AI tự gọi các hàm của AgentPay:

Bước 1: Khởi động MCP server

agentpay-mcp start --port 3000 --account-number 1234567890 --account-holder "Nguyen Van A" --bank-code 970418

Bước 2: Cấu hình Claude (hoặc AI client)

Tạo file claude_config.json:

{
  "mcpServers": {
    "agentpay": {
      "command": "agentpay-mcp",
      "args": [
        "start",
        "--port", "3000"
      ],
      "env": {
        "AGENTPAY_ACCOUNT_NUMBER": "1234567890",
        "AGENTPAY_ACCOUNT_HOLDER": "Nguyen Van A",
        "AGENTPAY_BANK_CODE": "970418"
      }
    }
  }
}

Sau đó, Claude sẽ có thể gọi trực tiếp: - create_payment_request → tạo đơn hàng - await_settlement → kiểm tra thanh toán - generate_checkout_url → phát hành QR code

Bước 3: Prompt cho Claude

Bạn là chatbot bán hàng số. Khi khách yêu cầu mua sản phẩm:
1. Xác nhận sản phẩm và giá tiền
2. Dùng AgentPay để tạo payment request
3. Gửi checkout_url (QR code) cho khách
4. Chờ xác nhận từ await_settlement
5. Nếu thanh toán thành công, giao hàng ngay (gửi link, file, hoặc thông tin)

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

Giả sử bạn chạy một platform bán khoá học, và có một Telegram bot hỏi khách:

Khách: "Mình muốn mua khoá học Python nâng cao. Giá bao nhiêu?"

Bot:

📚 Khoá học "Python Nâng Cao" của chúng tôi:
- Giá: 299,000 VNĐ
- Bao gồm: 50 video, 10 bài tập, 1 project cuối khóa
- Truy cập trọn đời

Bạn có muốn mua không?

Khách: "Có, mình mua"

Backend (Python code):

async def handle_purchase(customer_id, course_id="python_advanced"):
    course = get_course_info(course_id)

    # Bước 1: Tạo thanh toán
    payment = client.create_payment_request(
        amount=299000,
        description=f"Khoá học: {course['name']}",
        reference_id=f"{customer_id}_{course_id}_{int(time.time())}"
    )

    # Bước 2: Gửi QR cho khách
    await telegram_bot.send_message(
        customer_id,
        f"🔗 Quét mã QR để thanh toán:\n{payment.checkout_url}"
    )

    # Bước 3: Chờ thanh toán (background task)
    asyncio.create_task(
        wait_and_deliver(payment.payment_id, customer_id, course_id)
    )

async def wait_and_deliver(payment_id, customer_id, course_id):
    settlement = await await_settlement(payment_id, timeout=1800)

    if settlement.confirmed:
        # Tạo access link cho khách
        access_token = create_course_access(
            customer_id=customer_id,
            course_id=course_id
        )

        await telegram_bot.send_message(
            customer_id,
            f"✅ Thanh toán thành công!\n🎓 Link khóa học: https://academy.example.com/course/{course_id}?token={access_token}"
        )

Kết quả: Khách quét QR, trả tiền vào tài khoản bạn, và ngay lập tức bot gửi link truy cập. Bạn không giữ tiền, không cần ví trung gian, đơn giản và an toàn.

So sánh: AgentPay vs. Các giải pháp khác

Tiêu chí AgentPay VN Stripe PayPal Ngân hàng thông thường
Mã nguồn mở N/A
Không giữ tiền ❌ (giữ 2-3 ngày) ❌ (giữ tiền) ❌ (phức tạp)
Hỗ trợ VietQR ✅ (nhưng phức tạp)
Cài đặt ≤ 5 phút ❌ (phải KYC, tài liệu) ❌ (phải KYC) ❌ (hàng ngày)
Hỗ trợ AI/MCP ❌ (chỉ API) ❌ (chỉ API) N/A
Phí giao dịch 0% 2.9% + 0.3 USD 2.2% + 0.3 USD ~0% (nhưng phí duy trì)
Tích hợp Python SDK ✅ Dễ ✅ Bình thường ✅ Bình thường ❌ Phức tạp

Các câu hỏi thường gặp (FAQ)

1. AgentPay có an toàn không? Có bị hack?

AgentPay chỉ là cầu nối — nó tạo QR code và chờ xác nhận từ ngân hàng. Tiền luôn đi thẳng vào tài khoản ngân hàng của bạn, không qua bất kỳ máy chủ trung gian nào. Bạn chỉ cần bảo vệ tài khoản ngân hàng của mình (2FA, mật khẩu mạnh), giống như bình thường. Vì mã nguồn mở, bạn có thể xem code để kiểm tra.

2. Làm sao để khách biết được tiền đã chuyển thành công?

Ngân hàng sẽ báo cáo trong vòng vài giây đến vài phút qua bank feed (API hoặc tệp CSV định kỳ). Hàm await_settlement() chờ xác nhận này, sau đó bot sẽ thông báo cho khách. Nếu ngân hàng không báo cáo trong 30 phút, ứng dụng sẽ hết thời gian chờ (timeout).

3. Có thể hoàn tiền không?

Có, nhưng quá trình hoàn tiền là thủ công — khách phải yêu cầu, bạn kiểm tra, rồi chuyển tiền lại qua tài khoản ngân hàng của họ. AgentPay chưa tự động hoá phần này, vì nó tập trung vào nhận tiền, không phải quản lý hoàn tiền.

4. Có thể cài đặt trên Windows/Mac/Linux không?

Có. Miễn là bạn cài Python 3.8+. Chạy pip install agentpay-vn trên bất kỳ hệ điều hành nào. Nếu chạy MCP server, chỉ cần đảm bảo cổng 3000 (hoặc cổng khác) không bị chiếm.

Những điểm cần lưu ý (Nên & Không nên)

NÊN làm

KHÔNG nên làm

Tóm tắt nhanh

Bước tiếp theo: Hãy thử ngay!

Nếu bạn đã sẵn sàng tích hợp thanh toán VietQR vào AI agent của mình:

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

  2. Đọc tài liệu chi tiết: https://agentpay.servicesai.vn/v1/docs

  3. Clone repo (hoặc fork) để xem code mẫu: bash git clone https://github.com/phuocdu/agentpay-vn cd agentpay-vn pip install -e .

  4. Chạy ví dụ: bash python examples/simple_payment.py

  5. Khởi động MCP server (nếu muốn dùng Claude): bash agentpay-mcp start

Không có lý do gì để chuyển tiền khách vào ví trung gian nữa. Làm đơn giản, làm nhanh, làm an toàn — đó là triết lý của AgentPay VN.

Hãy bắt đầu bán sản phẩm số của bạn qua AI chatbot, mà không cần lo giữ tiền. 🚀

Bắt đầu →

← Tất cả bài