Bug 描述
0.1.141 版本中,订阅订单确认页的金额没有经过汇率换算,直接显示套餐 USD price 套上 ¥ 符号。
这是 #3499 的回归——#3510 在 0.1.140 中修复了该问题,但 0.1.141 的提交 93032611("fix: 修复订阅支付金额显示错误")将修复代码回退。
复现步骤
- 后台设置
payment_balance_recharge_multiplier = 0.14
- 支付方式开启支付宝(CNY 通道)
- 创建订阅套餐,
price = 9.99(USD 计价)
- 用户在前端选择该套餐,进入订单确认页
- 确认页显示
¥9.99,但支付宝实际扣款 ¥71.36(9.99 ÷ 0.14 = 71.36)
期望行为
确认页应显示换算后的 CNY 实付金额:¥71.36
实际行为
确认页显示 ¥9.99(USD price 直接套了 ¥ 符号)
根因分析
提交 93032611(0.1.141)对 frontend/src/views/user/PaymentView.vue 做了以下回退:
#3510 添加的代码(0.1.140,已被删除)
function subscriptionPaymentAmountForCurrency(value: number, currency: string): number {
if (currency !== DEFAULT_PAYMENT_CURRENCY) return value
return roundPaymentAmount(value / balanceRechargeMultiplier.value, currency)
}
function subscriptionPaymentAmount(value: number): number {
return subscriptionPaymentAmountForCurrency(value, selectedCurrency.value)
}
9303261 替换为(0.1.141,丢失换算)
// subPaymentAmount 从:
// subscriptionPaymentAmount(price) ← 会除以 multiplier 换算
// 改成了:
// roundPaymentAmount(price, selectedCurrency.value) ← 不换算
subscriptionPaymentAmountForCurrency 中的 value / balanceRechargeMultiplier.value 是关键换算逻辑,被完全移除。
数据库证据
| 订单 |
amount (USD) |
pay_amount (CNY) |
换算 |
| #21 |
9.99 |
71.36 |
9.99 ÷ 0.14 = 71.36 ✅ |
| #23 |
9.99 |
71.36 |
✅ |
后端 pay_amount 换算正确,问题仅在前端展示层。
相关提交
| 提交 |
日期 |
说明 |
88ca0c1d |
2026-06-27 |
PR #3510:修复 #3499,添加换算逻辑 ✅ |
93032611 |
2026-06-30 |
"fix: 修复订阅支付金额显示错误":回退了 #3510 的换算逻辑 ❌ |
环境
- Sub2API:0.1.141
- 支付通道:alipay(CNY)
payment_balance_recharge_multiplier:0.14
Bug 描述
0.1.141 版本中,订阅订单确认页的金额没有经过汇率换算,直接显示套餐 USD
price套上¥符号。这是 #3499 的回归——#3510 在 0.1.140 中修复了该问题,但 0.1.141 的提交
93032611("fix: 修复订阅支付金额显示错误")将修复代码回退。复现步骤
payment_balance_recharge_multiplier = 0.14price = 9.99(USD 计价)¥9.99,但支付宝实际扣款¥71.36(9.99 ÷ 0.14 = 71.36)期望行为
确认页应显示换算后的 CNY 实付金额:
¥71.36实际行为
确认页显示
¥9.99(USD price 直接套了 ¥ 符号)根因分析
提交
93032611(0.1.141)对frontend/src/views/user/PaymentView.vue做了以下回退:#3510 添加的代码(0.1.140,已被删除)
9303261 替换为(0.1.141,丢失换算)
subscriptionPaymentAmountForCurrency中的value / balanceRechargeMultiplier.value是关键换算逻辑,被完全移除。数据库证据
后端
pay_amount换算正确,问题仅在前端展示层。相关提交
88ca0c1d93032611环境
payment_balance_recharge_multiplier:0.14