feat: 接入远程订阅策略门禁 T-705
Tests / Python 3.11 / Windows (push) Has been cancelled

This commit is contained in:
chengma
2026-07-28 15:42:19 +08:00
parent 593c6f77cb
commit df9da63841
15 changed files with 925 additions and 73 deletions
+6 -3
View File
@@ -188,6 +188,8 @@ T-623 为外部对象存储/CDN下载链接增加临时 HTTP 兼容。版本检
T-624 将 cmhub 版本接口收敛为实际字段:`version`、`download_url`、`sha256`、`release_notes`、`force_update`、`size_bytes`、`published_at`。服务端不需要返回 `package_format` 或更新器协议;客户端固定使用当前 `cmshopee-portable-v1` 和更新器协议构造安装元数据,并在解压后以包内manifest复核真实格式和协议。因此接口字段减少不等于跳过包格式或协议安全检查。
T-705 复用同一 HTTPS 版本接口顶层 `client_policy` 下发订阅检测策略,不增加新的同步启动请求。最后一次有效策略缓存到 `data/config/client_policy.json`,只含非敏感开关与时间;远端和缓存都不可用时回退观察模式。安装包不得预置该缓存,干净安装第一次启动以线上响应为准。远程 `off` 跳过订阅状态请求,`observe` 只展示不限制,`enforce` 才在主窗口显示后异步查询并按 `real_entitlement_allowed` 执行门禁。
## 四、绝不打包的本地数据
发布包里不能包含以下本地数据、密钥、业务数据或登录态:
@@ -224,6 +226,7 @@ cmshopee\
config\
ai_models.json
cmhub.json
client_policy.json
cmshopee.db
chrome_user_data_dir\
images\
@@ -234,7 +237,7 @@ cmshopee\
源码运行时同理使用项目根目录下的 `data\`。`config.json` 内的 `user_data_root`、`image_dir`、`db_path` 默认仍保存为 `chrome_user_data_dir`、`images`、`cmshopee.db` 等相对值,运行时再解析到 `data\` 下,保持便携。
干净安装的默认网关地址已经内置为 `https://cm.833729.com`,用户不需要先填写 Base URL。`data\config\cmhub.json` 不随安装包分发真实 Key;首次启动检测到 Key 缺失时会显示「激活蝦皮圈优化助手」,用户从官方会员中心取得会员 API Key 后在该窗口验证。无效 Key 或网络失败不会写入本地,验证通过后才保存到 `data\config\cmhub.json`,随后显示添加店铺、人工登录、导入 Excel 和开始采集的首次使用清单。
干净安装的默认网关地址已经内置为 `https://cm.833729.com`,用户不需要先填写 Base URL。`data\config\cmhub.json` 不随安装包分发真实 Key;当线上策略为强制模式且检测到 Key 缺失时显示「激活蝦皮圈优化助手」,用户从官方会员中心取得会员 API Key 后在该窗口验证。无效 Key 或网络失败不会写入本地,验证通过后才保存到 `data\config\cmhub.json`,随后显示添加店铺、人工登录、导入 Excel 和开始采集的首次使用清单。关闭或观察模式不得因缺 Key 阻断启动。
这些文件属于用户本地数据,不随新版本程序包覆盖。
@@ -274,8 +277,8 @@ powershell -ExecutionPolicy Bypass -File scripts\build_exe.ps1
- 当前 PyInstaller 6.11.1 下 `dist\cmshopee\_internal\` 必须存在。
- `dist\cmshopee\` 中没有第四节列出的本地数据,尤其不能含 `data\`。
- `release\蝦皮圈優化助手<APP_VERSION>\version.txt`、GUI 标题栏版本、压缩包文件名三者一致。
- 在干净目录首次启动时能生成 `data\config.json`,默认网关地址为 `https://cm.833729.com`,并出现只要求“会员 API Key”的中文激活窗口;安装包和新建 `data\` 中不得预置任何真实 Key。
- 使用测试接口模拟无效 Key、网络失败和有效套餐:前两者不得生成含输入 Key 的本地文件或日志,有效套餐才写入 `data\config\cmhub.json`、启用业务 Tab 并显示首次使用清单。
- 在干净目录首次启动时能生成 `data\config.json`,默认网关地址为 `https://cm.833729.com`;安装包和新建 `data\` 中不得预置真实 Key 或 `client_policy.json`。线上强制策略且缺 Key 时才出现只要求“会员 API Key”的中文激活窗口。
- 使用测试接口模拟 `off/observe/enforce`、无效 Key、网络失败和有效套餐:关闭模式不请求订阅状态,观察模式不限制,强制模式只有 `real_entitlement_allowed=true` 才启用业务 Tab;输入的无效 Key 和网络失败不得写入本地文件或日志。
- 在目标 Windows 10/11 机器或虚拟机上启动 release exe 后,主窗口标题栏完整可见,左边缘不出屏,用户能用标题栏拖动窗口;小分辨率环境不得出现窗口卡在左上角且标题栏不可拖动的问题(见 T-541)。
涉及 Shopee/CDP 的真实更新能力,仍按任务文档要求用测试商品做人工回归;打包任务本身不新增自动绕过登录、验证码或风控的能力。