shaw
d56e94b875
feat(payment): 订阅 CNY 换算改为独立汇率配置的显式 opt-in
- 新增 SUBSCRIPTION_USD_TO_CNY_RATE 配置(1 USD = X CNY,默认 0=关闭),
替代复用 balance_recharge_multiplier 的隐式换算,促销倍率与订阅定价解耦
- 未配置汇率时订阅保持 price 直付的存量行为,存量部署升级零影响
- 前端确认页/原价/手续费/方式限额与后端换算条件严格镜像(rate>0 且币种为 CNY)
- 管理后台新增汇率配置输入(zh/en 文案),checkout-info 透出 subscription_usd_to_cny_rate
- 单测锁定:汇率未配置时不换算、换算使用汇率而非余额倍率、余额订单不受影响、返利仍按 USD price
2026-07-06 14:34:17 +08:00
..
2026-07-04 09:53:01 +08:00
2026-07-04 09:53:01 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-05 17:24:38 +08:00
2026-04-27 17:32:34 +08:00
2026-02-28 20:38:35 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 11:43:16 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-03-04 15:22:46 +08:00
2026-05-27 18:00:45 +08:00
2026-04-28 11:15:09 +08:00
2026-07-05 17:24:38 +08:00
2026-05-03 20:33:13 +08:00
2026-04-09 18:14:28 +08:00
2026-04-09 18:14:28 +08:00
2026-02-11 01:23:21 +08:00
2026-04-27 16:47:44 +08:00
2026-04-27 16:47:44 +08:00
2026-03-16 20:22:10 +08:00
2026-02-28 20:38:35 +08:00
2026-05-19 20:32:32 +08:00
2026-06-26 10:36:09 +08:00
2026-06-12 22:09:53 +08:00
2026-05-19 22:05:43 +08:00
2026-06-10 14:16:51 +08:00
2026-06-12 01:47:01 +08:00
2026-03-11 16:46:58 +08:00
2026-03-17 19:26:30 +08:00
2026-03-17 19:26:30 +08:00
2026-05-19 15:25:34 +08:00
2026-03-17 19:26:11 +08:00
2026-03-17 19:26:11 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:05:54 +08:00
2026-02-10 11:42:39 +08:00
2026-02-24 20:04:05 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 10:42:21 +08:00
2026-07-02 16:11:07 +08:00
2026-03-04 15:22:46 +08:00
2026-03-04 13:45:49 +08:00
2026-02-23 12:45:37 +08:00
2026-02-23 12:45:37 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-06-08 00:01:30 +08:00
2026-02-12 14:20:14 +08:00
2026-07-03 23:02:27 +08:00
2026-07-02 20:04:47 +00:00
2026-02-12 16:27:29 +08:00
2026-02-12 16:27:29 +08:00
2026-03-04 13:45:49 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-02-28 15:01:20 +08:00
2026-06-25 16:23:45 +08:00
2026-06-30 10:19:50 +08:00
2026-06-18 23:07:25 +08:00
2026-04-09 18:14:28 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-04-09 18:14:28 +08:00
2026-05-19 15:53:28 +08:00
2026-05-20 16:08:41 +08:00
2026-03-08 06:59:53 +08:00
2026-02-07 19:46:42 +08:00
2026-07-05 17:24:38 +08:00
2026-06-26 16:19:41 +08:00
2026-05-19 15:27:47 +08:00
2026-05-26 10:49:20 +08:00
2026-07-06 14:34:17 +08:00
2026-03-11 16:46:58 +08:00
2026-03-11 16:46:58 +08:00
2026-07-01 22:19:21 +08:00
2026-05-28 17:27:01 +08:00
2026-05-28 17:27:01 +08:00
2026-03-27 14:33:05 +08:00
2026-02-28 15:01:20 +08:00
2026-04-09 19:25:08 +08:00
2026-05-30 17:52:18 +08:00
2026-04-09 18:14:28 +08:00
2026-05-30 18:56:08 +08:00
2026-05-30 18:56:08 +08:00
2026-05-30 18:56:08 +08:00
2026-03-04 13:45:49 +08:00
2026-05-26 10:49:20 +08:00
2026-05-30 17:52:18 +08:00
2026-06-08 22:54:01 +08:00
2026-06-29 09:40:04 +08:00
2026-06-29 09:40:04 +08:00
2026-05-26 10:49:20 +08:00