فهرست منبع

fix(payment): 修复随机折扣计算逻辑

- 调整随机折扣最小值为0,避免负数情况
- 增加支付金额最低限制,确保不低于0.01
- 对支付金额进行四舍五入保留两位小数
runphp 4 ماه پیش
والد
کامیت
57cb16920e
1فایلهای تغییر یافته به همراه2 افزوده شده و 1 حذف شده
  1. 2 1
      src/PaymentProvider.php

+ 2 - 1
src/PaymentProvider.php

@@ -49,8 +49,9 @@ class PaymentProvider implements PaymentProviderInterface
             throw new  \RuntimeException('开发测试中,请稍后再试');
         }
         $payment->transaction(function () use ($bizType, $order, $payment) {
-            $randomDiscount = mt_rand(1, intval($this->config->random_discount_max * 100)) / 100;
+            $randomDiscount = mt_rand(0, intval($this->config->random_discount_max * 100)) / 100;
             $order['pay_amount'] = $order['pay_amount'] - $randomDiscount;
+            $order['pay_amount'] = max(0.01, round($order['pay_amount'], 2));
             $payment->save([
                 'user_id' => $order['user_id'],
                 'order_id' => $order['id'],