QR Code Generator API
Bạn có thể tạo và tùy chỉnh QR code với QR Code Generator web API tại qr-artists.3si.vn.
1.0 Tính năng chính
- Tạo QR codes qua Internet (phát triển ứng dụng QR code generator của riêng bạn)
- QR code với logo (nhúng logo hoặc hình ảnh vào giữa QR code)
- Tạo QR codes với màu sắc tùy chỉnh
- Tùy chỉnh style cho dots và corners
- Hỗ trợ gradient colors
- Hiệu suất cao
- Giao tiếp mã hóa qua HTTPS (SSL/TLS)
Thử ngay, tạo một hình ảnh
Gọi URL https://qr-artists.3si.vn/qrcode/generate/?width=200&height=200&data=Example để tạo QR code với nội dung "Example":
Bây giờ thay thế "Example" trong URL để tạo QR code mới với văn bản bạn chọn. Bạn có thể tìm thấy mô tả chi tiết và ví dụ trong tài liệu API bên dưới.
2.0 Hướng dẫn nhanh
Gửi GET request theo form sau để nhận QR code graphic dưới dạng PNG image:
https://qr-artists.3si.vn/qrcode/generate/?data=[URL-encoded-text]&width=[pixels]&height=[pixels]
Test trực tiếp trong trình duyệt bằng cách gọi URL sau:
https://qr-artists.3si.vn/qrcode/generate/?data=HelloWorld!&width=200&height=200
Như bạn có thể thấy, dễ dàng nhúng QR code vào tài liệu (X)HTML bằng cách sử dụng thẻ <img>. Thẻ <img>
<img src="https://qr-artists.3si.vn/qrcode/generate/?data=HelloWorld&width=200&height=200" alt="" title="" />
tạo ra / hiển thị QR code image sau:
3.0 Tham số API
API hỗ trợ nhiều tham số để cấu hình việc tạo QR code. Đơn giản sử dụng thêm tham số bằng cách thêm &[parameter-name]=[parameter-value] vào request.
Tất cả tham số có thể được gửi bằng HTTP-GET hoặc HTTP-POST. Bạn cũng có thể kết hợp cả hai phương thức. Nếu một tham số được gửi bằng cả POST và GET cùng lúc, giá trị GET sẽ được sử dụng và giá trị POST sẽ bị bỏ qua.
3.1 Tham số data (bắt buộc)
Văn bản để lưu trữ trong QR code (URL encoded, lập trình viên PHP có thể sử dụng urlencode()).
-
Số ký tự tối thiểu:
1 -
Số ký tự tối đa:
Phụ thuộc vào tham số ecc (càng nhiều dữ liệu dự phòng được sử dụng, càng ít ký tự vừa trong QR code) và các yếu tố khác. Tuy nhiên, tối đa 900 ký tự thường hoạt động tốt. -
Best practice:
Càng ngắn càng tốt. Vì nhiều điện thoại cũ có vấn đề với QR codes >Version 4 (ma trận 33×33 modules), bạn nên sử dụng càng ít dữ liệu càng tốt. Chúng tôi khuyên sử dụng URL shorteners như bitly cho URL rất dài.
3.2 Tham số width và height (tùy chọn)
Chỉ định kích thước của QR code image bạn muốn tạo (tính bằng px cho định dạng raster như png, gif hoặc jpeg)
-
Format:
[integer] (riêng biệt cho width và height) -
Giá trị tối thiểu:
50 -
Giá trị tối đa:
1000 (nếu format=png|gif|jpeg|jpg) -
Ví dụ hợp lệ:
width=200&height=200
width=750&height=750 -
Ví dụ không hợp lệ:
width=90000 (lớn hơn kích thước tối đa)
width=9 (nhỏ hơn kích thước tối thiểu) -
Mặc định (sẽ được sử dụng nếu không có hoặc giá trị không hợp lệ):
width=200&height=200
3.3 Tham số ecc (tùy chọn)
Xác định mã sửa lỗi (ECC) quyết định mức độ dự phòng dữ liệu. Càng nhiều dự phòng dữ liệu, càng nhiều dữ liệu có thể được khôi phục nếu QR code bị hư hỏng.
-
Các giá trị có thể:
L (thấp, ~7% dữ liệu bị hủy có thể được sửa)
M (trung bình, ~15% dữ liệu bị hủy có thể được sửa)
Q (chất lượng, ~25% dữ liệu bị hủy có thể được sửa)
H (cao, ~30% dữ liệu bị hủy có thể được sửa) -
Mặc định:
Q
3.4 Tham số màu sắc (tùy chọn)
Các tham số màu sắc cho QR code:
-
dotsColor: Màu của các dots trong QR code
cornersSquareColor: Màu của các góc vuông
cornersDotColor: Màu của các dots ở góc
backgroundColor: Màu nền
Format: Hex color (ví dụ: #FF0000, #00FF00) -
Ví dụ:
dotsColor=#0000FF&backgroundColor=#FFFFFF (dots xanh, nền trắng)
3.5 Tham số style (tùy chọn)
Các tham số style cho QR code:
-
dotsStyle: Kiểu dáng cho các dots trong QR code
cornersSquareStyle: Kiểu dáng cho các góc vuông
cornersDotStyle: Kiểu dáng cho các dots ở góc
Các giá trị có thể:
square - Hình vuông (mặc định)
rounded - Hình vuông bo tròn
dots - Hình tròn
extra-rounded - Hình vuông bo tròn nhiều
classy - Kiểu sang trọng với chi tiết bên trong
classy-rounded - Kiểu sang trọng tròn với chi tiết bên trong
none - Không áp dụng style riêng - Hỗ trợ: Tất cả các style này được hỗ trợ đầy đủ trong cả hai endpoints /qrcode/generate và /qrcode/generate.
3.6 Tham số margin (tùy chọn)
Độ dày của margin tính bằng pixels. Margin sẽ luôn có cùng màu với background.
-
Format:
[integer] -
Giá trị tối thiểu:
0 (=không có margin) -
Giá trị tối đa:
50 -
Ví dụ hợp lệ:
1
19 -
Mặc định:
0
3.7 Tham số format (tùy chọn)
Có thể tạo QR code picture sử dụng các định dạng file khác nhau:
-
Các giá trị có thể:
png
gif
jpeg
jpg
bmp
webp
tiff
qoi
tga -
Mặc định:
png -
Best practice:
Cho website: png hoặc webp. JPEG được phát triển cho hình ảnh tự nhiên, kết quả kém hơn PNG/WebP cho line drawings.
3.8 Tham số logo hoặc imageFile (tùy chọn)
-
Format:
[string] - URL của hình ảnh -
Chỉ hỗ trợ URL:
Ví dụ: &logo=https://dummyimage.com/100/09f/fff.png -
Định dạng hỗ trợ:
png, jpeg, jpg, bmp, webp
Có thể tạo QR code bằng cách thêm logo. Sử dụng logo trong QR code có thể thêm branding và visual appeal, làm cho code dễ nhận biết và hấp dẫn hơn.
-
Tỷ lệ với kích thước QR Code: Logo nên tỷ lệ với kích thước QR code. Theo quy tắc chung, logo nên chiếm không quá 15-25% tổng diện tích QR code.
-
Kích thước tối thiểu: Đảm bảo logo đủ lớn để nhận biết được, ngay cả khi thu nhỏ. Kích thước tối thiểu khoảng 10-20% kích thước QR code được khuyến nghị.
-
Độ phân giải: Đảm bảo logo có độ phân giải đủ cao để duy trì độ rõ nét khi chèn vào QR code. Độ phân giải ít nhất 200 DPI được khuyến nghị.
3.9 Tham số tùy chọn hình ảnh (tùy chọn)
-
imageSize: Kích thước logo (0.1 - 0.5, mặc định 0.4)
hideBackgroundDots: Ẩn dots nền trong vùng logo (true/false)
imageMargin: Margin của logo (pixels)
3.10 Tham số QR options (tùy chọn)
Ví dụ QR Code với các tùy chọn:
QR Code với màu xanh:
QR Code với logo cơ bản:
https://qr-artists.3si.vn/qrcode/generate/?data=HelloWorld&logo=https://dummyimage.com/50/09f/fff.png&imageSize=0.3&hideBackgroundDots=true&width=200&height=200
QR Code với màu gradient (dots đỏ, corners xanh):
https://qr-artists.3si.vn/qrcode/generate/?data=HelloWorld&logo=https://dummyimage.com/50/09f/fff.png&imageSize=0.3&hideBackgroundDots=true&dotsColor=%23FF0000&cornersSquareColor=%230000FF&cornersDotColor=%2300FF00&width=200&height=200
QR Code với margin và format JPEG:
QR Code với style rounded:
QR Code với style dots:
QR Code với style classy:
QR Code với style classy-rounded và logo:
https://qr-artists.3si.vn/qrcode/generate/?data=HelloWorld&dotsStyle=classy-rounded&logo=https://dummyimage.com/50/09f/fff.png&imageSize=0.3&hideBackgroundDots=true&width=200&height=200
3.11 Rate limit
Để bảo vệ hệ thống và tránh lạm dụng, chúng tôi áp dụng cơ chế giới hạn tần suất truy cập (rate limit) cho các API tạo QR code.
- Phạm vi áp dụng: Endpoint /qrcode/generate.
- Giới hạn mặc định: 30 requests mỗi 5 phút cho mỗi địa chỉ IP.
- Vượt giới hạn: API trả về mã 429 Too Many Requests cùng thông điệp "Too many requests. Please try again later.".
- Khuyến nghị: Áp dụng backoff (chờ 60–120 giây) trước khi thử lại; gộp nhiều yêu cầu thành một batch hợp lý.
- Nâng hạn mức: Nếu bạn có nhu cầu hợp lệ với lưu lượng cao hơn, vui lòng liên hệ quản trị để được cấp hạn mức phù hợp.
