- 成功码实测为字符串 "01"(docx 误写 "1"),判定按去前导零 - 查询类同走 uploadinfo 信封(baseInfo+manageInfo),非裸 baseInfo - 三种机构码分层:18位统信码 / 9位机构码 / 12位区划码 - docs/04 新增 §8 JKDA00002 实测契约(请求信封+响应结构,已脱敏) - docs/06 回填 A1~A9/B3/B6/C3/D2/D3 联调状态 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.9 KiB
5.9 KiB
06 · 厂家联调清单
向厂家(和宇健康科技)索要的对接数据与待确认项。A 组是能发出第一个请求的最小集;C/D 组决定能不能做对。
每项带「状态」便于回填:待要 / 已要 / 已回 / 已确认。回填后据此校准 docs/01(接口规范)与 docs/04(字段映射)。
用法:把 A~E 直接发给对接人;回填厂家答复到「厂家答复」列;确认无误后更新对应设计文档并勾掉。
A. 接入凭据与环境(最高优先级)
没有这些,一个请求都发不出。
| # | 需要的数据 | 说明 / 对应文档 | 状态 | 厂家答复 |
|---|---|---|---|---|
| A1 | 沙箱/测试环境 OSI 主机地址 | 接口里的 ${hostname}(内网地址,不可直连) |
已确认 | 见本地 docs/账号.txt(不入库) |
| A2 | SOCKS5 代理地址 | 到达 A1 内网主机的唯一通路(host+proxy 组合,参照 chis_upload 的 172.29.20.71:9002 + 代理 192.168.3.148:11003) |
已确认 | 见本地 config.yaml socks5_proxy |
| A3 | orgCode |
机构编码(机构社会统一信用代码) | 已确认 | 18 位统一社会信用代码;注意≠config 里 9 位 org_code(=manaUnitId),见 docs/01 §3 |
| A4 | userName |
平台分配用户名(同报文 DSFMC 第三方公司编码) |
已确认 | 见本地 config(= manageInfo.DSFMC) |
| A5 | ask 密钥 |
仅用于签名 password=md5("ts=<ts>&ask=<ask>"),敏感、走环境变量不入库 |
已确认 | 在本地 config.yaml(敏感不展示) |
| A6 | deviceSN 取值规则 |
设备序列号——一机构一值?一设备一值? | 部分 | 查询实测可空;创建/更新是否必填仍待确认 |
| A7 | operateUser / manaDoctorId |
默认责任医生 ID(创建类必填) | 部分 | 查询用 operateUser 已确认(见本地 config);创建的 manaDoctorId 口径待联调 |
| A8 | manaUnitId / operateUnit |
管辖/操作机构编码(创建类必填) | 部分 | operateUnit=orgCode(18位) 已确认;数据侧 manaUnitId(9位) 见响应样本 docs/04 §8 |
| A9 | 签名校验样例 | 给一组 ts 与对应正确的 password,用来逐字节校验我方 MD5 实现与平台一致 |
已确认 | JKDA00002 已打通 → 我方 MD5 头签名实现与平台一致 |
| A10 | 生产环境地址+凭据 | 可后置,先拿沙箱 | 待要 |
B. 接口契约补漏(docx 缺漏/坑点,见 docs/01 §7、docs/03 §8)
| # | 需要确认 | 状态 | 厂家答复 |
|---|---|---|---|
| B1 | 缺失的列表/查询接口路径 + serviceId:档案列表查询、老年人自理评估「列表」与「查询」、中医体质辨识「列表」、中医健康指导「列表」与「查询」 | 待要 | |
| B2 | 中医健康指导 zyjkzd 的 serviceId + 完整字段表 | 待要 | |
| B3 | 确认 jkda/find 的 serviceId 是否为 JKDA00002(docx 样例误写成 TNB00004) |
已确认 | ✅联调实测 JKDA00002 正确 |
| B4 | 老年人自理/体质查询的 serviceId(我方推断 LNRZLPG00002/LNRZYTZ00002) |
待要 | |
| B5 | 体检 jktj/create 的完整字段表(hcData/lsData/exaData/aeData,体量最大) |
待要 | |
| B6 | 字段名/类型不一致点核对:jzsfqn vs jzsfq、addressNumber vs adressNumber、familyMiddle/pastHistory 是 object 还是 list |
部分 | JKDA00002 响应侧确认:adressNumber(缺 d)、pastHistory/familyMiddle=object(docs/04 §8);创建入参拼写仍待核 |
C. 业务规则确认(决定关键设计)
| # | 需要确认 | 影响 | 状态 | 厂家答复 |
|---|---|---|---|---|
| C1 | checkId 规则:长度上限、是否要求全局唯一、平台是否以 checkId 去重、同一 checkId 再次 create 是更新还是报错、create/update 幂等语义 | 幂等键设计(docs/04 §5) | 待要 | |
| C2 | 完整度:completeLevel/perfection 由平台计算还是接入方上送?除 isFillShhj 外是否还需完整度入参 |
是否移植旧项目完整度逻辑(docs/03 §8-1) | 待要 | |
| C3 | 错误码字典:除成功/405(超时) 外的失败码清单 |
重试分类(docs/04 §6) | 部分 | ⚠成功码实测为 "01" 非 "1"(docs/01 §1);完整失败码字典仍待要 |
| C4 | 官方码表:民族 56 项、行政区划/网格代码、医保支付方式等是否有官方完整版下发 | 字典层(docs/04 §3) | 待要 | |
| C5 | 各创建接口的必填字段最终口径(以平台实际校验为准) | 映射校验 | 待要 |
D. 真实样本(校准字段映射,避免照 docx 猜)
| # | 需要的样本 | 状态 | 厂家答复 |
|---|---|---|---|
| D1 | 每个 create 接口一组真实成功的请求 JSON + 响应 JSON | 待要 | |
| D2 | 各查询/列表接口一组真实响应样本(data 是数组还是对象、分页结构) | 部分 | JKDA00002 已获(data 为数组,结构见 docs/04 §8);其余接口仍待要 |
| D3 | 一个测试身份证/测试档案,联调用、不污染生产数据 | 已回 | 已有可查档案(本地样本,含 PII 不入库) |
E. 联调支持
| # | 需要 | 状态 | 厂家答复 |
|---|---|---|---|
| E1 | 对接技术人联系方式 / 对接群 | 待要 | |
| E2 | 平台侧失败日志查询方式(请求失败时能否提供 trace 协助排查) | 待要 | |
| E3 | 网络/白名单:接入方出口 IP 是否需在平台报备开通 | 待要 |
回填驱动的后续动作
- A 组齐 → 可做阶段 0 验收(用机构查询 CXJG00002 打通真实请求,见 docs/05)。
- B 组回 → 更新
docs/01§5 serviceId 映射表、osi/codes.go常量与pathOf路由。 - C1/C2 定论 → 定型
mapping/checkid.go幂等策略、决定是否移植完整度逻辑。 - C4/D1 回 → 校准
docs/04码表与字段映射,补mapping/*单测基线。 - D3 到位 → 端到端联调,回写
docs/03 §8开放问题结论。