技术博客
二维码生成和识别:5 分钟接入,从注册到生成第一个二维码

二维码生成和识别:5 分钟接入,从注册到生成第一个二维码

作者: 万维易源
2026-08-31
二维码生成快速接入免费接口Python示例
# 二维码生成和识别:5 分钟接入,从注册到生成第一个二维码 > 接口/接入点:二维码生成和识别(apiCode=887,接入点 887-1 生成)· 是否免费:是(注册默认免费,有档次限制)· 请求方式:POST/GET · 返回格式:JSON · 适用人群:新注册用户、初级开发者 · 阅读时间:约 5 分钟 ## 核心要点 - 生成二维码只需一个必填参数 `content`,返回 `imgUrl` 即为图片地址。 - 调用地址 `https://route.showapi.com/887-1?appKey=YOUR_APPKEY`,appKey 放 query。 - 生成图存于 ShowAPI 服务器,**每 12 小时清理**,拿到 `imgUrl` 后请及时下载保存。 ## Why:这跟我有什么关系 无论是做活动海报、简历二维码、点餐码还是支付码,第一步都是"把一段文字/链接变成一张二维码图片"。本接口免费、无需自建二维码库,注册即有额度,适合快速验证想法或中小流量业务。 ## What:前置条件与接口速览 | 项 | 说明 | |----|------| | 接口地址 | `https://route.showapi.com/887-1?appKey=YOUR_APPKEY` | | 接入点 | 887-1 二维码生成 | | 请求方式 | POST / GET | | 鉴权 | query 参数 `appKey` | | 必填参数 | `content`(要生成二维码的内容) | | 可选参数 | `size`(图片大小 1-10 及 16/20/30)、`imgExtName`(jpeg/jpg/png/gif) | | 返回关键字段 | `ret_code`(0 成功)、`flag`、`msg`、`imgUrl` | | 计费 | 免费,注册默认可调用,有使用档次限制 | 获取 AppKey:登录 ShowAPI 控制台 → [我的 AppKey](https://www.showapi.com/console#/myApp),替换下方 `YOUR_APPKEY`。 ## How:三步拿到第一张二维码 ### 1. Python(requests) ```python import requests url = "https://route.showapi.com/887-1" resp = requests.post( url, params={"appKey": "YOUR_APPKEY"}, # appKey 放 query data={ "content": "https://www.showapi.com", # 必填:二维码内容 "size": "8", # 可选:1-10,content 极少时用 16/20/30 "imgExtName": "jpg", # 可选:jpeg/jpg/png/gif }, timeout=10, ) body = resp.json()["showapi_res_body"] if body.get("ret_code") == "0": print("二维码地址:", body["imgUrl"]) # ⚠️ 生成图每 12h 清理,建议立即下载保存 else: print("生成失败:", body.get("msg")) ``` ### 2. cURL ```bash curl -X POST "https://route.showapi.com/887-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "content=https%3A%2F%2Fwww.showapi.com&size=8&imgExtName=jpg" ``` ### 3. Node.js(fetch) ```javascript const resp = await fetch("https://route.showapi.com/887-1?appKey=YOUR_APPKEY", { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ content: "https://www.showapi.com", size: "8", imgExtName: "jpg", }), }); const body = (await resp.json()).showapi_res_body; if (body.ret_code === "0") console.log("二维码地址:", body.imgUrl); else console.log("生成失败:", body.msg); ``` ## 返回示例与解析 ```json { "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_id": "ce135f6739294c63be0c021b76b6fbff", "showapi_res_body": { "ret_code": "0", "flag": "ture", "msg": "操作成功!", "imgUrl": "http://app2.showapi.com/img/qrCode/201601/1451885183552.jpg" } } ``` 字段说明(详见[返回字段全解](https://www.showapi.com/guides/qrcode-response-fields-887)): - `ret_code`:业务是否成功,`"0"` 为成功(**统一以它判成功**)。 - `flag`:生成是否成功;注意本接入点示例值为 `ture`(疑似拼写),不要依赖字面判等,详见[错误码与失败排查](https://www.showapi.com/guides/qrcode-error-handling-887)。 - `imgUrl`:二维码图片地址,拿到后请及时下载(12h 清理)。 ## 进阶 / 边界 - **内容不宜过长**:`content` 越长,二维码越密、尺寸越大;长内容建议 size < 5。 - **格式选择**:`imgExtName` 支持 jpeg/jpg/png/gif,默认 jpg。 - **保存时效**:图片存 ShowAPI 服务器,每 12 小时删除,生产环境务必落盘到自有存储,方案见[保存与缓存策略](https://www.showapi.com/guides/qrcode-save-strategy-887)。 ## FAQ **Q1:免费吗?需要付费吗?** A:注册后默认可免费调用,设有使用档次限制防止滥用;更高档位可用平台积分兑换。具体档位以[官方档位说明](https://www.showapi.com/free-api)为准。 **Q2:生成的二维码能用多久?** A:图片存于 ShowAPI 服务器,每 12 小时清理一次。建议生成后立即下载到自有存储或 CDN。 **Q3:appKey 放哪?** A:放 query 参数 `?appKey=YOUR_APPKEY`,不要写死在客户端代码里暴露给前端。 **Q4:只传 content 可以吗?** A:可以。`size` 与 `imgExtName` 均为可选,默认 size=8、jpg 格式。 **Q5:返回 flag 是 "ture" 是不是出错了?** A:不是。生成接入点返回示例确为 `ture`(疑似拼写),成功仍以 `ret_code=="0"` 判断即可。 ## 相关能力 / 下一步阅读 - [二维码生成和识别:返回字段全解(ret_code / flag / imgUrl / retText)](https://www.showapi.com/guides/qrcode-response-fields-887) - [二维码生成和识别:三种识别方式怎么选(上传 / 图片地址 / Base64)](https://www.showapi.com/guides/qrcode-recognition-compare-887) - [二维码生成和识别:图片每 12 小时清理,如何设计保存与缓存策略](https://www.showapi.com/guides/qrcode-save-strategy-887) - **本系列共 12 篇**:查看[二维码生成和识别指南总目录](https://www.showapi.com/guides/qrcode-guides-887)