Thêm thanh toán VietQR cho AI agent chỉ trong 10 phút

2026-09-23 · AgentPay VN

aipythonvietqrmcpthanh toán

Bạn đang gặp vấn đề này?

Bạn vừa xây dựng một bot Discord bán khóa học online, hoặc một AI agent tư vấn kiếm tiền cho quán cà phê của mình. Mọi thứ hoạt động tuyệt vời—trừ một chi tiết: khi khách hàng muốn mua, bạn không có cách nào để nhận tiền trực tiếp.

Các giải pháp thường thấy như Stripe, PayPal lại quá phức tạp, yêu cầu webhook, xử lý thanh toán phức tạp, và còn phải lo về việc giữ tiền của khách. Bạn chỉ muốn: khách quét QR → tiền chuyển vào tài khoản ngân hàng của bạn → xong. Không muốn tự mình làm "ngân hàng mini".

Đó là lý do AgentPay VN tồn tại.

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

AgentPay VN là một Python SDK open-source (MIT) + MCP server được thiết kế riêng để AI agent (chatbot, Discord bot, autonomous agent) có thể nhận thanh toán VietQR mà không bao giờ giữ tiền.

Hãy hiểu rõ điều này:

Dều không đơn giản hơn thế đâu.

Yêu cầu và chuẩn bị

Trước khi bắt tay vào, hãy chắc chắn bạn có:

  1. Python 3.8+ (kiểm tra bằng python --version)
  2. Kết nối internettài khoản ngân hàng Việt Nam hỗ trợ VietQR
  3. pip (thường đã có sẵn nếu bạn cài Python)
  4. (Tùy chọn) Một IDE hoặc text editor (VS Code, PyCharm...)

Có thế—bạn đã sẵn sàng.

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

Mở terminal/command prompt và chạy:

pip install agentpay-vn

Xong! SDK đã nằm trong project của bạn. Để kiểm tra, gõ:

python -c "import agentpay_vn; print('AgentPay VN sẵn sàng!')"

Nếu thấy dòng AgentPay VN sẵn sàng! → bạn đã thành công.

Bước 2: Viết code tạo payment request đầu tiên

Dây là code cơ bản nhất để tạo một yêu cầu thanh toán:

from agentpay_vn import PaymentRequest

# Bước 1: Tạo request thanh toán
payment = PaymentRequest(
    amount=500000,              # Số tiền (đơn vị: VND)
    description="Khóa học Python cơ bản",  # Mô tả giao dịch
    merchant_id="your_bank_account_id",  # ID tài khoản ngân hàng của bạn
    order_id="COURSE_001_2024"  # ID đơn hàng duy nhất
)

# Bước 2: Lấy checkout URL (link để khách quét QR)
checkout_url = payment.get_checkout_url()
print(f"Gửi link này cho khách: {checkout_url}")

# Bước 3: Chờ thanh toán xác nhận
settlement = payment.await_settlement(timeout_seconds=600)  # Chờ tối đa 10 phút

if settlement.is_confirmed:
    print(f"✅ Thanh toán thành công! Tiền vào tài khoản lúc {settlement.timestamp}")
else:
    print("❌ Thanh toán không xác nhận hoặc hết timeout")

Giải thích từng dòng:

Bước 3: Tích hợp với AI agent của bạn (MCP)

Nếu bạn dùng Claude hoặc một AI agent hỗ trợ MCP (Model Context Protocol), bạn có thể cho phép agent gọi hàm thanh toán tự động.

Cài đặt MCP server:

pip install agentpay-mcp

Then, thêm vào Claude's claude_desktop_config.json (hoặc config của agent bạn):

{
  "mcpServers": {
    "agentpay": {
      "command": "python",
      "args": ["-m", "agentpay_mcp.server"],
      "env": {
        "MERCHANT_ID": "your_bank_account_id",
        "BANK_ACCOUNT": "123456789",
        "BANK_CODE": "970422"  // ví dụ: Techcombank
      }
    }
  }
}

Sau đó, Claude sẽ có thể gọi hàm create_payment_request trực tiếp:

Claude: "Khách muốn mua khóa học này với giá 299,000 VNĐ. Để tôi tạo link thanh toán."
→ Claude gọi create_payment_request(amount=299000, description="Khóa học")
→ Trả về checkout_url
→ Claude: "Vui lòng quét QR ở đây: [link]. Tôi sẽ chờ xác nhận."

Magic!

Kịch bản đời thực: Bot bán khóa học Discord

Hãy xem một ví dụ hoàn chỉnh—bot Discord bán khóa học Python:

import discord
from discord.ext import commands
from agentpay_vn import PaymentRequest

bot = commands.Bot(command_prefix="!")

COURSES = {
    "python_basics": {"name": "Python cơ bản", "price": 199000},
    "web_dev": {"name": "Web Development", "price": 499000},
}

@bot.command(name="buy")
async def buy_course(ctx, course_code: str):
    if course_code not in COURSES:
        await ctx.send("❌ Khóa học không tồn tại. Dùng `!courses` để xem danh sách.")
        return

    course = COURSES[course_code]

    # Tạo payment request
    payment = PaymentRequest(
        amount=course["price"],
        description=f"Khóa học: {course['name']}",
        merchant_id="your_merchant_id",
        order_id=f"DISCORD_{ctx.author.id}_{course_code}"
    )

    checkout_url = payment.get_checkout_url()

    # Gửi checkout link
    embed = discord.Embed(
        title=f"Mua: {course['name']}",
        description=f"Giá: {course['price']:,} VNĐ\n\n[👉 Quét QR tại đây]({checkout_url})",
        color=discord.Color.green()
    )
    await ctx.send(embed=embed)
    await ctx.send("⏳ Đang chờ xác nhận thanh toán...")

    # Chờ settlement
    settlement = payment.await_settlement(timeout_seconds=600)

    if settlement.is_confirmed:
        await ctx.send(f"✅ **Cảm ơn bạn!** Khóa học **{course['name']}** đã được mở khóa. Link học: [tại đây](https://agentpay.servicesai.vn/courses/{course_code})")
        # Ở đây, bạn có thể update database, gửi khóa học...
    else:
        await ctx.send("❌ Thanh toán không hoàn tất. Vui lòng thử lại.")

bot.run("YOUR_DISCORD_TOKEN")

Cách hoạt động:

  1. Người dùng gõ !buy python_basics
  2. Bot tạo payment request cho khóa học Python cơ bản (199,000 VNĐ)
  3. Bot gửi link checkout với QR code
  4. Khách quét QR, chuyển tiền
  5. Bank feed xác nhận → await_settlement() trả về kết quả
  6. Bot tự động mở khóa khóa học cho khách

Không webhook, không polling, không phức tạp. Chỉ là: tạo → chờ → xong.

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

Tiêu chí AgentPay VN Stripe PayPal Momo API
Cài đặt 3 dòng 50+ dòng 100+ dòng 200+ dòng
Thời gian tích hợp 10 phút 2-3 giờ 3-4 giờ 5-8 giờ
Giữ tiền Không (QR trỏ tài khoản bạn) Có (rút ra mất 1-3 ngày)
Phí ẩn 0% (open-source) 2.9% + $0.30 2.2% 0.5%
Hỗ trợ VietQR ✅ Tối ưu ❌ Không ❌ Không ✅ Nhưng phức tạp
AI agent friendly ✅ Có MCP ❌ Không ❌ Không ❌ Không
Open-source ✅ MIT ❌ Proprietary ❌ Proprietary ❌ Proprietary

Kết luận: AgentPay VN thắng ngoài cùng cho AI agent Việt Nam.

Nên/Không nên làm gì

✅ Nên làm

❌ Không nên làm

Cấu hình nâng cao

Sử dụng .env file

Tạo file .env trong root project:

MERCHANT_ID=your_bank_account_id
BANK_ACCOUNT=123456789
BANK_CODE=970422
AGENTPAY_ENV=production

Rồi load trong code:

from dotenv import load_dotenv
import os

load_dotenv()

merchant_id = os.getenv("MERCHANT_ID")
bank_account = os.getenv("BANK_ACCOUNT")

Retry logic

Nếu agent của bạn muốn retry khi hết timeout:

from agentpay_vn import PaymentRequest
import time

def create_payment_with_retry(amount, description, max_retries=3):
    for attempt in range(max_retries):
        try:
            payment = PaymentRequest(
                amount=amount,
                description=description,
                merchant_id="your_merchant_id",
                order_id=f"ORDER_{int(time.time())}_{attempt}"
            )
            return payment
        except Exception as e:
            print(f"Lần {attempt + 1}: Lỗi - {e}")
            if attempt < max_retries - 1:
                time.sleep(2)  # Chờ 2 giây trước retry

    return None

FAQ

1. Ngân hàng nào hỗ trợ VietQR?

Hầu hết ngân hàng Việt Nam đều hỗ trợ VietQR: Vietcombank, Techcombank, ACB, MB, VIB, Agribank... Nếu không chắc, liên hệ ngân hàng của bạn yêu cầu kích hoạt VietQR cho tài khoản.

2. Tiền mất bao lâu để về tài khoản?

VietQR thường xác nhận trong 15-30 giây. Bank feed của AgentPay VN sẽ phát hiện ngay, và agent của bạn sẽ nhận biết tức thì. Tiền sẽ hiển thị trong app ngân hàng bạn sau vài phút (tùy ngân hàng).

3. Có phí nào không?

AgentPay VN hoàn toàn miễn phí (open-source MIT). Tuy nhiên, ngân hàng của bạn có thể tính phí chuyển khoản nếu khách chuyển từ ngân hàng khác (thường 0-3,000 VNĐ)—nhưng điều này không liên quan đến AgentPay VN.

4. Có thể tích hợp với Telegram bot được không?

Có! Điều duy nhất bạn cần là gửi checkout_url cho user. Khi user quét QR và thanh toán, await_settlement() sẽ nhận biết. Bạn có thể dùng Telegram bot API để gửi thông báo khi thanh toán xong.

from telegram import Bot

bot = Bot(token="YOUR_TELEGRAM_BOT_TOKEN")

# ... sau khi settlement.is_confirmed
bot.send_message(chat_id=user_chat_id, text="✅ Thanh toán thành công!")

Tóm tắt nhanh

Bước tiếp theo

Bạn đã sẵn sàng để thêm thanh toán vào AI agent của mình!

  1. Cài đặt: pip install agentpay-vn
  2. Đọc docs chi tiết: https://agentpay.servicesai.vn/v1/docs
  3. Xem code trên GitHub: https://github.com/phuocdu/agentpay-vn
  4. Viết code đầu tiên: Copy ví dụ trên, thay merchant_id của bạn, chạy thử.
  5. Tích hợp MCP (nếu dùng Claude): Theo hướng dẫn cấu hình MCP ở trên.

Hãy bắt đầu hôm nay. Trong 10 phút, agent của bạn sẽ biết cách nhận tiền. Sau đó, bạn có thể tập trung vào những điều thực sự quan trọng—như xây dựng sản phẩm tuyệt vời.

Câu hỏi? Tham gia cộng đồng AgentPay VN trên GitHub hoặc kiểm tra docs. Chúc bạn thành công! 🚀

Bắt đầu →

← Tất cả bài