技术博客
条码查询接口的药品条码用法:用法用量、批准文号与 OTC 标识怎么读

条码查询接口的药品条码用法:用法用量、批准文号与 OTC 标识怎么读

作者: 万维易源
2026-09-05
条码查询接口药品条码用法用量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)