|
|
@@ -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
|