|
|
@@ -1,32 +1,29 @@
|
|
|
-import Msg from '../msg'; // 确保路径是正确的
|
|
|
+import Msg from '../utils/msg'; // 确保路径是正确的
|
|
|
+import {
|
|
|
+ RefreshToken,
|
|
|
+ PackageName,
|
|
|
+ ProductId,
|
|
|
+ IosUrl,
|
|
|
+ SandboxIosUrl,
|
|
|
+ Account,
|
|
|
+ ClientSecret,
|
|
|
+ ClientId
|
|
|
+} from '../config/thirdParams'
|
|
|
+import {
|
|
|
+ compareVersions,
|
|
|
+ generateOrderNumber,
|
|
|
+ formatDate,
|
|
|
+ getServerList
|
|
|
+} from '../utils/common'
|
|
|
|
|
|
const CryptoJS = require("crypto-js");
|
|
|
-const AppKey = "57afbdc608db9aa423e1b15b321d7de0"
|
|
|
-const Account = "H1EqhbpA80jt0Jw6Q3T2"//ws请求密钥
|
|
|
const Order = require('../model/OrderModel')
|
|
|
const Server = require('../model/ServerModel')
|
|
|
const Version = require('../model/VersionModel')
|
|
|
const CDK = require("../model/CDK")
|
|
|
-const notice = require("../notice.json")
|
|
|
-const logger = require('../log')
|
|
|
+const notice = require("../json/notice.json")
|
|
|
+const logger = require('../utils/log')
|
|
|
const axios = require('axios');
|
|
|
-const ClientId = "849706610247-rok24bfm4sapiggunbuirugf2n31c3ho.apps.googleusercontent.com"
|
|
|
-const ClientSecret = "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"
|
|
|
-const RefreshToken = '1//06IooeZBqGqUsCgYIARAAGAYSNwF-L9Ir7cRRL3vBcSsZcQunM2NF6H6rwBjE-WJ_sLIiVyvVCE1iWj4QHOUDGUE0FlA05d8LtPU'
|
|
|
-const PackageName = "com.ultimategame.sso"
|
|
|
-const ProductId = "com.ultimategame.sso.aos."
|
|
|
-const ios_url = "https://buy.itunes.apple.com/verifyReceipt"
|
|
|
-const sandbox_ios_url = "https://sandbox.itunes.apple.com/verifyReceipt"
|
|
|
-
|
|
|
-//根据区服id获取地址
|
|
|
-const getServerList = async (serverId, tag) => {
|
|
|
- const servers = (await Server.getServerList(tag))
|
|
|
- for (let i = 0; i < servers.length; i++) {
|
|
|
- if (servers[i].id == serverId) {
|
|
|
- return 'ws://' + servers[i].ip + ':' + servers[i].port
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
const googleCallPay = async (ctx) => {
|
|
|
|
|
|
@@ -233,7 +230,7 @@ const appleCallPay = async (ctx) => {
|
|
|
"receipt-data": receipt_data,
|
|
|
}
|
|
|
|
|
|
- const response = await axios.post(sandbox_ios_url, apiData, {
|
|
|
+ const response = await axios.post(SandboxIosUrl, apiData, {
|
|
|
headers: {
|
|
|
'Content-Type': 'application/json'
|
|
|
}
|
|
|
@@ -444,21 +441,6 @@ const testGoogleCallPay = async (ctx) => {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-const compareVersions = (v1: string, v2: string) => {
|
|
|
- const parts1 = v1.split('.').map(Number);
|
|
|
- const parts2 = v2.split('.').map(Number);
|
|
|
-
|
|
|
- for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
|
|
- const num1 = parts1[i] || 0;
|
|
|
- const num2 = parts2[i] || 0;
|
|
|
-
|
|
|
- if (num1 > num2) return 1;
|
|
|
- if (num1 < num2) return -1;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
const checkVersion = async (ctx) => {
|
|
|
let ret = {
|
|
|
code: 0,
|
|
|
@@ -489,45 +471,6 @@ const checkVersion = async (ctx) => {
|
|
|
|
|
|
//验证账号
|
|
|
const checkUserToken = async (ctx) => {
|
|
|
- let data = ctx.request.body
|
|
|
-
|
|
|
- //签名参数
|
|
|
- let signData = Object.keys(data).filter(key => key !== 'sign');
|
|
|
- let signStr = signData.map(key => `${data[key]}`).join('');
|
|
|
- signStr += AppKey
|
|
|
-
|
|
|
- let newSign = CryptoJS.MD5(signStr).toString();
|
|
|
- console.log("signStr:", signStr)
|
|
|
- console.log("newSign:", newSign)
|
|
|
- if (data.sign != newSign) {
|
|
|
- console.log("签名错误:", signStr, newSign, data.sign)
|
|
|
- return false
|
|
|
- }
|
|
|
-
|
|
|
- return data.sign
|
|
|
-}
|
|
|
-
|
|
|
-const generateOrderNumber = () => {
|
|
|
- const date = new Date();
|
|
|
- const year = date.getFullYear();
|
|
|
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
|
- const day = date.getDate().toString().padStart(2, '0');
|
|
|
- const hours = date.getHours().toString().padStart(2, '0');
|
|
|
- const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
|
- const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
|
- const dateString = `${year}${month}${day}${hours}${minutes}${seconds}`;
|
|
|
- const randomString1 = Math.floor(Math.random() * 1090000000800)
|
|
|
- .toString()
|
|
|
- .slice(0, 4);
|
|
|
- const randomString2 = Math.floor(Math.random() * 1090000000800)
|
|
|
- .toString()
|
|
|
- .slice(0, 4);
|
|
|
- return "CP" + dateString + randomString1 + randomString2;
|
|
|
-}
|
|
|
-
|
|
|
-const formatDate = (now: Date) => {
|
|
|
- const formattedDateTime = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
|
|
|
- return formattedDateTime;
|
|
|
}
|
|
|
|
|
|
class ApiController {
|
|
|
@@ -573,13 +516,13 @@ class ApiController {
|
|
|
}
|
|
|
|
|
|
async checkUserToken(ctx) {
|
|
|
- const result = await checkUserToken(ctx);
|
|
|
- let data = { "status": false, "sign": "" }
|
|
|
- if (result) {
|
|
|
- data.status = true
|
|
|
- data.sign = result
|
|
|
- }
|
|
|
- ctx.body = data
|
|
|
+ // const result = await checkUserToken(ctx);
|
|
|
+ // let data = { "status": false, "sign": "" }
|
|
|
+ // if (result) {
|
|
|
+ // data.status = true
|
|
|
+ // data.sign = result
|
|
|
+ // }
|
|
|
+ // ctx.body = data
|
|
|
}
|
|
|
|
|
|
async callPay(ctx) {
|