Hỏi đáp
Hỏi đáp (FAQ)
Giải đáp những thắc mắc phổ biến nhất về VietQR(@viet-qr) — từ giấy phép, bảo mật đến khả năng tương thích ngân hàng và tuỳ biến giao diện.
Tổng quan & Độ tin cậy
Thư viện này có hoàn toàn miễn phí không?
Có, @viet-qr là một thư viện mã nguồn mở theo giấy phép MIT. Bạn có thể sử dụng miễn phí cho cả dự án cá nhân lẫn thương mại theo các điều khoản của giấy phép MIT.
Các bạn có thu thập dữ liệu người dùng hay giao dịch không?
Hoàn toàn không. Toàn bộ quá trình tạo mã QR diễn ra cục bộ ngay trên trình duyệt của người dùng. Chúng tôi không theo dõi, lưu trữ hay truyền bất kỳ thông tin thanh toán nào về máy chủ — vì chúng tôi không có máy chủ nào để làm việc đó.
Kỹ thuật & Hiệu năng
Thư viện có cần kết nối Internet để hoạt động không?
Không. Thuật toán tạo mã QR và tra cứu mã ngân hàng (Bank BINs) được thực thi hoàn toàn offline (độ phức tạp O(1)) ngay trên trình duyệt (client-side). Không có bất kỳ API call nào được gọi ra ngoài.
Tại sao thư viện này lại "Zero Dependencies"?
Zero dependencies áp dụng cho @viet-qr/core: phần tạo chuỗi EMVCo, kiểm tra CRC16 và tra cứu ngân hàng được xây dựng bằng TypeScript. Các gói hiển thị QR có dependency riêng; bạn có thể chỉ dùng core nếu không cần UI.
Dữ liệu Ngân hàng (Bank BINs) có được tự động cập nhật không?
Thư viện tích hợp sẵn danh mục BIN ngân hàng đi kèm, cho phép bạn truyền vào tên viết tắt (VD: VCB, TCB) và tự động ánh xạ ra mã BIN chính xác với thời gian truy xuất O(1). Dữ liệu này được cập nhật theo mỗi bản phát hành mới; nếu cần danh sách mới nhất theo thời gian thực, bạn có thể dùng hàm fetchBankList() để tải về từ bất kỳ API hoặc CDN nào.
Ngân hàng & Khả năng tương thích
Những ngân hàng nào được hỗ trợ?
Mã QR được tạo theo tiêu chuẩn EMVCo và NAPAS 247, được thiết kế để quét bằng ứng dụng ngân hàng hỗ trợ VietQR. Bạn nên kiểm tra với ứng dụng ngân hàng mục tiêu trước khi triển khai.
Tôi có thể dùng thư viện này với React Native không?
Hiện tại, hệ sinh thái được tối ưu cho nền tảng Web (React, Vue, Svelte, Vanilla JS). Tuy nhiên, vì core là thuần TypeScript, bạn hoàn toàn có thể dùng @viet-qr/core để tạo chuỗi dữ liệu (payload string) và truyền vào một component QR Code bất kỳ của React Native.
Có giới hạn số tiền chuyển khoản khi quét mã QR này không?
Payload chấp nhận số tiền nguyên không âm, tối đa 13 chữ số. Hạn mức chuyển khoản thực tế do ứng dụng ngân hàng và chính sách của ngân hàng quyết định.
Tính năng & Tuỳ biến
Tại sao nên dùng thư viện này thay vì tải ảnh QR tĩnh từ web ngân hàng?
Với @viet-qr, bạn có thể sinh mã QR Động (Dynamic QR) theo từng đơn hàng. Mã QR sinh ra đã đính kèm sẵn Số tiền (Amount) và Nội dung chuyển khoản (Message). Khách hàng chỉ việc quét và xác nhận, giảm thao tác nhập lại. Người chuyển vẫn cần kiểm tra thông tin trước khi xác nhận.
Thư viện có hỗ trợ tuỳ chỉnh giao diện (màu sắc, logo) của mã QR không?
Hoàn toàn có. Các framework wrappers (React, Vue, Svelte, Vanilla) đi kèm sẵn các template dựng sẵn như CompactCard và PayStandee, giúp bạn dễ dàng tuỳ chỉnh màu sắc, kích thước và chèn logo để phù hợp với Brand Guideline của doanh nghiệp.
Thư viện có hỗ trợ kiểm tra trạng thái thanh toán (đã nhận được tiền hay chưa) không?
Không. @viet-qr chỉ chịu trách nhiệm sinh mã QR chuẩn xác ở phía Frontend. Để kiểm tra biến động số dư và trạng thái thanh toán, bạn cần tích hợp Webhook hoặc API từ Ngân hàng (hoặc các bên thứ ba như PayOS, SePay) ở phía Backend.
Vẫn còn thắc mắc?
Không tìm thấy câu trả lời bạn cần? Vui lòng liên hệ với đội ngũ của chúng tôi.
Liên hệ ngay