wesmiler 1 год назад
Родитель
Сommit
f38ab0e239
2 измененных файлов с 33 добавлено и 16 удалено
  1. 29 13
      app/Services/Common/BalanceLogService.php
  2. 4 3
      app/Services/CregisPayService.php

+ 29 - 13
app/Services/Common/BalanceLogService.php

@@ -307,7 +307,6 @@ class BalanceLogService extends BaseService
         $checkStatus = isset($params['status'])? $params['status'] : 0;
         $remark = isset($params['audit_remark'])? trim($params['audit_remark']) : '';
         $payMoney = isset($params['actual_money'])? floatval($params['actual_money']) : 0;
-        $payImg = isset($params['pay_img'])? trim($params['pay_img']) : '';
         if(!in_array($checkStatus,[2,3])){
             $this->error = 1073;
             return false;
@@ -390,33 +389,50 @@ class BalanceLogService extends BaseService
             }
 
             // 验证是否为有效Sol链地址
-            if(!WalletService::make()->checkAddress($walletUrl)){
+            if (!WalletService::make()->checkAddress($walletUrl)) {
                 DB::rollBack();
                 $this->error = CregisPayService::make()->getError();
                 RedisService::clear($cacheKey);
                 return false;
             }
 
-            // U盾出账
-            $payRemark = $coinType == 1? 'USDT余额提现':'佣金收益提现';
-            $result     = CregisPayService::make()->withdraw($walletUrl, $payMoney, $orderNo,'1000','',$payRemark);
-            // 平台钱包出账
-            $data = isset($result['data'])? $result['data'] : [];
-            $tradeCid = isset($data['cid']) ? $data['cid'] : '';
-            if(empty($tradeCid)){
+            $updateData = ['status'=>2,'actual_money'=>$payMoney,'audit_remark'=>$remark, 'update_time' => time()];
+            if(!$this->model->where(['id'=> $id])->update($updateData)){
                 DB::rollBack();
-                $this->error = CregisPayService::make()->getError();
+                $this->error = 4006;
                 RedisService::clear($cacheKey);
                 return false;
             }
 
-            $updateData = ['status'=>2,'actual_money'=>$payMoney,'audit_remark'=>$remark,'trade_cid' => $tradeCid, 'update_time' => time()];
-            if(!$this->model->where(['id'=> $id])->update($updateData)){
+            // U盾出账
+            try {
+                $payRemark = $coinType == 1 ? 'USDT余额提现' : '佣金收益提现';
+                $result = CregisPayService::make()->withdraw($walletUrl, $payMoney, $orderNo, '1000', '', $payRemark);
+                // 平台钱包出账
+                $data = isset($result['data'])? $result['data'] : [];
+                $tradeCid = isset($data['cid']) ? $data['cid'] : '';
+                if(empty($tradeCid)){
+                    DB::rollBack();
+                    $this->error = CregisPayService::make()->getError();
+                    RedisService::clear($cacheKey);
+                    return false;
+                }
+
+                $updateData = ['trade_cid' => $tradeCid, 'update_time' => time()];
+                if(!$this->model->where(['id'=> $id])->update($updateData)){
+                    DB::rollBack();
+                    $this->error = 4006;
+                    RedisService::clear($cacheKey);
+                    return false;
+                }
+            } catch (\Exception $exception){
                 DB::rollBack();
-                $this->error = 4006;
+                $this->error = $exception->getMessage();
                 RedisService::clear($cacheKey);
                 return false;
             }
+
+
         }
         // 审核失败驳回退款
         else{

+ 4 - 3
app/Services/CregisPayService.php

@@ -209,8 +209,8 @@ class CregisPayService extends BaseService
             return 'Recharge callback data error';
         }
         $getSign = $params['sign'];
-        $orderNo = isset($params['third_party_id'])? trim($params['third_party_id']) : '';
-        $cacheKey = "caches:cregisPay:recharge_{$orderNo}";
+        $tradeCid = isset($params['cid'])? trim($params['cid']) : '';
+        $cacheKey = "caches:cregisPay:recharge_{$tradeCid}";
         RedisService::set("{$cacheKey}:callback", ['params' => request()->all(), 'result' => $params], 7200);
         $sgin = $this->dispatch->generateSign(self::$config['api_key'], $params);
         if($getSign!=$sgin){
@@ -219,7 +219,6 @@ class CregisPayService extends BaseService
         }
 
         $address = isset($params['address'])? trim($params['address']) : '';
-        $tradeCid = isset($params['cid'])? trim($params['cid']) : '';
         $txid = isset($params['txid'])? trim($params['txid']) : '';
         $amount = isset($params['amount'])? floatval($params['amount']) : 0;
         $currency = isset($params['currency'])? trim($params['currency']) : '';
@@ -405,7 +404,9 @@ class CregisPayService extends BaseService
     public function withdrawCallBack()
     {
         $data = file_get_contents('php://input');
+        RedisService::set("caches:cregisPay:withdraw_callback", ['params' => request()->all(), 'result' => $data], 7200);
         $params = $data?json_decode($data, true) : [];
+        $params = empty($params)? request()->all() : $params;
         if(empty($params)){
             RedisService::set("caches:cregisPay:withdraw_data_".date('YmdHis'),['params'=> $params,'data'=> $data], 3600);
             return 'Callback data error';