Browse Source

fix payment_fee1

Co-authored-by: Copilot <copilot@github.com>
laowu 1 week ago
parent
commit
fd54ddcf8c
1 changed files with 12 additions and 1 deletions
  1. 12 1
      app/Http/logic/api/SafePayLogic.php

+ 12 - 1
app/Http/logic/api/SafePayLogic.php

@@ -156,7 +156,18 @@ class SafePayLogic extends BaseApiLogic
         $body['amount'] = (int) round($payAmt * NumConfig::NUM_VALUE);
 
         $config = (new PayConfig())->getConfig('SafePay');
-        $body['payment_fee'] = (int)($body['amount'] * ($config['payin_fee'] ?? 0)) + 30;
+
+        // 根据支付方式计算代收手续费: 费率% * 金额 + 固定$
+        // pay_rate 格式: [1=>[10,0.3], 2=>[13,0.3], 4=>[11,0.3], 8=>[12,0.3]]
+        $payRates = $config['pay_rate'] ?? null;
+        if (is_array($payRates)) {
+            $payMethod = $order->order_title ?? 1;
+            $payRate = $payRates[$payMethod] ?? ($payRates[1] ?? [10, 0.3]);
+            $feePercent = $payRate[0] ?? 10;
+            $feeFixed = $payRate[1] ?? 0.3;
+            $body['payment_fee'] = intval(($body['amount'] * $feePercent) / 100)
+                + (int)($feeFixed * NumConfig::NUM_VALUE);
+        }
 
         try {
             $service = new OrderServices();