Files
device-voice-h5/openspec/changes/add-package-silence-extension/tasks.md
邹进 31ff18d66a
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 23m46s
feat: C 端套餐沉默期展示与自助延期
- 套餐历史展示沉默期状态、截止日期、累计延期与调整审批中,可延期时显示延期入口
- 新增延期页:资格、档位与自定义天数试算、支付方式、下单(request_id 幂等)
- 支付宝走现有支付页;微信为链接时在微信外直接跳转,否则展示二维码与复制链接
- 新增我的延期订单列表与详情、沉默期记录,沉默期错误码转客户提示
2026-11-07 13:19:33 +09:00

39 lines
3.5 KiB
Markdown
Raw Blame History

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.
## 1. 接口与工具
- [x] 1.1 新增 `api/modules/packageSilence.js`(eligibility、quote、createOrder、getOrders、getOrder、getRecords),在 `api/index.js` 导出
- [x] 1.2 确认 `normalizeAssetPackageHistory` 保留 `silence` 对象(含加油包子节点),补充布尔字段 `extendable`、`silence_adjust_pending` 归一化
- [x] 1.3 新增 `utils/silence.js`(错误码与延期纯函数,代替原计划的 silence-errors.js):错误码 1263~1274 与资格 `reason` 的客户提示文案,1265/1266 拼接范围
- [x] 1.4 新增延期支付方式过滤:`allowed_payment_methods` 与 `wechat`、`alipay` 取交集
## 2. 套餐历史展示
- [x] 2.1 `PackageHistoryNode.vue` 增加沉默期区域:状态名、截止日期、沉默期天数、累计延期天数、"调整审批中";`silence` 为空不渲染
- [x] 2.2 `extendable = true` 时显示"延期"入口,跳转延期页并带 `package_usage_id`
- [x] 2.3 有 `silence` 的套餐显示"沉默期记录"入口
- [x] 2.4 套餐历史页增加"我的延期订单"入口;从延期成功返回时刷新列表
## 3. 延期页
- [x] 3.1 新建 `pages/silence-extension/silence-extension` 并注册 `pages.json`
- [x] 3.2 加载资格:不能办理时展示原因;有 `pending_order_no` 时提示并提供订单详情入口;1274 显示功能未开放
- [x] 3.3 展示当前截止日期、已过期天数、`options` 档位(计费天数、金额、新截止日),默认选第一档
- [x] 3.4 自定义天数输入:范围与整数校验,防抖调用试算,丢弃过期响应
- [x] 3.5 支付方式选择;无可用方式时提示暂不支持在线延期
- [x] 3.6 下单:生成并复用 `request_id`,提交中防重复,错误码按 1.3 提示
- [x] 3.7 拉起支付:支付宝走现有支付宝支付页;微信按 design D5(链接跳转或二维码);拉起前写待刷新标记(微信:微信外为链接直接跳转,其余进入延期支付页展示二维码与复制链接)
- [x] 3.8 `onShow` 消费待刷新标记后查询订单详情,`completed` 时提示延期成功
## 4. 延期订单与流水
- [ ] 4.1 新建延期订单列表页(分页、按支付时间筛选、默认当前资产)(已做分页与默认当前资产;按支付时间筛选未做)
- [x] 4.2 新建延期订单详情页:订单号、套餐、输入/计费天数、金额、状态、支付方式、截止时间变化、支付与生效时间;`pending_payment` 且有 `qr_content` 时"继续支付"
- [x] 4.3 新建沉默期流水页:按时间展示 `event_name`、截止时间变化、天数,空状态
## 5. 测试与验证
- [x] 5.1 在 `tests/` 增加用例:沉默期显示与入口条件、天数校验、`request_id` 复用、错误码映射、支付返回刷新(tests/silence.test.mjs 覆盖天数校验、request_id 复用、错误码映射、支付方式过滤;页面级的显示与入口条件、支付返回刷新未写自动化用例;既有 october-h5 38 项通过)
- [x] 5.2 本地 `build:h5`(development 模式)通过,确认接口指向测试后端
- [ ] 5.3 确认延期订单微信支付方式(design Open Questions),按结论调整 3.7(测试库微信商户池为 wechat_v2 直连,返回 H5 支付链接,公众号内需实测)
- [ ] 5.4 测试环境打开沉默期总开关后,用测试资产走通:展示 → 资格 → 试算 → 下单 → 支付 → 延期生效 → 流水
- [ ] 5.5 推送 `iteration/8-11` 部署测试环境(先排查 C 端 CI 未触发构建的原因)