pigflower пре 1 месец
родитељ
комит
639eefcb0d

+ 1 - 0
script/module/scene/Handler.lua

@@ -58,6 +58,7 @@ end
 --在线玩家列表不再从 ObjHuman.onlineAccount 获取, 改为从 ObjHuman.onlineNewUniqueTag 获取
 function CG_TEST_PROTO(fd,msg)
 	-- print("============ CG_TEST_PROTO============", msg.param)
+	Log.write(Log.LOGID_DEBUG, "[CG_TEST_PROTO]=" .. tostring(msg.param))
 	local param = Json.Decode(msg.param)
 	local uTag
 	if param.type == "UseCDKV2" or param.type == "UseCDK" or param.type == "UseFixCDK" then

+ 2 - 0
webServer/src/channels/factory/ChannelFactory.ts

@@ -60,6 +60,8 @@ class ChannelFactory {
     this.registerHandler(20, new ZeroOneChannelHandler()); // 0.1渠道
     this.registerHandler(21, new QingtianChannelHandler()); // 晴天SDK
     this.registerHandler(22, new ZeroOneChannelHandler()); // 1折渠道
+    this.registerHandler(23, new ZeroOneChannelHandler()); // 逍遥浪人
+    this.registerHandler(24, new ZeroOneChannelHandler()); // 逍遥浪人50倍返利
   }
 
   /**

+ 18 - 16
webServer/src/channels/handlers/ZeroOneChannelHandler.ts

@@ -25,14 +25,15 @@ export class ZeroOneChannelHandler implements ChannelHandler {
         const data = ctx.request.body as any;
         const {token, uid, channel_code, product_code} = data || {};
         const finalProductCode = product_code || config.loginConfig?.productCode;
+        const tag = `[渠道${config.channelId}]`;
 
         if (!token || !uid) {
-            logger.warn("0.1渠道登录验证失败: 缺少必要参数", {token, uid});
+            logger.warn(`${tag}登录验证失败: 缺少必要参数`, {token, uid});
             return {code: 0, msg: "缺少必要参数 token 或 uid"};
         }
 
         if (!finalProductCode) {
-            logger.error("0.1渠道登录验证失败: 未配置productCode");
+            logger.error(`${tag}登录验证失败: 未配置productCode`);
             return {code: 0, msg: "服务器未配置productCode"};
         }
 
@@ -46,20 +47,20 @@ export class ZeroOneChannelHandler implements ChannelHandler {
             params.channel_code = channel_code;
         }
 
-        logger.info("0.1渠道登录验证请求", {url: requestUrl, params});
+        logger.info(`${tag}登录验证请求`, {url: requestUrl, params});
 
         try {
             const response = await axios.get(requestUrl, {params, timeout: 8000});
-            logger.info("0.1渠道登录验证响应", {data: response.data});
+            logger.info(`${tag}登录验证响应`, {data: response.data});
 
             if (response.data == "1") {
                 return {code: 1, msg: "success"};
             }
 
-            logger.warn("0.1渠道登录验证失败: 接口返回非1", {data: response.data});
+            logger.warn(`${tag}登录验证失败: 接口返回非1`, {data: response.data});
             return {code: 0, msg: "登录验证失败"};
         } catch (error) {
-            logger.error("0.1渠道登录验证异常", error);
+            logger.error(`${tag}登录验证异常`, error);
             return {code: 0, msg: "登录验证异常"};
         }
     }
@@ -71,11 +72,12 @@ export class ZeroOneChannelHandler implements ChannelHandler {
      */
     async handlePayment(ctx: Context, config: ChannelConfig): Promise<PaymentResult> {
         const data = ctx.request.body as any;
-        logger.info("0.1渠道支付回调参数", {url: ctx.href, params: data});
+        const tag = `[渠道${config.channelId}]`;
+        logger.info(`${tag}支付回调参数`, {url: ctx.href, params: data});
 
         const {nt_data, sign, md5Sign} = data || {};
         if (!nt_data || !sign || !md5Sign) {
-            logger.warn("0.1渠道支付回调失败: 缺少必要参数", {nt_data, sign, md5Sign});
+            logger.warn(`${tag}支付回调失败: 缺少必要参数`, {nt_data, sign, md5Sign});
             return {code: 0, msg: "缺少必要参数"};
         }
 
@@ -83,12 +85,12 @@ export class ZeroOneChannelHandler implements ChannelHandler {
         const callbackKey = config.paymentConfig?.callbackKey;
 
         if (!md5Key || !callbackKey) {
-            logger.error("0.1渠道支付回调失败: 未配置QuickSDK密钥");
+            logger.error(`${tag}支付回调失败: 未配置QuickSDK密钥`);
             return {code: 0, msg: "服务器未配置渠道密钥"};
         }
 
         if (!SignatureVerifier.verifyQuickSign(data, md5Key)) {
-            logger.warn("0.1渠道支付回调失败: 签名验证失败");
+            logger.warn(`${tag}支付回调失败: 签名验证失败`);
             return {code: 0, msg: "签名验证失败"};
         }
 
@@ -103,12 +105,12 @@ export class ZeroOneChannelHandler implements ChannelHandler {
             const amountStr = message.amount?.[0];
 
             if (!orderId || !outTradeNo || typeof status === "undefined" || !amountStr) {
-                logger.error("0.1渠道支付回调失败: XML缺少必要字段", {message});
+                logger.error(`${tag}支付回调失败: XML缺少必要字段`, {message});
                 return {code: 0, msg: "回调数据不完整"};
             }
 
             if (status !== "0") {
-                logger.warn("0.1渠道支付状态非成功", {status});
+                logger.warn(`${tag}支付状态非成功`, {status});
                 return {code: 0, msg: "支付状态失败"};
             }
 
@@ -124,7 +126,7 @@ export class ZeroOneChannelHandler implements ChannelHandler {
 
             const orderInfo = validation.orderInfo;
             if (Number(orderInfo.amount) !== amount) {
-                logger.warn("0.1渠道支付金额不匹配", {
+                logger.warn(`${tag}支付金额不匹配`, {
                     orderId,
                     requestAmount: amount,
                     orderAmount: orderInfo.amount
@@ -132,17 +134,17 @@ export class ZeroOneChannelHandler implements ChannelHandler {
                 return {code: 0, msg: "订单金额不一致"};
             }
 
-            logger.info(`0.1渠道支付订单${orderId}开始发货`);
+            logger.info(`${tag}支付订单${orderId}开始发货`);
             const result = await PaymentHelper.deliverOrder(
                 orderInfo,
                 ctx.request.ip,
                 validation.url,
                 outTradeNo
             );
-            logger.info(`0.1渠道支付订单${orderId}发货完成`, {result});
+            logger.info(`${tag}支付订单${orderId}发货完成`, {result});
             return result;
         } catch (error) {
-            logger.error("0.1渠道支付回调解析异常", error);
+            logger.error(`${tag}支付回调解析异常`, error);
             return {code: 0, msg: "回调解析异常"};
         }
     }

+ 29 - 1
webServer/src/config/channelConfig.ts

@@ -49,7 +49,9 @@ import {
     HKT_IOS_CALLBACK_KEY,
     HKT_DOMAIN, TAOBAO_CALLBACK_SECRET, TAOBAO_APP_ID, TAOBAO_APP_SECRET,
     ZERO_ONE_QUICK_MD5_KEY, ZERO_ONE_QUICK_CALLBACK_KEY, ZERO_ONE_QUICK_PRODUCT_CODE,
-    QINGTIAN_MD5_KEY, QINGTIAN_CALLBACK_KEY, QINGTIAN_PRODUCT_CODE
+    QINGTIAN_MD5_KEY, QINGTIAN_CALLBACK_KEY, QINGTIAN_PRODUCT_CODE,
+    XIAOYAO_QUICK_MD5_KEY, XIAOYAO_QUICK_CALLBACK_KEY, XIAOYAO_QUICK_PRODUCT_CODE,
+    XIAOYAO50_QUICK_MD5_KEY, XIAOYAO50_QUICK_CALLBACK_KEY, XIAOYAO50_QUICK_PRODUCT_CODE
 } from "./thirdParams";
 
 // 渠道配置接口定义
@@ -375,4 +377,30 @@ export const channelConfigs: Record<number, ChannelConfig> = {
             productCode: ZERO_ONE_QUICK_PRODUCT_CODE,
         },
     },
+    23: {
+        // 逍遥浪人 QuickSDK
+        channelId: 23,
+        name: "逍遥浪人",
+        platform: "",
+        paymentConfig: {
+            signKey: XIAOYAO_QUICK_MD5_KEY,
+            callbackKey: XIAOYAO_QUICK_CALLBACK_KEY,
+        },
+        loginConfig: {
+            productCode: XIAOYAO_QUICK_PRODUCT_CODE,
+        },
+    },
+    24: {
+        // 逍遥浪人50倍返利 QuickSDK
+        channelId: 24,
+        name: "逍遥浪人50倍",
+        platform: "",
+        paymentConfig: {
+            signKey: XIAOYAO50_QUICK_MD5_KEY,
+            callbackKey: XIAOYAO50_QUICK_CALLBACK_KEY,
+        },
+        loginConfig: {
+            productCode: XIAOYAO50_QUICK_PRODUCT_CODE,
+        },
+    },
 };

+ 12 - 0
webServer/src/config/thirdParams.ts

@@ -154,6 +154,18 @@ export const QINGTIAN_CALLBACK_KEY = "63878163435949505046358619235401";
 export const QINGTIAN_MD5_KEY = "ntyf5ezxywtqt4r16uhqrx5zwix2mzez";
 export const QINGTIAN_GAME_ID = "1007";
 
+// 逍遥浪人渠道(渠道23)
+export const XIAOYAO_QUICK_MD5_KEY = "yiggjf92qibwczxddjoxqjhnl638jaeh";
+export const XIAOYAO_QUICK_CALLBACK_KEY = "77756454315558905031309394863250";
+export const XIAOYAO_QUICK_PRODUCT_CODE = "17185838183889697860233357135277";
+export const XIAOYAO_QUICK_PRODUCT_KEY = "98557938";
+
+// 逍遥浪人50倍返利渠道(渠道24)
+export const XIAOYAO50_QUICK_MD5_KEY = "lotikkteclyc6ns7yqcwxdwh4kauwtji";
+export const XIAOYAO50_QUICK_CALLBACK_KEY = "87669945324907280135575078884672";
+export const XIAOYAO50_QUICK_PRODUCT_CODE = "50723129629881286488573382954330";
+export const XIAOYAO50_QUICK_PRODUCT_KEY = "40281578";
+
 // 港台渠道(Quick海外SDK)
 // 安卓配置
 export const HKT_ANDROID_PRODUCT_CODE = "34455834768674171358576585112815";

+ 16 - 0
webServer/src/controller/ApiController.ts

@@ -612,9 +612,21 @@ class ApiController {
                 }
                 break;
             case 14:
+            case 20:
+                ctx.body = result.code === 1 ? "SUCCESS" : "Fail";
+                break;
             case 21:
                 ctx.body = result.code === 1 ? "SUCCESS" : "Fail";
                 break;
+            case 22:
+                ctx.body = result.code === 1 ? "SUCCESS" : "Fail";
+                break;
+            case 23:
+                ctx.body = result.code === 1 ? "SUCCESS" : "Fail";
+                break;
+            case 24:
+                ctx.body = result.code === 1 ? "SUCCESS" : "Fail";
+                break;
             default:
                 ctx.body = result;
         }
@@ -1191,6 +1203,10 @@ class ApiController {
                 "VIP777",
                 "VIP888",
                 "QINGMINGLB",
+                "yxlb666",
+                "yxlb777",
+                "yxlb888",
+                "yxlb999"
             ];
             let param: string = "";
 

+ 1 - 1
webServer/src/utils/msg.ts

@@ -256,7 +256,7 @@ export default class Msg {
   }
 
   CG_TEST_PROTO(account: string, param: string, server_id = 1) {
-    console.log("发送CDK道具消息", this.websocket.readyState, this.isConnect);
+    console.log("发送CDK道具消息", this.websocket.readyState, this.isConnect,param,server_id,account);
     if (this.isConnect != true || this.websocket.readyState != 1) return false;
     this.sendBufLen = 4;
     this.writeString(account);