From ae703091d41003c974a318010ba8f8b08682fc49 Mon Sep 17 00:00:00 2001 From: Roe-xin Date: Tue, 27 Jan 2026 16:38:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/apiClient.ts | 52 ++++++++++++++++++++++++++----- src/services/invitationService.ts | 17 ++++++++-- 2 files changed, 60 insertions(+), 9 deletions(-) diff --git a/src/services/apiClient.ts b/src/services/apiClient.ts index 12db482..8eb1377 100644 --- a/src/services/apiClient.ts +++ b/src/services/apiClient.ts @@ -57,42 +57,70 @@ async function request(path: string, options: RequestOptions): Promise { timeout: options.timeout || timeout }; + console.log('[HTTP] 请求详情:', { + url: url.toString(), + method: options.method, + headers: requestOptions.headers, + hasToken: !!token, + body: options.body + }); + return new Promise((resolve, reject) => { const req = httpModule.request(requestOptions, (res) => { let data = ''; + console.log('[HTTP] 响应状态码:', res.statusCode); + console.log('[HTTP] 响应头:', res.headers); + res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { + console.log('[HTTP] 响应体:', data); try { const json = JSON.parse(data); + console.log('[HTTP] 解析后的响应:', JSON.stringify(json, null, 2)); + if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) { + console.log('[HTTP] 请求成功'); resolve(json as T); } else { - reject(new Error(json.error || json.message || `HTTP ${res.statusCode}`)); + console.error('[HTTP] 请求失败:', { + statusCode: res.statusCode, + error: json.error, + message: json.message, + msg: json.msg + }); + reject(new Error(json.error || json.message || json.msg || `HTTP ${res.statusCode}`)); } } catch (e) { + console.error('[HTTP] 解析响应失败:', e); + console.error('[HTTP] 原始响应:', data); reject(new Error(`解析响应失败: ${data}`)); } }); }); req.on('error', (error) => { + console.error('[HTTP] 请求错误:', error); reject(error); }); req.on('timeout', () => { + console.error('[HTTP] 请求超时'); req.destroy(); reject(new Error('请求超时')); }); if (options.body) { - req.write(JSON.stringify(options.body)); + const bodyStr = JSON.stringify(options.body); + console.log('[HTTP] 发送请求体:', bodyStr); + req.write(bodyStr); } req.end(); + console.log('[HTTP] 请求已发送'); }); } @@ -266,12 +294,22 @@ export async function getCreditBalance(userId: string): Promise { - console.log('[API] 验证邀请码'); + console.log('[API] 验证邀请码 - 开始'); + console.log('[API] 邀请码:', code); const body: InvitationVerifyRequest = { code }; - return request('/api/invitation/verify', { - method: 'POST', - body - }); + console.log('[API] 请求体:', JSON.stringify(body)); + + try { + const response = await request('/api/invitation/verify', { + method: 'POST', + body + }); + console.log('[API] 验证邀请码 - 响应:', JSON.stringify(response)); + return response; + } catch (error) { + console.error('[API] 验证邀请码 - 错误:', error); + throw error; + } } /** diff --git a/src/services/invitationService.ts b/src/services/invitationService.ts index 94435ca..d1f72c6 100644 --- a/src/services/invitationService.ts +++ b/src/services/invitationService.ts @@ -22,22 +22,35 @@ export class InvitationService { */ static async verifyCode(code: string): Promise<{ success: boolean; message: string }> { try { - console.log('[InvitationService] 验证邀请码:', code); + console.log('[InvitationService] ========== 开始验证邀请码 =========='); + console.log('[InvitationService] 邀请码:', code); + console.log('[InvitationService] 邀请码长度:', code.length); + const response = await verifyInvitationCode(code); + console.log('[InvitationService] 收到响应:', JSON.stringify(response, null, 2)); + console.log('[InvitationService] 响应代码:', response.code); + console.log('[InvitationService] 响应消息:', response.msg); + console.log('[InvitationService] 验证结果:', response.data?.verified); + if (response.code === 200 && response.data?.verified) { + console.log('[InvitationService] ✓ 验证成功'); return { success: true, message: response.msg || '验证成功' }; } else { + console.log('[InvitationService] ✗ 验证失败'); return { success: false, message: response.msg || '验证失败' }; } } catch (error: any) { - console.error('[InvitationService] 验证邀请码失败:', error); + console.error('[InvitationService] ========== 验证邀请码异常 =========='); + console.error('[InvitationService] 错误类型:', error.constructor.name); + console.error('[InvitationService] 错误消息:', error.message); + console.error('[InvitationService] 错误堆栈:', error.stack); return { success: false, message: error.message || '网络连接失败,请检查网络后重试'