diff --git a/backend/services/reward-service/src/infrastructure/external/wallet-service/wallet-service.client.ts b/backend/services/reward-service/src/infrastructure/external/wallet-service/wallet-service.client.ts index 9b0fafc8..084d5bf2 100644 --- a/backend/services/reward-service/src/infrastructure/external/wallet-service/wallet-service.client.ts +++ b/backend/services/reward-service/src/infrastructure/external/wallet-service/wallet-service.client.ts @@ -133,6 +133,19 @@ export class WalletServiceClient { }; } + // wallet-service 使用全局 TransformInterceptor,响应格式为: + // { success: true, data: { success: boolean, ... }, timestamp: "..." } + const response_data = await response.json(); + const data = response_data.data || response_data; + + if (data.success !== true) { + this.logger.error(`Confirm deduction failed for order ${params.orderId}: ${data.error || 'Unknown error'}`); + return { + success: false, + error: data.error || 'Confirm deduction failed', + }; + } + this.logger.log(`Successfully confirmed deduction for order ${params.orderId}`); return { success: true }; } catch (error) { @@ -181,14 +194,25 @@ export class WalletServiceClient { }; } - const data = await response.json(); + const response_data = await response.json(); + // wallet-service 使用全局 TransformInterceptor,响应格式为: + // { success: true, data: { success: boolean, ... }, timestamp: "..." } + const data = response_data.data || response_data; + + if (data.success !== true) { + this.logger.error(`Settlement failed for ${params.accountSequence}: ${data.error || 'Unknown error'}`); + return { + success: false, + error: data.error || 'Settlement failed', + }; + } + this.logger.log(`Successfully settled to balance for ${params.accountSequence}`); return { - success: data.success, + success: true, settlementId: data.settlementId, settledAmount: data.settledAmount, balanceAfter: data.balanceAfter, - error: data.error, }; } catch (error) { this.logger.error(`Error settling to balance for ${params.accountSequence}:`, error); @@ -224,6 +248,19 @@ export class WalletServiceClient { }; } + // wallet-service 使用全局 TransformInterceptor,响应格式为: + // { success: true, data: { success: boolean, ... }, timestamp: "..." } + const response_data = await response.json(); + const data = response_data.data || response_data; + + if (data.success !== true) { + this.logger.error(`Allocate funds failed for order ${request.orderId}: ${data.error || 'Unknown error'}`); + return { + success: false, + error: data.error || 'Allocate funds failed', + }; + } + this.logger.log(`Successfully allocated funds for order ${request.orderId}`); return { success: true }; } catch (error) {