## ADDED Requirements ### Requirement: 按资产类型配置允许支付方式 `system_config` SHALL 分别定义卡和设备允许的支付方式集合。两个配置首次初始化均 MUST 包含 `wallet`、`wechat`、`alipay`;管理员可独立取消或重新勾选任一方式,但每个集合至少保留一种合法方式。C 端 SHALL 返回配置集合与当前业务场景限制的交集,订单创建和支付准备 MUST 在后端再次校验;配置为空、包含未知值、重复值或无法读取时失败关闭,不得放开全部方式。 #### Scenario: 卡配置不允许微信支付 - **WHEN** 卡允许支付方式不包含微信且客户端尝试创建微信支付订单 - **THEN** 系统拒绝订单或支付准备请求并返回支付方式不可用错误 #### Scenario: 前端读取设备允许方式 - **WHEN** C 端初始化设备购买流程 - **THEN** 响应只返回设备配置允许的支付方式列表 #### Scenario: 管理员独立关闭钱包 - **WHEN** 管理员在卡或设备支付配置中取消勾选钱包且仍保留至少一种其他方式 - **THEN** 系统保存配置,后续 C 端购包响应不再返回钱包且后端拒绝钱包支付请求 #### Scenario: 管理员取消全部方式 - **WHEN** 管理员尝试取消某类资产的全部支付方式 - **THEN** 系统拒绝更新并保留原有效配置 ### Requirement: 强充场景过滤钱包并保持自动购包 系统判定当前资产仍命中既有强充规则时,C 端购包可选方式 MUST 在资产配置集合基础上剔除 `wallet`;后端创建订单时 MUST 执行相同校验。选择有效微信或支付宝后 SHALL 继续沿用充值入账和异步自动购包流程,不得降级为提示用户手工充值。 #### Scenario: 首次强充选择支付方式 - **WHEN** 当前资产尚未触发对应系列的一次性佣金且本次购包命中强充规则 - **THEN** 前端响应不包含钱包,微信或支付宝支付成功后系统自动完成充值入账和后续购包 #### Scenario: 绕过前端提交钱包强充 - **WHEN** 客户绕过前端在强充购包请求中提交 `wallet` - **THEN** 后端拒绝请求且不创建套餐订单、充值单或支付单 #### Scenario: 一次性佣金已经触发 - **WHEN** 当前资产对应系列的一次性佣金已经触发 - **THEN** 系统不再按该规则强充,购包可选方式重新按当前资产配置集合返回 ### Requirement: 新订单选择方式并由待支付订单固化 普通购买和从历史订单发起的续费 SHALL 在创建新订单前选择当前有效支付方式;新订单创建成功后 MUST 固化该方式,后续支付不得在原订单上切换。续费不是修改历史订单,历史订单和既有待支付订单均不得被覆盖支付方式。 #### Scenario: 从历史订单发起续费 - **WHEN** 客户从历史已支付订单发起续费 - **THEN** 客户可从当前有效集合重新选择方式并创建一张新订单 #### Scenario: 待支付订单尝试切换方式 - **WHEN** 客户支付既有待支付订单时提交与订单保存值不同的方式 - **THEN** 系统拒绝切换并保持订单原支付方式