Files
medical-mall/pages/mall/delivery/doc/需求文档/缺口与待补充清单.md
not-like-juvenile 33030bd20b 需求分析
2026-02-06 08:21:59 +08:00

83 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 缺口与待补充清单(配送模块|第三方轨迹对接 + Mock 联调)
本文定位:
- 用“交付物清单”的方式回答:当前这套配送对接文档还缺什么、为什么缺、补了带来什么收益。
- 不改变现有方案(统一事件模型 + Adapter + 幂等乱序入库 + 前端统一契约),只补齐落地时最容易卡住的材料。
关联文档:
- `README.md`:阅读入口与联调路径
- `配送模块需求文档.md`:目标/范围/验收口径
- `接口规范.md`Webhook + 控制面 API + 入库建议
- `状态映射表.md`event_code/event_text -> status_code + 一致性治理(含备选方案)
- `前端字段清单.md`:安卓/Web 展示契约
---
## P0建议本期补齐影响联调与验收能否顺利推进
1) 联调/验收 Checklist平台侧 + Mock 侧)
- 为什么要补现在“验收标准”是目标描述但缺少可勾选的操作性检查项QA/对接会反复口头对齐。
- 补齐收益:把“验签/幂等/乱序/重复/延迟/缺字段”等要求落到可执行项,减少漏测。
- 建议产物:一份表格/列表(可以后续直接贴到测试用例/测试报告里)。
2) 场景库清单scenario catalog+ 每个场景的事件序列期望
- 为什么要补:当前只提了 `standard_delivered` 等示例名,但没有定义“这个场景到底要生成哪些关键节点、每个节点对应哪些 event_code/status_code、时间间隔怎样”。
- 补齐收益:前端可稳定对照 UI后端可稳定断言幂等与排序QA 可复现回归。
- 建议产物:
- 场景列表(标准签收/拒收退回/地址异常/破损/丢失/长时间无更新/签收失败后成功等)
- 每个场景:事件数、关键事件码、是否包含 POD、是否包含异常、是否需要乱序/重复/延迟注入。
3) Webhook 接收契约的“ACK/重试”约定(平台与第三方的边界)
- 为什么要补:目前只写“成功返回 200”但缺少“平台什么时候返回 2xx、什么时候 4xx/5xx、第三方是否重试、重试间隔与上限”的共识。
- 补齐收益:避免线上/联调出现“平台处理慢导致第三方重推爆量”“平台 4xx 被第三方当作可重试”之类问题。
- 建议产物:在 `接口规范.md` 增补一小节:
- 验签失败/缺字段/无法解析 -> 4xx不建议重试
- 平台内部暂时不可用 -> 5xx允许重试
- 成功接收但异步入库失败 -> 2xx 还是 5xx 的取舍(建议:接收成功就 2xx入库失败走内部告警与补偿队列
4) 承运方接入配置表模板Carrier Integration Profile
- 为什么要补:你已经发现韵达/圆通等第三方细节差异大,缺少一个“把关键信息落盘”的标准表格,后续每接一家都要重新摸索。
- 补齐收益:缩短接新承运方周期;把差异收敛到 Adapter/配置层;减少口头信息丢失。
- 建议字段(模板):
- `carrier`、接入模式webhook/polling/both
- 鉴权类型与签名算法、参与签名字段、是否含 timestamp/nonce
- 轨迹查询接口URL/method/v/字段示例)、回调接口(回调验签字段/重试策略)
- 是否提供稳定 `event_id`、是否要求手机号后四位
- 时间格式/时区、地点粒度
- 状态码枚举来源与映射版本
---
## P1建议尽快补齐影响长期维护与一致性/审计能力)
1) 权限矩阵与审计要求(谁能看 raw_payload / POD / 全量地址手机号)
- 原因:`raw_payload` 可包含敏感字段Web 客服/运维能力需要最小权限与审计。
- 产物:角色(普通用户/商家/客服/运维/管理员)× 字段raw/POD/手机号/地址)的可见性矩阵 + 审计日志要求。
2) 错误码与返回体统一(控制面 API
- 原因:目前 `接口规范.md` 仅列举了示例错误码,但缺少标准响应结构。
- 产物:统一响应:`{success, code, message, request_id, data}`;并约定 HTTP 状态码与业务码的对应。
3) OpenAPI可选
- 原因:接口多了以后靠 Markdown 容易漂移。
- 产物:控制面 API + Webhook payload 的 OpenAPI至少给 Mock 侧)。
4) “状态不回退/一致性”策略的明确算法(平台侧)
- 原因:`接口规范.md` 提了可选规则,但未选型;当出现终态后补到更早事件时,当前状态如何计算需要一口径。
- 产物:选定一种算法并写清:以 `event_time` 最新为准 / 状态等级只进不退 / 双轨展示按时间current_status 不回退)。
---
## P2可后补锦上添花
- DB 字典与 ER 图(便于新人理解 schema
- 场景导入导出JSON格式规范
- 对接灰度/熔断/降级策略的配置说明
---
## 建议补充顺序(最省时间)
1) 先补 P0-1Checklist+ P0-2场景库清单——直接提升联调效率
2) 再补 P0-3ACK/重试约定)——避免重复推送与误判
3) 再补 P0-4承运方接入配置表模板——为后续接真实承运方铺路
4) 最后补 P1 项——为线上长期治理做准备