Tích Hợp VietQR API: Tự Động Hóa Chuyển Khoản Ngân Hàng 0% Phí

“Chuyển khoản rồi chụp màn hình gửi mình nhé!” – Câu nói này đã trở thành dĩ vãng nhờ sự ra đời của VietQR. Đây là chuẩn QR Code thống nhất do NAPAS và các ngân hàng Việt Nam xây dựng, cho phép tạo mã QR động chứa sẵn thông tin số tiền và nội dung chuyển khoản.

Nếu bạn muốn một giải pháp thanh toán Nhanh – Rẻ – Tiện mà không cần qua trung gian ví điện tử hay cổng thanh toán, VietQR API chính là “chân ái”.

1. Ưu Điểm Tuyệt Đối Của VietQR

  • Tiền về ngay lập tức (Real-time): Tiền ting ting trong tài khoản người bán chỉ sau 1-3 giây.
  • Phí 0 đồng: Hầu hết các ngân hàng hiện nay đều miễn phí chuyển khoản 24/7. Bạn tiết kiệm được 2-3% phí so với dùng cổng thanh toán.
  • Tự động xác nhận (Auto-confirm): Với API của JAYbranding, website sẽ tự động biết khi nào tiền về để kích hoạt đơn hàng, không cần kế toán check tay.

2. Hai Cách Tích Hợp VietQR

Cách 1: VietQR Static (Tĩnh) – Dành cho shop nhỏ

Tạo 1 mã QR cố định chứa số tài khoản. Khách quét -> Tự nhập số tiền -> Chuyển. Cách này dễ nhầm lẫn và khó quản lý.

Cách 2: VietQR Dynamic (Động) – Dành cho doanh nghiệp

Mỗi đơn hàng sinh ra 1 mã QR khác nhau, chứa sẵn số tiền và mã đơn hàng (Ví dụ: DONHANG123). Khách chỉ cần bấm xác nhận, không cần nhập gì thêm.

3. Hướng Dẫn Tích Hợp VietQR API (Qua Cổng Casso/SePay)

Vì Ngân hàng không Public API biến động số dư cho cá nhân, chúng ta cần một bên thứ 3 (như Casso, SePay) để “lắng nghe” sms/app ngân hàng và gọi webhook về website.

Bước 1: Tạo VietQR Link

Sử dụng API của VietQR.io để tạo ảnh QR Code.

// Format: https://img.vietqr.io/image/[BANK]-[ACCOUNT]-[TEMPLATE].png?amount=[AMOUNT]&addInfo=[CONTENT]
$bank = "MB";
$account = "0909999999";
$amount = "50000";
$content = "DH12345"; // Mã đơn hàng ngắn gọn
$qr_url = "https://img.vietqr.io/image/$bank-$account-compact.png?amount=$amount&addInfo=$content";

// Hiển thị ảnh này cho khách hàng
echo '';

Bước 2: Xử Lý Webhook (Khi tiền về)

Khi có tiền vào tài khoản, Casso/SePay sẽ bắn dữ liệu JSON về URL của bạn.

// File: webhook_vietqr.php
$data = json_decode(file_get_contents('php://input'), true);

if (!empty($data['transactions'])) {
    foreach ($data['transactions'] as $trans) {
        $amount = $trans['amount']; // Số tiền nhận được
        $description = $trans['description']; // Nội dung CK: "NGUYEN VAN A CHUYEN KHOAN DH12345..."
        
        // Phân tích nội dung để lấy mã đơn hàng
        preg_match('/DH[0-9]+/', $description, $matches);
        if (!empty($matches[0])) {
             $orderId = $matches[0];
             
             // Kiểm tra số tiền có khớp đơn hàng không
             // Nếu khớp -> Cập nhật trạng thái "Đã thanh toán"
             // Gửi email cảm ơn khách hàng
        }
    }
}
// Phản hồi cho Casso biết đã nhận tin
echo json_encode(['success' => true]);

4. Rủi Ro Cần Lưu Ý

  • Delay tin nhắn: Đôi khi ngân hàng gửi SMS chậm -> Webhook chậm -> Khách chờ lâu.
  • Khách nhập sai nội dung: Dù đã có QR, khách vẫn có thể sửa nội dung chuyển khoản -> Hệ thống không tự động khớp được đơn. Cần quy trình check tay dự phòng.

5. Giải Pháp JAYbranding “VietQR Pro”

Chúng tôi cung cấp giải pháp VietQR toàn diện khắc phục mọi nhược điểm:

  • Virtual Account (Tài khoản ảo): Mỗi khách hàng/đơn hàng một số tài khoản riêng biệt (Ví dụ: 9999 + Mã đơn). Dù khách không ghi nội dung, tiền vào số này là biết ngay của đơn nào. Chính xác 100%.
  • Real-time WebSocket: Cập nhật trạng thái đơn hàng trên màn hình khách ngay lập tức không cần reload trang.
  • Tích hợp Smart Banking: Hỗ trợ Deep Link mở thẳng App ngân hàng của khách (VCB, TCB, MB…) trên điện thoại.

📞 Tiết kiệm hàng trăm triệu tiền phí với VietQR!
Tư vấn ngay: 0899991131

FAQ Về VietQR API

[faqs]

VietQR hỗ trợ những ngân hàng nào?

Hơn 50 ngân hàng thành viên NAPAS (gần như tất cả ngân hàng tại Việt Nam).

Có giới hạn số tiền chuyển không?

Tùy thuộc hạn mức chuyển khoản của tài khoản ngân hàng khách hàng (thường là 500 triệu – 1 tỷ/ngày).

[/faqs]

JAY AI

J.A.I — JAY AI

Trợ lý tư vấn JAYbranding