Files
junhong_cmp_fiber/openspec/changes/archive/2026-09-14-fix-immediate-package-payment-resume/proposal.md
break 48c85a4916
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m35s
docs(归档): 归档已用完套餐展示与支付购包即时复机两个变更
- fix-depleted-package-display → archive/2026-09-14-fix-depleted-package-display;
  补记验证:`GetCurrentMainPackage`(package_usage_store.go:63-66)按 status IN (1,2) 读取主套餐,
  资产信息 `fillPackageInfo`(service/asset/service.go:348-349)复用该读取,
  已用完主套餐返回名称、使用记录、时间与流量指标,待生效/已过期/已失效仍不作为当前套餐;
  实现提交 ff25586,4 项任务全部完成。
- fix-immediate-package-payment-resume → archive/2026-09-14-fix-immediate-package-payment-resume;
  补记八月迭代同步验证:定点同步提交 b38b2b3 已是 Iteration/8-11 的 HEAD 祖先,
  在途支付商户装配保留(98c145f);services.go:277 `orderService.SetResumeCallback(stopResumeService)`
  在位,`go build ./cmd/api ./cmd/worker` 通过;2.1/2.2 据此勾选。
- 主 Spec 同步:personal-customer 新增「资产信息展示当前可用或已用完主套餐」;
  package-lifecycle 修改为支付成功后已生效主套餐触发一次即时自动复机检查。

openspec validate --all 为 38 passed / 0 failed;doctor healthy。
2026-09-14 09:49:03 +08:00

26 lines
1.3 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.
## Why
套餐订单的第三方支付回调已在提交套餐权益后调用自动复机入口,但 API 进程的订单服务未注入复机回调。支付成功后,卡只能等待异步观测或套餐轮询才可能恢复网络,不能满足支付成功后立即按最新业务事实检查并复机的要求。
## What Changes
- 在 API 进程为订单服务注入已有的停复机模块,使套餐订单支付事务成功提交后立即触发一次自动复机资格检查。
- 仅对本订单已持久化为生效中的主套餐触发检查;排队、待实名或其他未生效主套餐不得触发复机。
- 沿用已有停复机模块的套餐、流量、实名、停机原因和幂等锁判断;支付回调不等待 Gateway 调用完成。
- 不修改套餐生效状态机、支付状态机、Worker 复机逻辑或轮询兜底机制。
## Capabilities
### New Capabilities
- 无。
### Modified Capabilities
- `package-lifecycle`: 规定套餐订单支付成功后,已生效主套餐触发一次基于已提交业务事实的即时自动复机检查。
## Impact
- 代码:`internal/bootstrap/services.go`
- 运行时API 支付回调完成数据库事务后异步调用既有 Gateway 复机路径;无需迁移、路由或新的外部协议。
- 同步:补丁先合入 `main`,再以单独提交定点同步到 `Iteration/8-11`