Client 当前拒绝 purchase_mode=live,Adapter 只能到确认页并在提交前停止。需要为一台明确授权的 Client 增加一次性提交未付款订单能力。
purchase_mode=live
execution_mode
irreversible_action_at
pay/payment
cd D:\chengma\cmautobuy\client C:/Python310/python.exe -m unittest discover -s test -v $env:QT_QPA_PLATFORM='offscreen' C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); print('OK'); app.quit()" Remove-Item Env:QT_QPA_PLATFORM
脱敏 XML 验证按钮、安全异常和���击次数;真实提交只在集成工单执行。
用默认关闭、设备绑定、最终复核、不可逆先落库和单击一次控制误下单。回退时关闭 live 授权并只声明 dry_run;不得删除不可逆记录或重跑任务。
客户已取消 Client 手工 live 授权。原“默认关闭、输入确认文字并绑定 Client/设备启用”的部分由 #114 替代为自动运行时就绪声明:Client 身份有效、已选 Android 设备且真实采购 Adapter 可用时自动上报 purchase_mode=live,否则不领取 live 任务。本文已完成的最终复核、不可逆标记、单次提交、禁止付款和异常转人工实现继续有效,不得削弱。
开始实施 #99。前置 #98 已验收关闭。范围严格保持:live 默认关闭,只在本地明确授权且 Client/设备/正式 Adapter 一致时声明能力;最终提交前重新核验并先持久化不可逆标记;最终按钮只单击一次;不付款、不绕过验证码/登录/风控,不可逆后不重试。实现和验证阶段不执行真实下单。
现有基础:#71/#72/#73/#75 已提供 dry-run 流程、价格校验、irreversible_action_at 字段、崩溃恢复和正式 uiautomator2 演练 Adapter。
本次按以下边界实施:
AdminTask
dry_run
PddPurchaseAdapter
PddLivePurchaseAdapter
submit_order_once()
reconcile_purchase
预计新增/修改:Admin Gateway/HTTP/Mock、task model/schema/repository/dispatcher、live 授权服务、设置 UI/event、采购 service、独立 live Adapter/uiautomator2 实现、详情中文步骤、测试和 Client 基线文档。
实现进度更新(待提交):
验证:在 client 目录执行 C:\Python310\python.exe -m pytest -q --disable-warnings,结果 286 passed。未执行真实手机下单;Wi-Fi 设备留待独立真机验收工单按当次授权验证。
已完成实现并进入待验收:
未执行真实 PDD 下单。当前已有 Wi-Fi Android 设备不等于获得真实提交授权;真机最终提交仍按独立验收工单,在当次明确授权后执行。请按 #99 验收标准验收,本工单保持打开。
关联范围变更:#112 将 Admin 新建采购任务固定为 live,但不取消本工单已实现的 Client 本地授权、Client ID/设备绑定、最终复核、不可逆标记和单次提交边界。#99 的实现历史不重写;Admin 默认策略由 #112 单独实施和回退。
用户已于 2026-08-11 明确验收通过。
eca9289
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
Client 当前拒绝
purchase_mode=live,Adapter 只能到确认页并在提交前停止。需要为一台明确授权的 Client 增加一次性提交未付款订单能力。做什么 / 不做什么
execution_mode;提交前重新核验;先持久化不可逆标记;唯一按钮单击一次;立即进入核单流程。怎么做
execution_mode;dry_run Client 拒绝 live 任务���irreversible_action_at和步骤;写入失败绝不点击。pay/payment方法或付款定位器。验收标准
怎么验证
脱敏 XML 验证按钮、安全异常和���击次数;真实提交只在集成工单执行。
风险和回退
用默认关闭、设备绑定、最终复核、不可逆先落库和单击一次控制误下单。回退时关闭 live 授权并只声明 dry_run;不得删除不可逆记录或重跑任务。
方案变更(2026-08-10,由 #114 接续)
客户已取消 Client 手工 live 授权。原“默认关闭、输入确认文字并绑定 Client/设备启用”的部分由 #114 替代为自动运行时就绪声明:Client 身份有效、已选 Android 设备且真实采购 Adapter 可用时自动上报
purchase_mode=live,否则不领取 live 任务。本文已完成的最终复核、不可逆标记、单次提交、禁止付款和异常转人工实现继续有效,不得削弱。开始实施 #99。前置 #98 已验收关闭。范围严格保持:live 默认关闭,只在本地明确授权且 Client/设备/正式 Adapter 一致时声明能力;最终提交前重新核验并先持久化不可逆标记;最终按钮只单击一次;不付款、不绕过验证码/登录/风控,不可逆后不重试。实现和验证阶段不执行真实下单。
实施前代码审查与细化
现有基础:#71/#72/#73/#75 已提供 dry-run 流程、价格校验、
irreversible_action_at字段、崩溃恢复和正式 uiautomator2 演练 Adapter。本次按以下边界实施:
execution_mode进入 Client 的AdminTask、领取校验和 SQLite v3 规范化字段;缺省及旧任务仍为dry_run,采集任务禁止 live。PddPurchaseAdapter为无提交方法的演练接口;另建PddLivePurchaseAdapter,只增加一次性submit_order_once(),不增加 pay/payment/cancel 方法。TaskDispatcher 只有同时满足本地授权、绑定一致和 live factory 就绪才声明purchase_mode=live。reconcile_purchase,不得生成第二次提交路径。预计新增/修改:Admin Gateway/HTTP/Mock、task model/schema/repository/dispatcher、live 授权服务、设置 UI/event、采购 service、独立 live Adapter/uiautomator2 实现、详情中文步骤、测试和 Client 基线文档。
实现进度更新(待提交):
验证:在 client 目录执行 C:\Python310\python.exe -m pytest -q --disable-warnings,结果 286 passed。未执行真实手机下单;Wi-Fi 设备留待独立真机验收工单按当次授权验证。
已完成实现并进入待验收:
未执行真实 PDD 下单。当前已有 Wi-Fi Android 设备不等于获得真实提交授权;真机最终提交仍按独立验收工单,在当次明确授权后执行。请按 #99 验收标准验收,本工单保持打开。
ila referenced this issue2026-08-10 17:44:23 +08:00
关联范围变更:#112 将 Admin 新建采购任务固定为 live,但不取消本工单已实现的 Client 本地授权、Client ID/设备绑定、最终复核、不可逆标记和单次提交边界。#99 的实现历史不重写;Admin 默认策略由 #112 单独实施和回退。
用户已于 2026-08-11 明确验收通过。
eca9289