| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- import apiConfig from "../config/api.js";
- import gameConfig from "../config/game.js";
- import sdkConfig from "../config/sdk.js";
- import { getSystem, getStorage } from "../utils/index.js";
- import { sortObj } from "./index.js";
- import SdkLoginReUserInfoModel from "../model/SdkLoginReUserInfoModel";
- import IpInfoModel from "../model/IpInfoModel";
- import md5 from "../lib/md5";
- class request {
- // 统一API请求入口
- async api(type, params, method = "post") {
- try {
- let wxNetworkInfo;
- const dySystemInfo = await getSystem();
- // 获取启动query参数
- const query = getStorage("urlQuery");
- const rySdkConfig = getStorage("rySdkConfig");
- // console.log(rySdkConfig);
- // 组装公共参数
- //启动参数有渠道id和site_id的按启动参数,没有则按系统类型对应的渠道id和site_id,游戏id按系统类型对应的游戏id
- params.config_id = rySdkConfig.config_id; //配置id
- params.platform = dySystemInfo.platform;
- params.os = dySystemInfo.system;
- params.model = dySystemInfo.model;
- params.device_brand = dySystemInfo.brand;
- // params.mnos = wxNetworkInfo.networkType;
- //游戏版本,初始化的时候透传进来
- params.app_version = rySdkConfig.app_version;
- params.queryStr = query.queryStr;
- // let ipinfo = IpInfoModel.getInstance().getStorage();
- // params.ipv4 = ipinfo.ipv4;
- // params.ipv6 = ipinfo.ipv6;
- let loginInfo = SdkLoginReUserInfoModel.getInstance().getStorage();
- console.log("loginInfo:", loginInfo);
- params.access_token = loginInfo.access_token;
- (params.username = loginInfo.username), (params.uid = loginInfo.uid);
- params.openid = loginInfo.openid;
- params.mtype = gameConfig.MTYPE;
- params.uuid = sdkConfig.DEVICE_NO;
- params.imei = sdkConfig.DEVICE_NO;
- params.sdk_version = sdkConfig.SDK_VERSION;
- params.sdk_version_code = sdkConfig.SDK_VERSION_CODE;
- params.agent_id =
- query.agent_id ||
- ("ios" === dySystemInfo.platform
- ? gameConfig.IOS_AGENT_ID
- : gameConfig.AGENT_ID);
- params.site_id =
- query.site_id ||
- ("ios" === dySystemInfo.platform
- ? gameConfig.IOS_SITE_ID
- : gameConfig.SITE_ID);
- if (!params.appid) {
- params.appid = loginInfo.appid;
- }
- // params.appid = ''
- if (loginInfo.agent_id !== 1000) {
- params.agent_id = loginInfo.agent_id;
- params.site_id = loginInfo.site_id;
- }
- params.launchScene = getStorage("launchScene");
- // 组装请求接口地址
- const url = type in apiConfig ? apiConfig[type] : false;
- if (url === false) {
- return Promise.reject("type error");
- }
- //common类接口统一加密
- if (type === "COMMON") {
- params = request.addCommonSign(params);
- }
- // 发起请求
- const res = await this.doRequest(url, method, params);
- console.log("res:", res);
- return Promise.resolve(res);
- } catch (error) {
- return Promise.reject(error);
- }
- }
- doRequest(url, method, params) {
- return new Promise((resolve, reject) => {
- // 发起请求
- tt.request({
- url: url,
- header: {
- "Content-Type": "application/x-www-form-urlencoded",
- },
- method: method,
- data: params,
- // 成功响应
- success: (res) => {
- if (res.statusCode === 200) {
- if (res.data.ret === 1) {
- resolve(res.data.info);
- } else {
- reject({
- code: res.data.ret,
- msg: res.data.msg,
- });
- }
- } else {
- reject({
- code: -100,
- msg: `network error ${res.statusCode}`,
- });
- }
- },
- fail: (error) => {
- reject({
- code: -101,
- msg: error.errMsg,
- });
- },
- });
- });
- }
- /**
- * 通用类加密
- * @param params
- */
- static addCommonSign(params) {
- const rySdkConfig = getStorage("rySdkConfig");
- if (!params.time) {
- params.time = parseInt(new Date().getTime() / 1000);
- }
- let newData = sortObj(params);
- let signStr = "";
- for (let k in newData) {
- if (k === "sign") {
- continue;
- }
- if (newData[k] === "") {
- continue;
- }
- signStr = signStr + k + "=" + newData[k] + "&";
- }
- signStr = signStr.substring(0, signStr.length - 1) + rySdkConfig.config_id;
- // console.log('加密原串:'+signStr);
- params.sign = md5(signStr);
- return params;
- }
- }
- export default new request();
|