Skip to content

v1.12.16 手续费百分比计算修复

Choose a tag to compare

@SunGreatSage SunGreatSage released this 07 Aug 15:54
· 108 commits to main since this release

v1.12.16

🐛 修复:手续费百分比计算错误(充100元+5%变600)

根因

PaymentService::calcFee() 的百分比分支用 $amountFen * $fee,把 fee 当成小数
(0.05=5%)。但后台 UI 提示"如 1.5 表示 1.5%",用户按百分数值填 5(意图 5%),
代码却算成 10000分 × 5 = 50000分 = ¥500 → 应付 = 原金额 + 500 = ¥600。

UI 与后端语义不一致。

修复

calcFee() 百分比分支改为 $amountFen * $fee / 100(fee=5 → 5%),与后台 UI 提示一致。
同步更新方法注释说明语义。

验证

场景 修复前 修复后 正确
5% 客户承担, 充100元 ¥600 ✗ ¥105 ✓
1.5% 客户承担, 6.50元 — ¥6.60 ✓
5% 商户承担, 100元 — ¥100(手续费记商户) ✓
固定 0.5元 客户承担 — ¥7.00 ✓

php artisan test:176 通过 / 545 断言,无回归。

说明

  • 已填写的百分比值(如 5)修复后会被正确解释为 5%,无需迁移数据。
  • 仅改 app/Support/PaymentService.php。