人工真机测试确认,失效的 PDD 商品链接具有以下实际跳转流程:
Android 浏览器打开商品 URL → 唤起 PDD App → PDD 尝试进入商品详情页 → 打开失败 → 返回 PDD 首页
当前 Client 在调用 open_url() 后主要等待商品详情页的“立即购买、发起拼单”等就绪标志。浏览器属于暂态页面,PDD 首页又不满足商品页标志,因此失效链接通常只能等待到 PDD_PAGE_TIMEOUT,无法与网络慢、浏览器未跳转、登录失效、验证码或风控区分。
open_url()
PDD_PAGE_TIMEOUT
此外,如果打开链接前设备停留在上一个商品页,仅判断商品页标志可能误用旧页面。采购任务必须在不可逆动作前确认本次链接确实打开了目标商品。
PDD_GOODS_UNAVAILABLE
商品链接已失效,PDD 无法打开商品详情页并返回了首页
pdd_data
预计修改文件(Codex 实施前按实际代码确认):
client/src/pdd_collect_service.py
client/src/pdd_u2_purchase_adapter.py
client/src/collect_task_service.py
client/src/purchase_task_service.py
client/src/task_dispatcher.py
docs/client/
从 client/ 目录执行:
client/
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_collect_service.py" C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_u2_purchase_adapter.py" C:/Python310/python.exe -m unittest discover -s test -p "test_purchase_task_service.py" C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui_event.py" C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
真机验证:
状态:待实施。本轮仅完成工单创建与父工单 #1 回填,未修改代码、未提交 Git。实施前先从真实失效链接跳转流程采集并脱敏 PDD 首页控件树,再按正文状态机和验收标准开发。
状态更新为 进行中。开始按工单范围检查采集/采购共用页面分类、旧商品页防误判、一次受控重开和持续自动获取续跑逻辑。真实下单默认关闭;真机阶段只允许读取控件树或执行采集/dry_run,不创建订单、不付款。当前工作区已有 UI、脚本及 XML 未提交内容,将保留且不混入本工单。
状态更新为 待验收(代码准备提交)。
已完成:
验证:
329 tests
OK
git diff --check
实现与归档已提交,工单进入 待用户验收,暂不关闭。
8c9dbfe
fix: 识别失效商品链接返回首页 (#111)
8188153
docs: 归档任务 #111
docs/task/111-识别失效PDD商品链接返回首页.md
待用户验收后再关闭 #111,并同步父工单 #1。真机失效链接端到端未执行的原因和替代覆盖已写入归档。
用户已于 2026-08-11 明确验收通过。
eca9289
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
人工真机测试确认,失效的 PDD 商品链接具有以下实际跳转流程:
当前 Client 在调用
open_url()后主要等待商品详情页的“立即购买、发起拼单”等就绪标志。浏览器属于暂态页面,PDD 首页又不满足商品页标志,因此失效链接通常只能等待到PDD_PAGE_TIMEOUT,无法与网络慢、浏览器未跳转、登录失效、验证码或风控区分。此外,如果打开链接前设备停留在上一个商品页,仅判断商品页标志可能误用旧页面。采购任务必须在不可逆动作前确认本次链接确实打开了目标商品。
复现步骤
做什么 / 不做什么
做
PDD_GOODS_UNAVAILABLE商品链接已失效,PDD 无法打开商品详情页并返回了首页不做
pdd_data和任务状态定义;如实施时发现必须修改,先更新工单并重新确认范围。已确认的实现方案
open_url()前记录当前页面类型或脱敏签名,用于发现“仍停留在上一个商品页”;不得将该签名作为新任务的业务数据复用。PDD_GOODS_UNAVAILABLE。预计修改文件(Codex 实施前按实际代码确认):
client/src/pdd_collect_service.pyclient/src/pdd_u2_purchase_adapter.pyclient/src/collect_task_service.pyclient/src/purchase_task_service.pyclient/src/task_dispatcher.py或实际自动调度分类位置docs/client/稳定错误码或流程文档验收标准
PDD_GOODS_UNAVAILABLE和明确中文提示。验证方式
从
client/目录执行:真机验证:
PDD_GOODS_UNAVAILABLE。风险和回退
PDD_GOODS_UNAVAILABLE映射保持独立提交,可回退到原超时行为;不涉及数据库和 Admin 数据回滚。状态:待实施。本轮仅完成工单创建与父工单 #1 回填,未修改代码、未提交 Git。实施前先从真实失效链接跳转流程采集并脱敏 PDD 首页控件树,再按正文状态机和验收标准开发。
状态更新为 进行中。开始按工单范围检查采集/采购共用页面分类、旧商品页防误判、一次受控重开和持续自动获取续跑逻辑。真实下单默认关闭;真机阶段只允许读取控件树或执行采集/dry_run,不创建订单、不付款。当前工作区已有 UI、脚本及 XML 未提交内容,将保留且不混入本工单。
状态更新为 待验收(代码准备提交)。
已完成:
PDD_GOODS_UNAVAILABLE;网络等异常不误判为链接失效。验证:
329 tests,通过。OK,通过。git diff --check:通过。实现与归档已提交,工单进入 待用户验收,暂不关闭。
8c9dbfe(fix: 识别失效商品链接返回首页 (#111))8188153(docs: 归档任务 #111)docs/task/111-识别失效PDD商品链接返回首页.mdOK)待用户验收后再关闭 #111,并同步父工单 #1。真机失效链接端到端未执行的原因和替代覆盖已写入归档。
用户已于 2026-08-11 明确验收通过。
eca9289