Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

sunxiaobiao месяцев назад: 9
Родитель
Сommit
82434b3b8c
2 измененных файлов с 76 добавлено и 2 удалено
  1. 1 1
      app/controller/admin/order/ThirdOrder.php
  2. 75 1
      app/traits/GzcApiRequest.php

+ 1 - 1
app/controller/admin/order/ThirdOrder.php

@@ -77,7 +77,7 @@ class ThirdOrder extends BaseController
77 77
      */
78 78
     public function getJdOrder()
79 79
     {
80
-        $where = $this->request->params(['date','order_sn','status','keywords','bill_status']);
80
+        $where = $this->request->params(['date','order_sn','status','keywords','bill_status']);//筛选条件
81 81
         $page = 1;
82 82
         $limit = 9999999;
83 83
         $temporaryData = $this->repository->GetJdOrder($where,$page,$limit);

+ 75 - 1
app/traits/GzcApiRequest.php

@@ -63,7 +63,81 @@ trait GzcApiRequest
63 63
             'conCertType' => 1,
64 64
             'conCertNo' => $user['user_card'],
65 65
         ];
66
-        return self::request('POST', '/v1/api/third/in/in30', $data);
66
+        foreach (['conName', 'conCertNo'] as $key) {
67
+            if (empty($data[$key])) {
68
+                Log::error('[checkAmount] 参数缺失', [
69
+                    'missing_field' => $key,
70
+                    'user' => $user,
71
+                    'data' => $data
72
+                ]);
73
+            }
74
+        }
75
+        $tokenData = self::getTokenFromServer();
76
+        $token = $tokenData['extendData']['accessToken'] ?? null;
77
+        if (empty($token)) {
78
+            Log::error('[checkAmount] Token 获取失败', [
79
+                'tokenData' => $tokenData,
80
+                'user' => $user
81
+            ]);
82
+        } else {
83
+            Log::info('[checkAmount] 成功获取 Token', ['token' => $token]);
84
+        }
85
+        Log::info('[checkAmount] 请求开始', [
86
+            'url' => '/v1/api/third/in/in30',
87
+            'data' => $data,
88
+            'user' => $user
89
+        ]);
90
+        $response = self::request('POST', '/v1/api/third/in/in30', $data);
91
+        Log::info('[checkAmount] 接口返回', [
92
+            'response' => $response
93
+        ]);
94
+        $code = $response['code'] ?? null;
95
+        $msg  = $response['msg'] ?? '';
96
+        $amount = $response['data']['amount'] ?? null;
97
+        if ($code !== 200) {
98
+            Log::error('[checkAmount] 接口返回异常状态码', [
99
+                'code' => $code,
100
+                'msg' => $msg,
101
+                'user' => $user,
102
+                'response' => $response
103
+            ]);
104
+        }
105
+        if (!isset($response['data']['amount'])) {
106
+            Log::error('[checkAmount] 响应结构异常,缺少金额字段', [
107
+                'user' => $user,
108
+                'response' => $response
109
+            ]);
110
+        }
111
+        // 情况三:金额为 0,分析可能原因
112
+        if ($amount === 0) {
113
+            $possibleReasons = [];
114
+            if (empty($token)) {
115
+                $possibleReasons[] = 'Token 获取失败或未附带';
116
+            }
117
+
118
+            if (empty($data['conCertNo']) || empty($data['conName'])) {
119
+                $possibleReasons[] = '用户姓名或身份证号为空';
120
+            }
121
+
122
+            if (stripos($msg, '未开户') !== false || stripos($msg, '未实名') !== false) {
123
+                $possibleReasons[] = '用户未开户或未实名';
124
+            }
125
+            if (stripos($msg, '无账户') !== false) {
126
+                $possibleReasons[] = '第三方系统中不存在此账户';
127
+            }
128
+            if (stripos($msg, 'success') !== false && $amount === 0) {
129
+                $possibleReasons[] = '接口返回成功但余额确实为0(正常情况)';
130
+            }
131
+            Log::warning('[checkAmount] 返回金额为0,可能原因如下', [
132
+                'user' => $user,
133
+                'params' => $data,
134
+                'response' => $response,
135
+                'token' => $token,
136
+                'possible_reasons' => $possibleReasons
137
+            ]);
138
+        }
139
+        return $response;
140
+//        return self::request('POST', '/v1/api/third/in/in30', $data);
67 141
     }
68 142
     /**
69 143
      * 获取TOKEN