seven 1 bulan lalu
induk
melakukan
cfb94dbdfc
1 mengubah file dengan 41 tambahan dan 5 penghapusan
  1. 41 5
      app/Services/PaymentOrderService.php

+ 41 - 5
app/Services/PaymentOrderService.php

@@ -240,9 +240,7 @@ class PaymentOrderService extends BaseService
         // 判断商户号
         if($params['mchId'] == SanJinService::getMerchantId()){
             $must = ['mchId','productId','tradeNo','outTradeNo','amount','payAmount','state','createTime','payTime'];
-            if($params['sign'] != SanJinService::signature($params,$must)){
-                return 'sign';
-            }
+            
 
             $info = self::findOne(['order_no' => $params['outTradeNo']]);
             if($info){
@@ -257,12 +255,50 @@ class PaymentOrderService extends BaseService
                     $text .= "失败原因:支付金额与订单金额不一致 \n";
                     $text .= "请联系客服处理!";
                     self::sendMessage($info->member_id,$text);
-                    return 'amount';
+                    return false;
+                }
+                
+                if($params['sign'] != SanJinService::signature($params,$must)){
+                    return false;
+                }
+
+                if($info->status != self::STATUS_PROCESS){
+                    return false;
                 }
-            
           
                 // 付款
                 if($info->type == self::TYPE_PAY){
+                    if($params['state'] == 1){
+                        $info->status = self::STATUS_SUCCESS;
+                        $wallet = WalletService::findOne(['member_id' => $info->member_id]);
+                        $balance = $wallet->available_balance;
+                        $available_balance = bcadd($balance,$payAmount,10);
+                        $wallet->available_balance = $available_balance;
+                        $wallet->save();
+
+                        // 记录余额变动日志
+                        BalanceLogService::addLog(
+                            $info->member_id,
+                            $payAmount,
+                            $balance,
+                            $available_balance,
+                            '三方充值',
+                            $info->id,
+                            ''
+                        );
+
+                        $text = "✅ 支付成功 \n";
+                        $text .= "充值金额:{$payAmount} RMB \n";
+                        $text .= "订单号:{$params['outTradeNo']} \n";
+                        $text .= "您充值的金额已到账,请注意查收!";
+                        self::sendMessage($info->member_id,$text);
+                    }else{
+                        $info->status = self::STATUS_FAIL;
+                        $text = "❌ 支付失败 \n";
+                        $text .= "充值金额:{$payAmount} RMB \n";
+                        $text .= "订单号:{$params['outTradeNo']} \n";
+                    }
+                    $info->save();
                     return true;
                 }
             }