营销链接、活动报名、产品溯源和桌牌物料都需要快速生成二维码。轻语接口
POST /data/api/fetchQRCodeData返回PNG Base64,前端可直接展示,后端可解码保存。
一、参数怎么选
| 参数 | 是否必填 | 说明 |
|---|---|---|
| apikey | 是 | 身份凭证,建议只在服务端使用 |
| text | 是 | 网址、链接或文本内容 |
| size | 否 | 二维码像素尺寸,例如300 |
| logoUrl | 否 | 二维码中心Logo图片地址 |
| logoSize | 否 | Logo像素尺寸,建议小于size/8 |
二、生成并在浏览器展示
const response = await fetch('https://5555api.com/data/api/fetchQRCodeData', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
apikey: process.env.QINGYU_API_KEY,
text: 'https://5555api.com',
size: 300,
logoUrl: 'https://example.com/logo.png',
logoSize: 32
})
});
const result = await response.json();
if (result.code !== 200) throw new Error(result.msg || '二维码生成失败');
preview.src = 'data:image/png;base64,' + result.data.qrcode;
三、后端保存PNG文件
import base64
import requests
result = requests.post(
'https://5555api.com/data/api/fetchQRCodeData',
json={'apikey': 'YOUR_APIKEY', 'text': 'https://5555api.com', 'size': 300}
).json()
if result['code'] != 200:
raise RuntimeError(result.get('msg', '生成失败'))
with open('qrcode.png', 'wb') as output:
output.write(base64.b64decode(result['data']['qrcode']))
四、保证二维码可扫描
- 长文本先转短链,减少模块密度。
- Logo保持适中,四周留白,不遮挡定位点。
- 印刷物料先用目标距离和光照测试扫码。
- 对相同内容和参数做缓存,批量任务使用队列控制频率。
五、应用场景
活动报名、产品溯源、电子票务和门店物料都可以使用同一套生成逻辑。完整字段和限制请查看二维码生成API文档;如果想先手工验证内容,可使用在线工具中心中的相关工具。
常见问题
二维码生成API返回什么格式?
接口返回PNG图片的Base64字符串,浏览器可以拼接data:image/png;base64,前缀后放入img标签,后端可以Base64解码为PNG文件。
Logo应该设置多大?
logoSize建议小于二维码size的八分之一。Logo过大可能遮挡定位点或数据模块,导致扫码失败。
批量生成二维码如何限流?
接口单次生成一个二维码,频率限制为100次/分钟。批量任务应使用队列控制并发,并缓存已经生成过的内容。
结语
二维码API接入的关键是把Base64结果正确转换成PNG,并在Logo、尺寸和批量限流之间取得平衡。把密钥和生成记录放到服务端,前端只负责预览和下载,整体链路会更安全。