条码查询接口的药品条码用法:用法用量、批准文号与 OTC 标识怎么读
# 条码查询接口的药品条码用法:用法用量、批准文号与 OTC 标识怎么读
> 接口:showapi 条码查询接口(apiCode=66)· 接入点 66-24 药品条码查询|请求方式:POST/GET|返回格式:JSON|适用人群:药店、医药电商、健康类应用开发者|阅读时间:约 7 分钟|最后实测核对:2026-09-05
**核心要点**
- 66-24 只收 69 开头条形码,一次返回成分、用法用量、禁忌、批准文号这组用药字段——这是它相对 66-22 的全部价值。
- 实测证据:官方示例码查出来的是妆字号化妆品(type=非药品),这个库不只收药,按 `type` 和文号前缀分流展示。
- 用药安全字段(禁忌、注意事项)文本直出,空就显示"参见说明书",别自己补写。
用户扫一个药盒,想看的不是商品图,是"这药怎么吃、有什么忌口"。showapi 条码查询接口(apiCode=66)的 66-24 接入点就是干这个的。下面用 2026-09-05 真实请求的返回,逐字段讲用法——这个样例本身就很有信息量。
## 真实返回(实测 2026-09-05,官方示例码 6906618188014)
```json
{
"showapi_res_code": 0,
"showapi_fee_num": 1,
"showapi_res_body": {
"ret_code": 0,
"remark": "查询成功",
"name": "皇后牌片仔癀珍珠膏",
"spec": "20g",
"basis": "片仔癀:3%;珍珠粉:5%;丙三醇:15%;高级白油:7%;高级脂肪醇:8%。",
"dosage": "早晚两次,洁肤后适量使用并略加按摩至皮肤吸收。",
"consideration": "1、请置於幼儿无法取得处。2、眼睛周围、黏膜等部位请勿使用。……",
"approval": "闽G妆网备字2020001817",
"manuName": "福建片仔癀化妆品有限公司",
"manuAddress": "福建漳州市草寮街132号",
"img": "http://static1.showapi.com/app2/img/drug_barcode_img/20220316/dd805324-ac44-4c13-83cb-d65e559b27f0.jpg",
"type": "非药品"
}
}
```
看清了吗:这是官方给的药品条码示例,返回的却是**妆字号化妆品**——`approval` 是"闽G妆网备字"(化妆品备案文号),`type` 是字符串"非药品"。66-24 的"药品库"实际收着药妆健字类产品,这直接影响你的展示设计。
## 字段用法
### 用药展示组
| 字段 | 展示建议 | 注意点 |
|------|---------|--------|
| `dosage` 用法用量 | 详情页第一屏 | 文本直出,不改写 |
| `taboo` 禁忌 | 与用法同屏加粗 | 空时显示"参见说明书",不填"无禁忌" |
| `consideration` 注意事项 | 折叠区 | 自带"1、2、3"编号,可按序号拆分渲染 |
| `other` 不良反应等 | 与注意事项同组 | — |
| `basis` 主要成分 | 成分标签 | ";"分隔逐项列 |
### 合规与分类组
- `type`:文档枚举 1 = OTC、2 = 非药品,但实测返回过字符串"非药品"。判断逻辑统一转字符串:`str(body.get("type")) == "1"`。
- `approval`:药品是"国药准字"前缀,化妆品是"妆网备字"等。**严格只服务药品时用文号前缀硬过滤**,`type` 做辅助。
### 基础信息组
`name`(不是 66-22 的 `goodsName`)、`spec`、`manuName`、`manuAddress`、`img`(24 小时时效,先转存再展示)。
## 可运行的展示逻辑
```python
import requests
def render_drug(code: str) -> dict:
resp = requests.post(
"https://route.showapi.com/66-24",
params={"appKey": "YOUR_APPKEY"},
data={"code": code},
timeout=10,
)
body = resp.json()["showapi_res_body"]
if str(body.get("ret_code")) != "0":
raise LookupError(body.get("remark", "查询失败")) # 失败不扣费
return {
"name": body.get("name"),
"is_otc": str(body.get("type")) == "1", # 兼容数字/字符串两种形态
"is_drug": str(body.get("approval", "")).startswith("国药准字"),
"dosage": body.get("dosage") or "参见说明书",
"taboo": body.get("taboo") or "参见说明书",
"usage_notes": body.get("consideration") or "",
"ingredients": body.get("basis") or "",
}
```
## 边界,直说
- 查不到会返回"条形码药品未收录"(实测 2026-09-05),长尾品种、新批文可能滞后,产品要有说明书拍照录入的兜底。
- 格式不对(非 69 开头等)返回"无效的条形码!",检查输入而不是重试。
- 接口给的是说明书级文本,不构成用药建议;面向 C 端展示加"请遵医嘱"提示是产品责任。
- `validity`(有效期)、`storage`(贮藏)实测可能为空,别做成必显区块。
## FAQ
**Q1:能查进口药品吗?**
不能。66-24 限定 69 开头的国内条形码,进口药没有国内 69 码时查不到。
**Q2:查到化妆品正常吗?**
正常,实测官方示例码返回的就是妆字号产品。用 `type`(2 = 非药品)和 `approval` 文号前缀区分展示;只做药品业务的按"国药准字"硬过滤。
**Q3:taboo 为空能自己填"无禁忌"吗?**
不能。空只说明库里没这条数据,填"无禁忌"等于替厂商做安全声明。展示"参见说明书"。
**Q4:药品数据和 66-22 的商品数据冲突时以谁为准?**
两库字段不同源(`name` vs `goodsName`),展示时药品页用 66-24、商品页用 66-22。同一商品两处都查得到时,规格等基础信息以你验证过的为准,记录来源。
**Q5:查不到的药品码,过段时间再查会变吗?**
库"不定期更新"(文档口径),可能变。未收录条码做 30 天左右的负缓存,过期后允许重查,别永久放弃也别每次重试。
## 下一步阅读
- [条码查询接口返回字段全解:66-22 与 66-24 的字段差异和失败文案](https://www.showapi.com/guides/barcode-response-fields-66)——失败文案对照与两库字段差异的完整版。
- [条码查询接口接入扫码枪收银:从「滴」一声到商品档案的完整架构](https://www.showapi.com/guides/barcode-pos-scanner-66)——门店里药品和日化混扫的路由架构。
- [商品条码信息怎么查:自建数据库、公开数据源与 showapi 条码查询接口对比](https://www.showapi.com/guides/barcode-plan-comparison-66)——把本接口放进整体选型里看。
- **本系列共 6 篇**:查看[条码查询接口指南总目录](https://www.showapi.com/guides/barcode-guides-66)