fix(t236): retry rejected ERP captchas

This commit is contained in:
QiuSW
2026-07-29 11:54:06 +08:00
parent d7ab970f5a
commit cf83fb50e4
6 changed files with 237 additions and 23 deletions
+10 -7
View File
@@ -4,7 +4,7 @@ title: 顺运宝验证码错误有限重试
phase: 2
deps:
- T-235
status: PLANNED
status: DONE
created: 2026-07-29
context_ref: 81f75cc
work_branch: null
@@ -37,12 +37,12 @@ write_paths:
## 验收要点
- [ ] 前 6 次验证码错误、第 7 次成功时认证成功,验证码获取、OCR 和登录均各执行 7 次。
- [ ] 连续 7 次验证码错误后返回稳定的 `ERP_LOGIN_REJECTED`,不执行第 8 次。
- [ ] 非验证码登录拒绝、OCR/网络/协议错误不触发重试。
- [ ] 重试期间每次使用新验证码,且整个认证不突破 20 秒或调用方 deadline。
- [ ] diagnostics 可定位尝试次数,但不泄露验证码、凭证、Cookie、token 或响应正文。
- [ ] 标准 Go 测试、race、vet 和三个入口构建通过。
- [x] 前 6 次验证码错误、第 7 次成功时认证成功,验证码获取、OCR 和登录均各执行 7 次。
- [x] 连续 7 次验证码错误后返回稳定的 `ERP_LOGIN_REJECTED`,不执行第 8 次。
- [x] 非验证码登录拒绝、OCR/网络/协议错误不触发重试。
- [x] 重试期间每次使用新验证码,且整个认证不突破 20 秒或调用方 deadline。
- [x] diagnostics 可定位尝试次数,但不泄露验证码、凭证、Cookie、token 或响应正文。
- [x] 标准 Go 测试、race、vet 和三个入口构建通过。
## 边界
@@ -54,3 +54,6 @@ write_paths:
- 2026-07-29:创建任务。确认“重试 6 次”定义为首次失败后额外重试 6 次,最多 7 次登录;
仅对 ERP 明确返回的验证码错误执行全新验证码/OCR 尝试,并设置 20 秒总预算。
- 2026-07-29:实现精确验证码拒绝分类和受锁有限认证循环。脱敏 fixture 覆盖第 7 次成功、
连续 7 次耗尽、其他登录拒绝不重试和诊断尝试序号;标准 Go 测试、race、vet 及
api/migrate/authctl 构建均通过。