Clone
7
Task 66 Android payment chooser reconciliation
QiuSW edited this page 2026-09-21 16:13:32 +08:00

66 修复创建订单后多微信选择器与只读核单恢复

  • 类型:缺陷
  • 所属 Epic:采购 MVP
  • 状态:待用户验收
  • 日期:2026-08-22
  • Gitea 工单:#66
  • 设计证据:恢复 Android 内部只读核单行为,无 Admin UI 变化,不需要原型。

背景与目标

CG-12 已完成地址修改和最终复核,并在 2026-08-22 10:03:43.027 进入 order_submit_started。创建订单按钮只点击一次后,三星进入 Android 多微信应用选择器,旧 Agent 没有识别系统选择器,无法回到 PDD 获取订单号和下单时间,任务进入 order_result_unknown。全程未支付。

用户确认正确流程是从多微信选择器返回 PDD,再离开 PDD 支付页,继续只读订单详情。参考 D:\chengma\cmautobuy\client\src\pdd_u2_purchase_reconcile_adapter.py 的白名单核单实现。

最终方案

  • 只有前台包为 android / com.android.intentresolver、Activity 为已知 ChooserActivity / ResolverActivity、页面出现已知选择器标题且至少一个候选以“微信”开头时,才把页面认定为多微信选择器。
  • 已知选择器最多按一次返回,不点击任何微信候选;一次返回后仍出现选择器则返回未知结果。
  • 回到 PDD com.xunmeng.pinduoduo.app_pay.core.PayActivity,或当前页面出现明确支付动作文字时,最多再按一次返回;不点击支付控件。
  • 返回 PDD 后继续累计只读页面证据,只有唯一订单号和合法下单时间同时成立才完成核单。
  • 非白名单系统页面、返回失败、重复选择器/支付页、结果歧义或超时均返回未知结果;不重新创建任务、不再次点击创建订单、不取消订单、不支付。
  • CG-12 保持 order_result_unknown,本工单实施期间未重试或自动解除。
  • 用户于 2026-08-22 人工确认 CG-12 对应商品已出现在 PDD“待付款订单”,证明创建订单成功且不得再次下单;由于尚未取得订单号和下单时间,服务端仍保持 order_result_unknown。

修改文件

  • android/app/src/main/java/cn/ilapage/goauto/agent/automation/PurchaseLiveAutomation.kt
  • android/app/src/test/java/cn/ilapage/goauto/agent/PurchaseLiveAutomationTest.kt
  • Wiki Business-Rules-and-Glossary、Android-Agent-API-Contract

验收结果

验收标准 结果
已知多微信选择器最多返回一次且不点击微信 自动化测试通过
PDD 支付页最多返回一次且不点击支付 自动化测试通过
返回订单详情后读取唯一订单号和下单时间 自动化测试通过
非白名单选择器不自动返回 自动化测试通过
既有地址、创建订单一次性和禁止支付边界 Android 全量测试通过
最新 APK 安装三星 adb install -r 返回 Success
CG-12 是否实际创建待付款订单 用户人工确认存在;未支付

测试

  • android/gradlew.bat testDebugUnitTest --tests cn.ilapage.goauto.agent.PurchaseLiveAutomationTest:通过。
  • android/gradlew.bat testDebugUnitTest assembleDebug:通过。
  • scripts/verify.ps1 -Component android:通过。
  • python dev_scripts/harness.py check --strict:通过。
  • git diff --check:通过。
  • 未验证部分:最新 APK 尚未通过新的正式采购任务验证自动选择器返回与订单号读取。CG-12 已人工确认存在待付款订单,但尚缺订单号和下单时间,不能解除 order_result_unknown;再次创建订单或继续不可逆核单必须获得用户明确授权。全程未支付。

相关提交

  • 0ceb248 fix(#66): recover from Android payment chooser

验收结论

  • 状态:已验收
  • 验收日期:2026-08-22
  • 用户确认:#66 验收通过
  • 真机证据:CG-12 已出现在 PDD「待付款订单」中
  • 实现提交:0ceb2482338f8bce84bb7bf4d0d9a8cfa74b0c42
  • 安全边界:仅恢复多微信选择器与执行只读核单,未执行支付