diff --git a/docs/current-state.md b/docs/current-state.md index 923c705..f1f7cf2 100644 --- a/docs/current-state.md +++ b/docs/current-state.md @@ -5,7 +5,7 @@ ## 当前快照 - 日期:2026-07-29 -- 阶段:T-233 已修复 ERP 预检错误映射并增加受控诊断日志 +- 阶段:T-234 计划在受控诊断模式输出 OCR 验证码文本 - Git:当前分支为 `main`;T-001 至 T-004、T-101 至 T-104、T-201 至 T-219 均按文档提交、实现提交的顺序纳入历史 - 生产代码:`android-buyer/` 已接入 Roubao Android 源码 @@ -206,10 +206,10 @@ - 已完成:另含 T-220 至 T-233 ERP 契约、货运存储、采购需求生成、日期增量同步、Go 直连协议、OCR 会话预检、稳定预检错误、安全诊断日志、直连 `FreightSource`、旧 Connector 清理和受控本地凭证加载。 -- 进行中:无。 -- 下一步:使用 `start-backend.bat --erp-debug` 重启 API 后以受控单号导入一次,读取 ERP - 请求/响应摘要和货运预检 code;再确认开放 API、OCR/ERP 数据使用权限并完成不记录订单内容的 - smoke。 +- 进行中:T-234 将仅在显式 ERP 诊断模式记录本次提交的有效 OCR 验证码文本,以定位 ERP 的 + “图片验证码不正确”。 +- 下一步:使用 `start-backend.bat --erp-debug` 重启 API 后以受控单号导入一次,读取 OCR 文本、 + ERP 请求/响应摘要和货运预检 code;再确认 OCR 规则或服务准确率。 ## 当前可运行内容 diff --git a/docs/tasks/T-234.md b/docs/tasks/T-234.md new file mode 100644 index 0000000..5972586 --- /dev/null +++ b/docs/tasks/T-234.md @@ -0,0 +1,51 @@ +--- +id: T-234 +title: 在受控 ERP 诊断模式输出 OCR 验证码文本 +phase: 2 +deps: + - T-233 +status: PLANNED +created: 2026-07-29 +context_ref: 1e703ef +work_branch: null +write_paths: + - docs/tasks/T-234.md + - docs/api.md + - docs/current-state.md + - backend-api/internal/platform/shunyunbao/** +--- + +## 问题 / 背景 + +现场受控 ERP 日志显示登录 JSON 为 `status=false` 且 `msg=图片验证码不正确`。这表明 ERP +endpoint 可达且已处理登录请求,当前无法确认本机 OCR 为该次验证码返回了什么文本。T-233 +有意不记录验证码/OCR 文本,导致无法区分 OCR 识别错误、大小写/字符集规则差异或 ERP 验证码 +协议变化。 + +## 方案 + +1. 仅在已有 `CMROUBAO_ERP_DEBUG_LOG=true` 或 `start-backend.bat --erp-debug` 的受控模式中, + 在 OCR 成功返回后、登录前记录本次实际提交的有效验证码文本和长度。 +2. 无效、空白、过长或含控制字符的 OCR 输出只记录 `ocr_result class=invalid`,绝不记录原文; + OCR client error 只记录 `class=failed`,不输出响应 body。 +3. 保持验证码图片、ticket、Cookie、登录 payload、账号密码及常规生产日志不可见;调试开关默认 + 关闭,诊断结束后关闭。 +4. 固定 session 测试,断言有效 OCR 文本仅在 diagnostics 开启时输出,非法文本、图片和凭证 + 均不泄露。 + +## 验收要点 + +- [ ] 当前验证码错误场景可在 ERP 登录请求前看到 `erp_ocr_result value=... length=...`。 +- [ ] diagnostics 关闭时不记录 OCR 文本;无效/OCR 失败不记录其原始输出或错误正文。 +- [ ] 验证码图片、ticket、Cookie、账号密码和登录 payload 不进入日志。 +- [ ] 标准 Go 验证和入口构建通过。 + +## 边界 + +- 不修改 OCR endpoint、验证码请求、ERP 登录协议、重试或同步 schema。 +- OCR 文本仅为短时人工诊断用途,不持久化、不发给浏览器/API;不得用于绕过验证码或自动重试。 + +## 执行记录 + +- 2026-07-29:创建任务。现场 ERP 返回“图片验证码不正确”,因此进入受控 OCR 文本观测; + 当前证据不足以断言是 OCR 准确率、验证码规则还是外部 ERP 协议变化。