|
@@ -156,7 +156,18 @@ class SafePayLogic extends BaseApiLogic
|
|
|
$body['amount'] = (int) round($payAmt * NumConfig::NUM_VALUE);
|
|
$body['amount'] = (int) round($payAmt * NumConfig::NUM_VALUE);
|
|
|
|
|
|
|
|
$config = (new PayConfig())->getConfig('SafePay');
|
|
$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 {
|
|
try {
|
|
|
$service = new OrderServices();
|
|
$service = new OrderServices();
|