技术博客
条码生成与识别:5 分钟接入,从注册到生成第一条条码与识别第一张图

条码生成与识别:5 分钟接入,从注册到生成第一条条码与识别第一张图

作者: 万维易源
2026-08-28
条码生成条码识别快速接入Python示例免费接口
# 条码生成与识别:5 分钟接入,从注册到生成第一条条码与识别第一张图 > 接口/接入点:条码生成与识别(apiCode 1129)· 1129-1 生成、1129-3 图片链接识别 | 是否免费:免费(有档位限制) | 请求方式:POST/GET | 返回格式:JSON | 适用人群:新注册用户、初级开发者 | 阅读时间:约 5 分钟 ## TL;DR - 注册后在控制台拿到 AppKey,替换到请求 URL 的 `appKey=` 即可调用,无需其他配置。 - 生成:POST `1129-1`,传 `content`(要编码的数据)即可拿到 `imgUrl` 图片链接。 - 识别:用生成得到的图片链接调 `1129-3`,返回 `retText` 即条码里的文字。 ## Why:这跟你有什么关系 条码在零售、仓储、图书、门票、会员卡里无处不在。过去你要引入一个条码库、处理字体与图片编码;现在用这一个接口,传一串数字/字符,就能拿到一张标准条码图,或反过来把一张条码图识别成文字——不用装任何本地依赖,HTTP 调一下就行。 ## What:前置条件与接口速览 | 项 | 说明 | |----|------| | 接口地址(生成) | `https://route.showapi.com/1129-1?appKey={your_appKey}` | | 接口地址(图片链接识别) | `https://route.showapi.com/1129-3?appKey={your_appKey}` | | 鉴权 | URL 查询参数 `appKey` | | 计费 | 免费服务,注册后默认可调用,有使用档次限制(档位具体数字以官方为准) | | 数据时效 | 生成接口返回的图片链接**每 12 小时删除数据**,需及时保存 | | 集成能力 | 提供 MCP 配置与 OpenAPI(YAML/JSON) 文档,覆盖全部接入点 | ## How:跑通「生成 + 识别」最小闭环 **步骤 1:获取 AppKey** 登录后到 [AppKey 管理控制台](https://www.showapi.com/console#/myApp) 复制你的 AppKey。 **步骤 2:生成一条 CODE_128 条码** Python: ```python import requests APPKEY = "YOUR_APPKEY" url = f"https://route.showapi.com/1129-1?appKey={APPKEY}" resp = requests.post(url, data={ "content": "6901294172197", # 要编码进条码的数据 "width": "150", # 可选,95-500 像素 "height": "30", # 可选,20-120 像素 "formatType": "5", # 可选,5 = CODE_128 }, timeout=10) data = resp.json() body = data.get("showapi_res_body", {}) if body.get("ret_code") == "0": print("条码图片:", body.get("imgUrl")) else: print("生成失败:", body) ``` cURL: ```bash curl -X POST "https://route.showapi.com/1129-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "content=6901294172197&width=150&height=30&formatType=5" ``` Node.js: ```javascript const APPKEY = "YOUR_APPKEY"; const body = new URLSearchParams({ content: "6901294172197", width: "150", height: "30", formatType: "5" }); const res = await fetch(`https://route.showapi.com/1129-1?appKey=${APPKEY}`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body }); const data = await res.json(); console.log(data.showapi_res_body.imgUrl); ``` **步骤 3:用图片链接识别回环** 把上一步的 `imgUrl` 传给 `1129-3`: ```python img_url = body.get("imgUrl") rec = requests.post( f"https://route.showapi.com/1129-3?appKey={APPKEY}", data={"imgUrl": img_url}, timeout=10 ).json() rb = rec.get("showapi_res_body", {}) print("识别结果 retText:", rb.get("retText"), "| ret_code:", rb.get("ret_code")) ``` ## 返回示例与解析 生成返回: ```json { "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_body": { "imgUrl": "http://app2.showapi.com/img/barCodeImg/20160930/xxxx.jpg", "ret_code": "0" } } ``` 识别返回: ```json { "showapi_res_code": 0, "showapi_res_body": { "retText": "6901294172197", "ret_code": "0" } } ``` `ret_code` 为字符串 `"0"` 表示成功;`retText` 是识别出的条码文字。 ## 进阶 / 边界 - 免费不代表无限:有使用档次限制,超出需用平台积分兑换更高档位(详见 [档位说明](https://www.showapi.com/free-api))。 - 生成图片不是永久地址:**每 12 小时删除**,生产环境请生成后立即下载落盘。 - 识别三种传图方式(上传/链接/Base64)差异见 [三种传图对比](https://www.showapi.com/guides/barcode-three-input-modes-1129)。 ## FAQ **Q:ret_code 返回 "0" 但 imgUrl 为空,算成功吗?** 不算。`ret_code == "0"` 且 `imgUrl` 有值才是生成成功。若 `imgUrl` 为空,多为 `content` 与 `formatType` 不匹配(如 CODE_128 内容含不支持字符),换格式或核对内容后重试。 **Q:免费接口有调用频次限制吗?** 文档说明注册后默认可免费调用并设有使用档次限制,具体档位与频次以官方档位说明为准,本文不编造具体数字。 **Q:能一次生成多种格式吗?** 不能一次返回多种。每次请求指定一个 `formatType`,生成一种格式;需要多种可循环调用。 **Q:识别支持哪些条码类型?** 识别能力覆盖文档列举的 13 种格式(EAN_8、EAN_13、CODE_39、CODE_93、CODE_128、ITF、PDF_417、RSS_14、RSS_EXPANDED、UPC_A、UPC_E、UPC_EAN_EXTENSION、CODABAR),具体以实际识别结果为准。 ## 相关能力 / 下一步阅读 - [条码生成与识别:13 种条码格式(formatType)对照与选型指南](https://www.showapi.com/guides/barcode-format-types-1129) - [条码识别三种传图方式怎么选:上传图片 / 图片链接 / Base64 实战对比](https://www.showapi.com/guides/barcode-three-input-modes-1129) - [条码生成与识别:返回字段全解(imgUrl / retText / ret_code / msg)](https://www.showapi.com/guides/barcode-response-fields-1129) - **本系列共 12 篇**:查看[条码生成与识别指南总目录](https://www.showapi.com/guides/barcode-guides-1129)