|
|
@@ -6,7 +6,6 @@ import {
|
|
|
PackageName,
|
|
|
ProductId,
|
|
|
IosUrl,
|
|
|
- SandboxIosUrl,
|
|
|
AppSecretSanLi,
|
|
|
Account,
|
|
|
ClientSecret,
|
|
|
@@ -14,7 +13,6 @@ import {
|
|
|
AppSecret360,
|
|
|
} from "../config/thirdParams";
|
|
|
import {
|
|
|
- compareVersions,
|
|
|
generateOrderNumber,
|
|
|
formatDate,
|
|
|
getServerList,
|
|
|
@@ -659,8 +657,12 @@ const CallPaySanLi = async (ctx) => {
|
|
|
let signData = Object.keys(data)
|
|
|
.sort()
|
|
|
.filter((key) => key !== "sign");
|
|
|
- let signStr = signData.map((key) => `${data[key]}`).join("&");
|
|
|
- signStr += AppSecretSanLi;
|
|
|
+ let signStr = signData
|
|
|
+ .map((key) => {
|
|
|
+ return `${key}=${data[key]}`;
|
|
|
+ })
|
|
|
+ .join("&");
|
|
|
+ signStr += "&key=" + AppSecretSanLi;
|
|
|
|
|
|
let newSign = CryptoJS.MD5(signStr).toString();
|
|
|
console.log("signStr:", signStr);
|
|
|
@@ -853,33 +855,6 @@ const testGoogleCallPay = async (ctx) => {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
-const checkVersion = async (ctx) => {
|
|
|
- let ret = {
|
|
|
- code: 0,
|
|
|
- msg: "无需更新",
|
|
|
- url: "",
|
|
|
- };
|
|
|
- let data = ctx.request.body;
|
|
|
- let version = data.version;
|
|
|
- let tag = data.tag || "default";
|
|
|
- logger.info("checkVersion params:", { url: ctx.href, params: data });
|
|
|
-
|
|
|
- const versionInfo = (await Version.getGameVersion(tag))[0];
|
|
|
-
|
|
|
- if (!versionInfo) {
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
- if (compareVersions(versionInfo.version, version) === 1) {
|
|
|
- if (versionInfo.download_url) {
|
|
|
- ret.code = 1;
|
|
|
- ret.msg = "需要更新";
|
|
|
- ret.url = versionInfo.download_url;
|
|
|
- }
|
|
|
- }
|
|
|
- return ret;
|
|
|
-};
|
|
|
-
|
|
|
function splitString(input: string, separator: string): string[] {
|
|
|
return input.split(separator);
|
|
|
}
|
|
|
@@ -905,11 +880,12 @@ const checkUserToken = async (ctx) => {
|
|
|
if (ip.startsWith("::ffff:")) {
|
|
|
ip = ip.substring("::ffff:".length);
|
|
|
}
|
|
|
- if(ip == '127.0.0.1'){
|
|
|
- const forwardedIps = ctx.get("X-Forwarded-For")?.split(",");
|
|
|
- const clientIP = forwardedIps ? forwardedIps[0].trim() : null;
|
|
|
- // 若 X-Forwarded-For 不存在,尝试 X-Real-IP
|
|
|
- ip = clientIP || ctx.get("X-Real-IP") || ctx.ip;
|
|
|
+
|
|
|
+ if (ip == "127.0.0.1") {
|
|
|
+ const forwardedIps = ctx.get("X-Forwarded-For")?.split(",");
|
|
|
+ const clientIP = forwardedIps ? forwardedIps[0].trim() : null;
|
|
|
+ // 若 X-Forwarded-For 不存在,尝试 X-Real-IP
|
|
|
+ ip = clientIP || ctx.get("X-Real-IP") || ctx.ip;
|
|
|
}
|
|
|
|
|
|
let {
|
|
|
@@ -984,29 +960,29 @@ class ApiController {
|
|
|
ctx.body = { code: -1, message: "参数错误,创建订单失败!!", data: "" };
|
|
|
return;
|
|
|
}
|
|
|
- // const data = ctx.request.body;
|
|
|
- // const sign = data.sign;
|
|
|
- // //签名参数
|
|
|
- // let signData = Object.keys(data)
|
|
|
- // .sort()
|
|
|
- // .filter((key) => key !== "sign");
|
|
|
- // let signStr = signData.map((key) => `${data[key]}`).join("");
|
|
|
- // signStr += "q97tvr1yqpum8y2h7d0mhvosffrplwlm";
|
|
|
-
|
|
|
- // let newSign = CryptoJS.MD5(signStr).toString();
|
|
|
- // console.log("signStr:", signStr);
|
|
|
- // console.log("newSign:", newSign);
|
|
|
- // if (sign != newSign) {
|
|
|
- // logger.info(
|
|
|
- // `签名错误: 签名串 ${signStr} newSign ${newSign} sign ${sign}`
|
|
|
- // );
|
|
|
- // ctx.body = {
|
|
|
- // code: -1,
|
|
|
- // message: "签名错误,创建订单失败!!",
|
|
|
- // data: "",
|
|
|
- // };
|
|
|
- // return;
|
|
|
- // }
|
|
|
+ const data = ctx.request.body;
|
|
|
+ const sign = data.sign;
|
|
|
+ //签名参数
|
|
|
+ let signData = Object.keys(data)
|
|
|
+ .sort()
|
|
|
+ .filter((key) => key !== "sign");
|
|
|
+ let signStr = signData.map((key) => `${data[key]}`).join("");
|
|
|
+ signStr += "q97tvr1yqpum8y2h7d0mhvosffrplwlm";
|
|
|
+
|
|
|
+ let newSign = CryptoJS.MD5(signStr).toString();
|
|
|
+ console.log("signStr:", signStr);
|
|
|
+ console.log("newSign:", newSign);
|
|
|
+ if (sign != newSign) {
|
|
|
+ logger.info(
|
|
|
+ `签名错误: 签名串 ${signStr} newSign ${newSign} sign ${sign}`
|
|
|
+ );
|
|
|
+ ctx.body = {
|
|
|
+ code: -1,
|
|
|
+ message: "签名错误,创建订单失败!!",
|
|
|
+ data: "",
|
|
|
+ };
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
if (amount < 1) {
|
|
|
ctx.body = {
|
|
|
@@ -1119,8 +1095,12 @@ class ApiController {
|
|
|
let signData = Object.keys(data)
|
|
|
.sort()
|
|
|
.filter((key) => key !== "sign");
|
|
|
- let signStr = signData.map((key) => `${data[key]}`).join("&");
|
|
|
- signStr += AppSecretSanLi;
|
|
|
+ let signStr = signData
|
|
|
+ .map((key) => {
|
|
|
+ return `${key}=${data[key]}`;
|
|
|
+ })
|
|
|
+ .join("&");
|
|
|
+ signStr += "&key=" + AppSecretSanLi;
|
|
|
|
|
|
let newSign = CryptoJS.MD5(signStr).toString();
|
|
|
console.log("signStr:", signStr);
|
|
|
@@ -1130,14 +1110,14 @@ class ApiController {
|
|
|
`签名错误: 签名串 ${signStr} newSign ${newSign} sign ${sign}`
|
|
|
);
|
|
|
ret.msg = `签名错误`;
|
|
|
- return ret;
|
|
|
+ ctx.body = ret;
|
|
|
+ } else {
|
|
|
+ ret.code = 1;
|
|
|
+ ret.msg = "success";
|
|
|
+ ctx.body = ret;
|
|
|
}
|
|
|
-
|
|
|
- ret.code = 1;
|
|
|
- ret.msg = "success";
|
|
|
- return ret;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
async callPay(ctx) {
|
|
|
console.log(234234234);
|
|
|
let data = ctx.request.body;
|
|
|
@@ -1194,12 +1174,6 @@ class ApiController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- async checkVersion(ctx) {
|
|
|
- var result = await checkVersion(ctx);
|
|
|
- console.log("校验版本", result);
|
|
|
- ctx.body = result;
|
|
|
- }
|
|
|
-
|
|
|
async getServerList(ctx) {
|
|
|
let tag = ctx.query.tag || "default";
|
|
|
const servers = await Server.getServerList(tag);
|
|
|
@@ -1410,119 +1384,6 @@ class ApiController {
|
|
|
ctx.body = notice_data;
|
|
|
}
|
|
|
|
|
|
- async genCDK(ctx) {
|
|
|
- /*
|
|
|
- data = {
|
|
|
- cnt : number -- 生成数量
|
|
|
- useCnt : number -- 当前批次最大使用数量
|
|
|
- serverList : string -- 区服列表Json字符串
|
|
|
- itemList : string -- CDK对应物品列表Json字符串
|
|
|
- }
|
|
|
- */
|
|
|
- let data = ctx.request.body;
|
|
|
- await CDK.genCDK(
|
|
|
- ctx,
|
|
|
- data.cnt,
|
|
|
- data.useCnt,
|
|
|
- data.serverList,
|
|
|
- data.itemList
|
|
|
- );
|
|
|
- ctx.body = {
|
|
|
- code: 0,
|
|
|
- msg: "success",
|
|
|
- };
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- async getCDK(ctx) {
|
|
|
- let data = ctx.request.body;
|
|
|
- let ret = await CDK.getCDK(ctx, data.batch);
|
|
|
- if (ret.length <= 0) {
|
|
|
- ctx.body = {
|
|
|
- code: 1,
|
|
|
- msg: "batch invalid",
|
|
|
- };
|
|
|
- return;
|
|
|
- }
|
|
|
- ctx.body = {
|
|
|
- code: 0,
|
|
|
- msg: ret,
|
|
|
- };
|
|
|
- }
|
|
|
- async useCDK(ctx) {
|
|
|
- let data = ctx.request.body;
|
|
|
- let url = await getServerList(data.serverId, "default");
|
|
|
- let err = "";
|
|
|
- if (!url) {
|
|
|
- ctx.body = {
|
|
|
- code: 1,
|
|
|
- msg: `区服id错误: serverId ${data.serverId}`,
|
|
|
- };
|
|
|
- err = "server id invalid";
|
|
|
- }
|
|
|
- let param: string = "";
|
|
|
- // 验证CDK
|
|
|
- if (err.length == 0) {
|
|
|
- let batchInfo = await CDK.getCDKItemList(ctx, data.code);
|
|
|
- if (batchInfo.length <= 0) {
|
|
|
- err = "cdk not found";
|
|
|
- } else {
|
|
|
- err = await CDK.checkCDK(ctx, data.code, data.serverId);
|
|
|
- param = JSON.stringify({
|
|
|
- type: "UseCDK",
|
|
|
- err: err,
|
|
|
- batchInfo: batchInfo,
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- // 固定码
|
|
|
- if (err == "cdk not found" || err == "server id invalid") {
|
|
|
- param = JSON.stringify({
|
|
|
- code: data.code,
|
|
|
- type: "UseFixCDK",
|
|
|
- });
|
|
|
- }
|
|
|
- // 测试是否可以调用过去
|
|
|
- // 通知给服务器,发放道具
|
|
|
- // "ws://43.143.193.23:18192"
|
|
|
- // Msg.connect(url, Account);
|
|
|
- try {
|
|
|
- let sendMsg = new Msg();
|
|
|
- sendMsg.connect(url, Account);
|
|
|
- logger.info(`code ${data.code} id ${data.serverId} ${url}`);
|
|
|
- new Promise((resolve) => {
|
|
|
- setTimeout(async () => {
|
|
|
- sendMsg.CG_TEST_PROTO(data.account, param);
|
|
|
- CDK.useCDK(ctx, data.code);
|
|
|
- }, 1000);
|
|
|
- });
|
|
|
- } catch (error) {
|
|
|
- console.log(error);
|
|
|
- }
|
|
|
- ctx.body = {
|
|
|
- code: 0,
|
|
|
- msg: "success",
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
- async validCDK(ctx) {
|
|
|
- let data = ctx.request.body;
|
|
|
- if (data.code.length == 10) {
|
|
|
- let ret = await CDK.useCDK(ctx, data.code);
|
|
|
- if (ret != "success") {
|
|
|
- ctx.body = {
|
|
|
- code: 1,
|
|
|
- msg: ret,
|
|
|
- };
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- ctx.body = {
|
|
|
- code: 0,
|
|
|
- msg: "success",
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
// 维护服务器,踢掉所有玩家
|
|
|
async maintenance(ctx) {
|
|
|
let data = ctx.request.body;
|