Page:
T-279
Pages
00-ai-start-here
01-vision
02-requirements
03-tech-stack
04-architecture
05-coding-rules
06-tasks
07-user-stories
08-interaction-checklist
Design
Home
Integrations-shunyunbao-contract
PPT
T-001
T-002
T-003
T-004
T-101
T-102
T-103
T-104
T-201
T-202
T-203
T-204
T-205
T-206
T-207
T-208
T-209
T-210
T-211
T-212
T-213
T-214
T-215
T-216
T-217
T-218
T-219
T-220
T-221
T-222
T-223
T-224
T-225
T-226
T-227
T-228
T-229
T-230
T-231
T-232
T-233
T-234
T-235
T-236
T-237
T-238
T-239
T-240
T-241
T-242
T-243
T-244
T-245
T-246
T-247
T-248
T-249
T-250
T-251
T-252
T-253
T-254
T-255
T-256
T-257
T-258
T-259
T-260
T-261
T-262
T-263
T-264
T-265
T-266
T-267
T-268
T-269
T-270
T-271
T-272
T-273
T-274
T-275
T-276
T-277
T-278
T-279
T-280
T-281
Task-Template
Tasks
agent-context
api
clean-state-checklist
current-state
routes
Clone
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.
同步来源:
docs/tasks/T-279.md· commitafc651f75a3a
id: T-279 title: 跑通确认商品后的规格选择与待支付下单 phase: 2 deps:
- T-272
- T-275
- T-278 status: DONE created: 2026-08-01 context_ref: 54debcd work_branch: null write_paths:
- docs/tasks/T-279.md
- docs/current-state.md
- docs/04-architecture.md
- docs/05-coding-rules.md
- docs/api.md
- android-buyer/app/src/main/**
- android-buyer/app/src/test/**
- backend-api/migrations/**
- backend-api/internal/**
问题 / 背景
Admin 人工确认候选后,App 已能领取包含规范商品 URL/goods_id 的命令,但订单 dry-run 仍有三个断点:拼多多商品详情无障碍树通常不暴露 goods_id,导致定向打开后被错误拒绝; 订单链路没有复用 T-272/T-277 的节点 JSON + 本机 VLM 规格/价格兜底;确定性失败只在 手机本地反复重试,后台长期显示执行中,界面也停留在拼多多。
行为契约
- App 只执行后台已确认且通过 command hash 的 canonical Pinduoduo 商品;定向打开后, 标题必须匹配,并用当前页 goods_id、已授权详情指纹或当前页分享链接解析出的 goods_id 至少一项复核商品身份。分享解析必须复用受限剪贴板/网络策略,失败时不能放宽到只看标题。
- 颜色、尺码和当前组合价仍先走确定性无障碍规则。缺少唯一目标、选中状态、摘要或价格时, 复用 T-272/T-277 当前节点 JSON、截图、本机模型和 node ID 复核;最多三次模型调用, 每次点击后重新取根节点,金额仍由代码拼接节点并解析。
- 规格最终证据必须同时证明目标颜色、目标尺码和唯一价格;再按 T-278 冻结总额上限、 数量和订单确认页总额复核。模型不能点击确认订单、提交订单或支付。
- dry-run 的确定性终态失败必须立即幂等回传后台:授权变为
FAILED,记录稳定 failure code, 任务保留在等待人工重新选择/重新授权的可恢复状态;瞬时无障碍/网络错误最多保留一次短重试。 - 后端已确认 dry-run READY 后才允许现有 T-218 单次提交围栏继续;只点击一次“提交订单”, 绝不点击支付。订单号/下单时间回传后,Admin 提醒采购员到拼多多确认并付款。
- 成功、终态失败或安全停止后都切回 Roubao;App 不得留在拼多多继续循环。
方案
- 将当前页商品身份解析抽成 dry-run driver 能调用的受限 resolver,并为 direct 路径实现 goods_id/详情指纹/分享解析三选一的严格复核。
- 给 order dry-run driver 接入现有
PinduoduoSpecificationVlmAssistant和同一安全快照, 将候选链路的逐项选择及最终价格证明复用于确认商品链路。 - 增加设备 dry-run failure API、数据库失败状态/审计字段和 Android 加密 outbox;区分
IDENTITY_MISMATCH、SKU_UNRESOLVED、PRICE_UNVERIFIED、BUDGET_EXCEEDED、TRANSIENT_AUTOMATION等稳定代码。 - 调整执行调度:终态错误一次上报后停止本地重试并返回 Roubao;仅瞬时错误允许一次重试。
- 增加无 goods_id 但分享链接一致、VLM 选择/拆分价格、伪造节点、终态失败幂等上报、 单次提交与返回 App 的回归测试。
验收要点
- canonical 链接打开的详情页即使节点树没有 goods_id,也能经指纹或分享链接严格确认。
- 确定性规格/价格失败时本机 VLM 可选择正确颜色和尺码,并由代码解析真实价格。
- 未知 node ID、结构变化、低置信度、身份不一致和价格超额全部失败关闭。
- 终态 dry-run 失败以固定幂等键上报,后台不再长期显示执行中,手机切回 Roubao。
- dry-run READY 后复用现有单次下单围栏,最终只生成待支付订单并回传订单信息。
- Go 全量测试/vet、Android 双变体单测、lint 和构建通过。
边界
- 不自动付款,不选择或修改收货地址,不处理验证码/风控绕过。
- 不把模型配置迁移到 Admin;使用 Roubao 设置中已经测试通过的本机模型配置。
- 不允许仅凭标题、截图相似度或模型陈述替代商品 ID/授权指纹复核。
执行记录
- 2026-08-01:按“严格商品身份 + 本机 VLM 规格/价格兜底 + 终态失败回传”的方案创建任务,
状态
TODO。 - 2026-08-01:direct dry-run 增加 goods_id、授权详情指纹、当前分享链接三选一严格身份 复核;复用裁剪节点 JSON 和 Roubao 本机模型兜底颜色、尺码和当前组合价。
- 2026-08-01:新增设备 failure API 和五类稳定失败代码;失败先写加密本地状态,再使用 固定幂等键重传。瞬时自动化只重试一次,确定性失败停止操作并切回 Roubao。
- 2026-08-01:完成商品身份、VLM node-ID 选择/价格解析、失败接口和两次尝试上限回归
测试;全量 Go/Android 验收通过,状态改为
DONE。