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

3.5 KiB
Raw Blame History

1. 接口与工具

  • 1.1 新增 api/modules/packageSilence.js(eligibility、quote、createOrder、getOrders、getOrder、getRecords),在 api/index.js 导出
  • 1.2 确认 normalizeAssetPackageHistory 保留 silence 对象(含加油包子节点),补充布尔字段 extendable、silence_adjust_pending 归一化
  • 1.3 新增 utils/silence.js(错误码与延期纯函数,代替原计划的 silence-errors.js):错误码 1263~1274 与资格 reason 的客户提示文案,1265/1266 拼接范围
  • 1.4 新增延期支付方式过滤:allowed_payment_methods 与 wechat、alipay 取交集

2. 套餐历史展示

  • 2.1 PackageHistoryNode.vue 增加沉默期区域:状态名、截止日期、沉默期天数、累计延期天数、"调整审批中";silence 为空不渲染
  • 2.2 extendable = true 时显示"延期"入口,跳转延期页并带 package_usage_id
  • 2.3 有 silence 的套餐显示"沉默期记录"入口
  • 2.4 套餐历史页增加"我的延期订单"入口;从延期成功返回时刷新列表

3. 延期页

  • 3.1 新建 pages/silence-extension/silence-extension 并注册 pages.json
  • 3.2 加载资格:不能办理时展示原因;有 pending_order_no 时提示并提供订单详情入口;1274 显示功能未开放
  • 3.3 展示当前截止日期、已过期天数、options 档位(计费天数、金额、新截止日),默认选第一档
  • 3.4 自定义天数输入:范围与整数校验,防抖调用试算,丢弃过期响应
  • 3.5 支付方式选择;无可用方式时提示暂不支持在线延期
  • 3.6 下单:生成并复用 request_id,提交中防重复,错误码按 1.3 提示
  • 3.7 拉起支付:支付宝走现有支付宝支付页;微信按 design D5(链接跳转或二维码);拉起前写待刷新标记(微信:微信外为链接直接跳转,其余进入延期支付页展示二维码与复制链接)
  • 3.8 onShow 消费待刷新标记后查询订单详情,completed 时提示延期成功

4. 延期订单与流水

  • 4.1 新建延期订单列表页(分页、按支付时间筛选、默认当前资产)(已做分页与默认当前资产;按支付时间筛选未做)
  • 4.2 新建延期订单详情页:订单号、套餐、输入/计费天数、金额、状态、支付方式、截止时间变化、支付与生效时间;pending_payment 且有 qr_content 时"继续支付"
  • 4.3 新建沉默期流水页:按时间展示 event_name、截止时间变化、天数,空状态

5. 测试与验证

  • 5.1 在 tests/ 增加用例:沉默期显示与入口条件、天数校验、request_id 复用、错误码映射、支付返回刷新(tests/silence.test.mjs 覆盖天数校验、request_id 复用、错误码映射、支付方式过滤;页面级的显示与入口条件、支付返回刷新未写自动化用例;既有 october-h5 38 项通过)
  • 5.2 本地 build:h5(development 模式)通过,确认接口指向测试后端
  • 5.3 确认延期订单微信支付方式(design Open Questions),按结论调整 3.7(测试库微信商户池为 wechat_v2 直连,返回 H5 支付链接,公众号内需实测)
  • 5.4 测试环境打开沉默期总开关后,用测试资产走通:展示 → 资格 → 试算 → 下单 → 支付 → 延期生效 → 流水
  • 5.5 推送 iteration/8-11 部署测试环境(先排查 C 端 CI 未触发构建的原因)