Ver código fonte

web代码优化

flowerpig 6 meses atrás
pai
commit
3ed8191829

+ 43 - 45
webServer/src/channels/handlers/MiniappChannelHandler.ts

@@ -182,7 +182,7 @@ export class MiniappChannelHandler implements ChannelHandler {
 
             // 调用第三方鉴权API
             const apiUrl = `https://api.11h5.com/login?cmd=checkUserToken&userToken=${encodeURIComponent(token)}&gameid=${gameid}`;
-            
+
             logger.info("调用iOS鉴权API:", { url: apiUrl });
 
             const response = await axios.get(apiUrl, {
@@ -195,7 +195,7 @@ export class MiniappChannelHandler implements ChannelHandler {
 
             // 根据错误码判断成功与否
             const responseData = response.data;
-            
+
             if (responseData.error === 0) {
                 // 成功:error = 0
                 logger.info("iOS登录鉴权成功:", {
@@ -203,7 +203,7 @@ export class MiniappChannelHandler implements ChannelHandler {
                     nickname: responseData.nickname,
                     usertype: responseData.usertype
                 });
-                
+
                 return {
                     code: 0,
                     msg: "登录成功",
@@ -260,12 +260,10 @@ export class MiniappChannelHandler implements ChannelHandler {
     async handlePayment(ctx: Context, config: ChannelConfig): Promise<PaymentResult> {
         try {
             // 获取请求参数 - 支持GET和POST请求
-            const queryParams = ctx.request.query as any;
-            const bodyParams = ctx.request.body as any;
-            const params = { ...queryParams, ...bodyParams }; // 合并query和body参数,body优先
+            const params = ctx.request.query as any;
+
+            const platform = params.platform || 'miniapp'; // 平台参数:ios、Android、miniapp、h5,默认为miniapp
 
-            const platform = params.platform || 'miniapp'; // 平台参数:ios、Android、miniapp、ttminiapp、h5,默认为miniapp
-            
             logger.info("统一支付回调请求", { platform, url: ctx.href, params: params });
 
             // 根据平台选择不同的支付处理方式和配置
@@ -361,7 +359,7 @@ export class MiniappChannelHandler implements ChannelHandler {
                 };
             }
             const orderInfo = validation.orderInfo;
-    
+
             logger.info("IOS订单校验成功,开始处理支付发货逻辑");
             const result = await PaymentHelper.deliverOrder(
                 orderInfo,
@@ -631,7 +629,7 @@ export class MiniappChannelHandler implements ChannelHandler {
             }
             data['time'] = Math.floor(Date.now() / 1000); // 添加时间戳参数
             data['gameid'] = config.paymentConfig.gameId; // 添加游戏ID参数
-            
+
             // 处理playerName的各种编码格式
             let decodedPlayerName = data.playerName;
             try {
@@ -653,18 +651,18 @@ export class MiniappChannelHandler implements ChannelHandler {
                 console.log("playerName decode error, using original:", error.message);
                 decodedPlayerName = data.playerName;
             }
-            
+
             // 更新data中的playerName为解码后的值
             data.playerName = decodedPlayerName;
             console.log("playerName for signature:", data.playerName);
-            
+
             //生成签名
             data['sign'] = this.generateRoleInfoSignature(data, config);
-            
+
             // 构建请求参数 - 对playerName进行URL编码
             const encodedPlayerName = encodeURIComponent(data.playerName);
             console.log("playerName for request:", encodedPlayerName);
-            
+
             // 手动构建URL查询字符串,避免对已编码参数进行二次编码
             const queryString = [
                 `openId=${encodeURIComponent(data.openId)}`,
@@ -674,7 +672,7 @@ export class MiniappChannelHandler implements ChannelHandler {
                 `playerName=${encodedPlayerName}`, // 已经编码过的playerName,不再编码
                 `sign=${encodeURIComponent(data.sign)}`
             ].join('&');
-            
+
             // 调用角色信息修改API
             const apiUrl = `https://platform.${config.paymentConfig.apiUrl}/stat/api/?cmd=editUserRoleInfo&${queryString}`;
             logger.info("调用角色信息修改API:", {url: apiUrl});
@@ -724,7 +722,7 @@ export class MiniappChannelHandler implements ChannelHandler {
         try {
             // 固定密钥
             const secret = 'qka8qKcvRcGN1u0bLA8O';
-            
+
             // 准备签名参数
             const signParams: any = {
                 gameId: data.gameid || config.paymentConfig.gameId,
@@ -734,25 +732,25 @@ export class MiniappChannelHandler implements ChannelHandler {
                 serverId: data.serverid,
                 time: data.time
             };
-            
+
             // 按字典排序参数名
             const sortedKeys = Object.keys(signParams).sort();
-            
+
             // 构建签名字符串(去掉[])
             const signString = sortedKeys.map(key => {
                 return `${key}=${signParams[key]}`;
             }).join('');
-            
+
             console.log("验证签名参数:", signParams);
             console.log("验证签名字符串:", signString);
-            
+
             // 计算MD5签名
             const expectedSignature = CryptoJS.MD5(signString).toString();
             const actualSignature = data.sign;
-            
+
             console.log("期望签名:", expectedSignature);
             console.log("实际签名:", actualSignature);
-            
+
             return expectedSignature === actualSignature;
         } catch (error) {
             logger.error("签名算法2验证出错:", error);
@@ -770,7 +768,7 @@ export class MiniappChannelHandler implements ChannelHandler {
         try {
             // 固定密钥
             const secret = 'qka8qKcvRcGN1u0bLA8O';
-            
+
             // 准备签名参数
             const signParams: any = {
                 gameid: params.gameid || config.paymentConfig.gameId,
@@ -780,23 +778,23 @@ export class MiniappChannelHandler implements ChannelHandler {
                 serverid: params.serverid,
                 time: params.time
             };
-            
+
             // 按字典排序参数名
             const sortedKeys = Object.keys(signParams).sort();
-            
+
             // 构建签名字符串(去掉[])
             const signString = sortedKeys.map(key => {
                 return `${key}=${signParams[key]}`;
             }).join('');
-            
+
             console.log("角色信息签名参数:", signParams);
             console.log("角色信息签名字符串:", signString);
-            
+
             // 计算MD5签名
             const signature = CryptoJS.MD5(signString).toString();
-            
+
             console.log("角色信息签名结果:", signature);
-            
+
             return signature;
         } catch (error) {
             logger.error("生成角色信息修改签名出错:", error);
@@ -1109,9 +1107,9 @@ export class MiniappChannelHandler implements ChannelHandler {
                 }
             });
 
-            logger.info("iOS订单校验响应", { 
-                status: response.status, 
-                data: response.data 
+            logger.info("iOS订单校验响应", {
+                status: response.status,
+                data: response.data
             });
 
             if (response.status === 200) {
@@ -1119,27 +1117,27 @@ export class MiniappChannelHandler implements ChannelHandler {
                 // 处理纯文本"SUCCESS"响应
                 if (result === "SUCCESS") {
                     return { success: true, message: "订单校验成功" };
-                } 
+                }
                 // 处理JSON格式响应
                 else if (result && typeof result === 'object' && result.code === 0) {
                     return { success: true, message: "订单校验成功" };
                 } else {
-                    return { 
-                        success: false, 
-                        message: result?.msg || "订单校验失败" 
+                    return {
+                        success: false,
+                        message: result?.msg || "订单校验失败"
                     };
                 }
             } else {
-                return { 
-                    success: false, 
-                    message: `HTTP错误: ${response.status}` 
+                return {
+                    success: false,
+                    message: `HTTP错误: ${response.status}`
                 };
             }
         } catch (error) {
             logger.error("iOS订单校验出错:", error);
-            return { 
-                success: false, 
-                message: error.message || "订单校验异常" 
+            return {
+                success: false,
+                message: error.message || "订单校验异常"
             };
         }
     }
@@ -1154,15 +1152,15 @@ export class MiniappChannelHandler implements ChannelHandler {
         try {
             // 构建签名字符串
             const signString = parameters.join('&') + `&key=${signKey}`;
-            
+
             // 计算MD5签名并转为大写
             const signature = CryptoJS.MD5(signString).toString().toUpperCase();
-            
+
             logger.info("生成iOS支付签名", {
                 signString,
                 signature
             });
-            
+
             return signature;
         } catch (error) {
             logger.error("生成iOS支付签名出错:", error);

+ 1 - 1
webServer/src/server.ts

@@ -23,7 +23,7 @@ let serverManager: ServerManager;
 // 启动服务器
 async function startServer() {
   // 先初始化MongoDB
-  // await initializeMongoDB();
+  await initializeMongoDB();
   
   // 创建服务器管理器实例
   serverManager = new ServerManager(router);