| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924 |
- import { EVENT_TYPE } from "../../game/data/GameData";
- import MKSwitch from "../../mk/MKSwitch";
- import GameConst from "../data/GameConst";
- import PlayerConst, { DATA_STORAGE_KEY } from "../data/PlayerConst";
- import DataMgr from "./DataMgr";
- import EffectMgr from "./EffectMgr";
- import GameMgr, { UI_NAME } from "./GameMgr";
- import StorageMgr from "./StorageMgr";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class HttpMgr {
- //单例模式---------------------------
- private static instance: HttpMgr = null;
- public static get Inst(): HttpMgr {
- if (!HttpMgr.instance) {
- HttpMgr.instance = new HttpMgr();
- }
- return HttpMgr.instance;
- }
- /**
- * 获取request
- * @param url url
- * @param bodyData 数据
- * @param httpMethod method 默认GET,可以选择POST
- */
- httpRquest(url: string, bodyData: any = null, httpMethod: HTTP_METHOD): Promise<any> {
- if (!GameConst.ifConnectService) {
- mk.console.log("[HttpMgr] 不连接服务器开关打开");
- return new Promise((resolve, reject) => { reject() });
- return;
- }
- // LogUtil.log("[HttpMgr] 连接服务器" + url);
- // LogUtil.log("[getRequest] url", url);
- // LogUtil.log("[getRequest] bodyData", bodyData);
- return new Promise((resolve, reject) => {
- var request = cc.loader.getXMLHttpRequest();
- request.open(httpMethod, url, true)
- request.onerror = (err) => {
- mk.console.error(`${HTTP_METHOD[httpMethod]} 错误 onerror`);
- EffectMgr.Inst.addTip("您的网络发生异常,请检查下哈");
- reject(err);
- }
- request.ontimeout = (err) => {
- mk.console.error(`${HTTP_METHOD[httpMethod]} 超时 ontimeout`);
- reject(err);
- }
- request.onloadend = () => {
- let respone = request.response;
- if (!respone) {
- mk.console.error("[getRequest] 获取用户信息错误 ", request);
- reject();
- }
- let info;
- if (typeof (respone) === "string") {
- info = JSON.parse(respone);
- }
- else {
- info = respone;
- }
- // LogUtil.log("info", info);
- // LogUtil.log("url.split",url.split("/"))
- // LogUtil.log(`[HttpMgr] ${HTTP_METHOD[httpMethod]}:${url.split("/")[url.split("/").length - 1]}`, info.errmsg)
- if (info.errcode === 0) {
- resolve(info)
- }
- else {
- if (info.errcode === -20003) {
- GameMgr.Inst.sendEvent("Error", `服务器发生-20003错误`);
- }
- reject(info);
- }
- }
- let headers = ["Content-Type", "application/json;charset=UTF-8"];
- for (var i = 0; i < headers.length; i += 2) {
- request.setRequestHeader(headers[i], headers[i + 1]);
- }
- //POST方式:跟后端了解,可以没有BodyData参数;GET一定没有BodyData参数
- if (bodyData) {
- request.send(bodyData)
- }
- else {
- request.send()
- }
- })
- }
- //----------------------------接口操作-------------------------------------
- /**上线
- * 如果有key 或者 uin 直接进入AccountInfo
- * 如果没有 连接
- */
- online() {
- //这个需要打印
- console.log("[HttpMgr] GameConst.url_service", GameConst.url_service);
- if (GameConst.session_key != '' && GameConst.uin != '') {
- mk.console.log("[HttpMgr] online 已经有缓存信息");
- HttpMgr.instance.getUserInfo();
- }
- else {
- mk.console.log("[HttpMgr] online 新用户");
- HttpMgr.instance.connect();
- }
- }
- /**连接
- * 获取零食的tmp_uin
- */
- connect() {
- // GameMgr.Inst.sendEvent(UI_NAME.Loading, "开始加载");
- let url = `${GameConst.url_service}/connect`;
- let bodyData = {
- "psk": GameConst.randomKey,
- "appid": GameConst.appid
- }
- mk.console.log("[connect]bodyData", bodyData)
- let encryptData = mk.encrypt.rsaEncrypt(JSON.stringify(bodyData));
- this.httpRquest(url, encryptData, HTTP_METHOD.POST).then((responseData) => {
- let decryptData = mk.encrypt.decrypt(responseData.encrypt, GameConst.randomKey, GameConst.appid);
- mk.console.log("[HttpMgr] connect", decryptData);
- if (decryptData) {
- GameConst.tmp_uin = JSON.parse(decryptData).tmp_uin;
- StorageMgr.Inst.setStorage(DATA_STORAGE_KEY.uin, GameConst.tmp_uin);
- HttpMgr.instance.wxlogin();
- //星云关键埋点
- GameMgr.Inst.sendEventCp(`${UI_NAME.Loading}1`, "开始加载");
- }
- }).catch((err) => {
- mk.console.log("[HttpMgr] connect err", err);
- });
- }
- /**微信登陆
- * @param ifWxAuthCallBack 是否授权回调
- */
- wxlogin(ifWxAuthCallBack: boolean = false) {
- mk.console.log("[Httpmgr] wxlogin 微信登陆");
- let url = `${GameConst.url_service}/wxlogin`;
- let data = {
- "code": GameConst.wxCode,
- "timestamp": Math.floor(new Date().getTime() * 0.001)
- }
- let bodydata = null;
- let encryptInfo = null
- let uin = GameConst.wxCode == '' ? GameConst.tmp_uin : GameConst.uin;
- let encryptKey = GameConst.wxCode == "" ? GameConst.randomKey : GameConst.session_key;
- encryptInfo = mk.encrypt.encrypt(JSON.stringify(data), encryptKey, GameConst.appid);
- bodydata = {
- "uin": uin,
- "encrypt": encryptInfo
- }
- // LogUtil.log("[Httpmgr] wxlogin uin",uin);
- // LogUtil.log("[Httpmgr] wxlogin encryptKey",encryptKey);
- // LogUtil.log("[Httpmgr] wxlogin encryptInfo",encryptInfo);
- // return;
- this.httpRquest(url, JSON.stringify(bodydata), HTTP_METHOD.POST).then((responseData) => {
- /**解密的数据 */
- let decryptData = null;
- if (GameConst.wxCode != '') {
- decryptData = mk.encrypt.decrypt(responseData.encrypt, GameConst.session_key, GameConst.appid)
- }
- else {
- decryptData = mk.encrypt.decrypt(responseData.encrypt, GameConst.randomKey, GameConst.appid)
- }
- if (decryptData) {
- let data_parse = JSON.parse(decryptData);
- //【测试状态】不发送事件,就不打印日志
- mk.console.log("[HttpMgr] wxlogin", data_parse);
- GameConst.login_ticket = data_parse.login_ticket
- /**加密的数据 */
- let encrypt_login_ticket =mk.encrypt.encrypt(GameConst.login_ticket, GameConst.localEncryptKey, GameConst.appid)
- StorageMgr.Inst.setStorage(DATA_STORAGE_KEY.login_ticket, encrypt_login_ticket);
- if (GameConst.uin != data_parse.uin) {
- GameConst.uin = data_parse.uin
- // GameConst.isNew = true; //根本无须判定,getDetailInfo那边会鉴定
- }
- else {
- // GameConst.isNew = false;//根本无须判定,getDetailInfo那边会鉴定
- }
- mk.console.log("GameConst.isNew", GameConst.isNew);
- mk.console.log("GameConst.uin", GameConst.uin);
- let encrypt_uin = mk.encrypt.encrypt(GameConst.uin, GameConst.localEncryptKey, GameConst.appid)
- StorageMgr.Inst.setStorage(DATA_STORAGE_KEY.uin, encrypt_uin)
- HttpMgr.instance.checklogin(ifWxAuthCallBack);
- }
- }).catch((err) => {
- mk.console.log("[HttpMgr] wxlogin err", err);
- });
- }
- checklogin(ifWxAuthCallBack: boolean = false) {
- let url = `${GameConst.url_service}/checklogin`;
- let tmp_key
- if (GameConst.wxCode != '') {
- tmp_key = GameConst.session_key
- }
- else {
- tmp_key = mk.encrypt.randomString()
- GameConst.randomKey_new = tmp_key
- }
- let bodyData =
- {
- "tmp_key": tmp_key,
- "uin": GameConst.uin,
- "login_ticket": GameConst.login_ticket,
- "appid": GameConst.appid
- }
- let rasEncryptData = mk.encrypt.rsaEncrypt(JSON.stringify(bodyData));
- this.httpRquest(url, rasEncryptData, HTTP_METHOD.POST).then((responseData) => {
- let decryptData = null;
- if (GameConst.wxCode != '') {
- decryptData = mk.encrypt.decrypt(responseData.encrypt, GameConst.session_key, GameConst.appid)
- }
- else {
- decryptData = mk.encrypt.decrypt(responseData.encrypt, GameConst.randomKey_new, GameConst.appid)
- }
- mk.console.log("[HttpMgr] checklogin", decryptData);
- if (decryptData) {
- let data_parse = JSON.parse(decryptData)
- GameConst.session_key = data_parse.session_key
- let encrypt_session_key = mk.encrypt.encrypt(GameConst.session_key, GameConst.localEncryptKey, GameConst.appid)
- StorageMgr.Inst.setStorage(DATA_STORAGE_KEY.session_key, encrypt_session_key)
- HttpMgr.Inst.getUserInfo(ifWxAuthCallBack);
- }
- }).catch((err) => {
- mk.console.log("[HttpMgr] checklogin err", err);
- });;
- }
- /**获取账户信息 */
- getUserInfo(ifWxAuthCallBack: boolean = false) {
- let url = `${GameConst.url_service}/user`;
- let data =
- {
- "uin": GameConst.uin,
- "login_ticket": GameConst.login_ticket,
- "timestamp": Math.floor(new Date().getTime() * 0.001)
- }
- mk.console.log("getUserInfo", data);
- let encryptData = mk.encrypt.encrypt(JSON.stringify(data), GameConst.session_key, GameConst.appid)
- let bodyData = {
- "uin": GameConst.uin,
- "encrypt": encryptData
- }
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData)
- mk.console.log("[HttpMgr] user", data);
- // Object.keys(data).forEach((e) => {
- // LogUtil.log("[HttpMgr]1 " + e);
- // LogUtil.log("[HttpMgr]2 " + data[e]);
- // });
- if (data) {
- GameConst.isNew = data["is_new_user"];
- mk.console.log("[HttpMgr] user GameConst.isNew", GameConst.isNew);
- //新手 初始化引导
- if (GameConst.isNew) {
-
- }
- else {
- }
- // LogUtil.log("data.is_new_user", data.is_new_user);
- GameConst.isAuth = data["is_auth"]
- mk.console.log("GameConst.isAuth", GameConst.isAuth);
- //是否首次登陆
- PlayerConst.ifFirstLoginToday = data["is_first_login_today"];
- if (data.is_auth) {
- let encrypt_auth = mk.encrypt.encrypt('true', GameConst.localEncryptKey, GameConst.appid)
- StorageMgr.Inst.setStorage(DATA_STORAGE_KEY.isAuth, encrypt_auth)
- PlayerConst.headImgUrl = data["HeadImgUrl"];
- PlayerConst.nickName = data["NickName"];
- let nickname = StorageMgr.Inst.getStorage(DATA_STORAGE_KEY.nickname);
- if (!!nickname) {
- //改名了
- if (nickname != data["nickname"]) {
- StorageMgr.Inst.setStorage(DATA_STORAGE_KEY.nickname, PlayerConst.nickName);
- }
- }
- //原本放在初始化 首页、提现、用户信息的头像取消,采用分发事件代替
- HttpMgr.Inst.getDetailInfo(ifWxAuthCallBack)
- }
- else {
- HttpMgr.Inst.getDetailInfo(ifWxAuthCallBack)
- }
- }
- }).catch((err) => {
- mk.console.log("[HttpMgr] user err", err);
- });
- }
- //-----------------------------------游戏相关接口---------------------------------
- /**获取细节信息 */
- getDetailInfo(ifWxAuthCallBack: boolean = false) {
- // LogUtil.log("[HttpMgr] getDetailInfo");
- let url = `${GameConst.url_service}/game/details`;
- let data = {}
- let bodyData = this.encryptBodyData(data);
- // LogUtil.log("[HttpMgr] getDetailInfo", bodyData);
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] details", data);
- //解析获取的信息
- PlayerConst.getDetailInfo(data);
- //如果微信登陆回调返回
- if (ifWxAuthCallBack) {
- //检测是否刷新一下数据
- if (PlayerConst.ifFirstLoginToday) {
- if (PlayerConst.cheeckIfNewAuthUser(data.register_date)) {
- mk.console.log("[WxAuth] 首日新用户")
- }
- else {
- mk.console.log("[WxAuth] 首日登陆老用户")
- DataMgr.Inst.resteData();
- }
- }
- else {
- mk.console.log("[WxAuth] 非首日登陆")
- }
- console.log("Detail 分发 微信授权事件");
- //分发微信授权返回事件
- mk.event.emit(EVENT_TYPE.BACK_WxAuth);
- //初始化游戏 Game
- //初始化结束按钮 gameOverUI
- //初始化每日提现 node_dailyCashOutUI
- }
- else {
- if (PlayerConst.ifFirstLoginToday) {
- PlayerConst.ifFirstLoginToday = false;
- DataMgr.Inst.resteData();
- }
- }
- /**是否登陆结束 */
- GameConst.ifLoginFinished = true;
- }).catch((err) => {
- mk.console.log("[HttpMgr] details", err);
- });
- }
- /**道具信息 */
- propsInfo() {
- let url = `${GameConst.url_service}/game/propsInfo`;
- let data = {}
- let bodyData = this.encryptBodyData(data);
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] propsInfo", data);
- });
- }
- /**道具
- * @param handel_type 处理类型 1 增 2 减
- * @param prop_code 道具编号
- * @param prop_num 道具数量
- */
- prop(handel_type: number, prop_code: string, prop_num: number): Promise<any> {
- mk.console.log("prop_code", prop_code);
- let url = `${GameConst.url_service}/game/prop`;
- let data = {
- "handel_type": handel_type,
- "prop_code": prop_code,
- "count": prop_num
- }
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] prop", data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- //-----------------------------------红包关接口-----------------------------------
- /**新手红包
- * @param:get_type 获取类型 0 普通 1 双倍
- * @param:pass_no 关卡数
- * @param:red_mondey 红包数目
- */
- newerRedPacket(get_type: number, pass_no: number, red_mondey: number): Promise<any> {
- let url = `${GameConst.url_service}/red-package/newer`;
- let data = {
- "get_type": get_type,
- "pass_no": pass_no,
- "red_money": red_mondey
- }
- // LogUtil.log("data",data);
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] newerRedPacket", data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- /**登陆红包
- * @param:get_type 获取类型 0 普通 1 双倍
- * @param:pass_no 关卡数
- * @param:red_mondey 红包数目
- */
- loginRedPacket(get_type: number, pass_no: number, red_mondey: number): Promise<any> {
- let url = `${GameConst.url_service}/red-package/login`;
- let data = {
- "get_type": get_type,
- "pass_no": pass_no,
- "red_money": red_mondey
- }
- // LogUtil.log("data",data);
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] loginRedPacket", data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- /**通关红包
- * @param:get_type 获取类型 0 普通 1 双倍
- * @param:pass_no 关卡数
- * @param:red_mondey 红包数目
- */
- passRedPacket(get_type: number, pass_no: number, red_mondey: number): Promise<any> {
- let url = `${GameConst.url_service}/red-package/pass`;
- let data = {
- "get_type": get_type,
- "pass_no": pass_no,
- "red_money": red_mondey
- }
- // LogUtil.log("data",data);
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] passRedPacket", data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- /**随机红包
- * @param:get_type 获取类型 0 普通 1 双倍
- * @param:pass_no 关卡数
- * @param:red_mondey 红包数目
- */
- randomRedPacket(get_type: number, pass_no: number, red_mondey: number): Promise<any> {
- let url = `${GameConst.url_service}/red-package/random`;
- let data = {
- "get_type": get_type,
- "pass_no": pass_no,
- "red_money": red_mondey
- }
- // LogUtil.log("data",data);
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] randomRedPacket", data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- //-----------------------------------提现接口-----------------------------------
- /**提现
- * @param amount 提现数额
- * @param cash_type 提现类型
- */
- cash(amount: number, cash_type: number): Promise<any> {
- let url = `${GameConst.url_service}/cash/getCash`;
- let data = {
- "amount": amount,
- "cash_type": cash_type
- }
- let bodyData = this.encryptBodyData(data);
- mk.console.log("cash_type", cash_type);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] cash", data);
- resolve(data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- caseRecords(): Promise<any> {
- let url = `${GameConst.url_service}/cash/records`;
- let data = {
- }
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] cash/records", data);
- }).catch((err) => {
- reject(err);
- });
- })
- }
- //互推位相关接口--------------------------------------------------------------------
- /**抽奖 */
- public recommendList(): Promise<any> {
- let url = `${GameConst.url_service}/fission/recommendList`;
- let data = {
- }
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] fission/recommendList", data);
- resolve(data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] fission/recommendList", err);
- reject(err);
- });
- })
- }
- /**抽奖 */
- public appDownloadLog(downloadAppId: string): Promise<any> {
- let url = `${GameConst.url_service}/fission/appDownloadLog`;
- let data = {
- "downloadAppId": downloadAppId,
- }
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] fission/appDownloadLog", data);
- resolve(data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] fission/appDownloadLog", err);
- reject(err);
- });
- })
- }
- //API回传--------------------------------------------------------------------------
- /**更新设备信息 */
- public updateDeviceInfo(deviceInfo: any) {
- let url = `${GameConst.url_service}/user/machine`;
- let data = deviceInfo;
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] user/machine", data);
- }).catch((err) => {
- reject(err);
- mk.console.log("[HttpMgr] user/machine err", err);
- });
- })
- }
- /**巨量API回传
- * @param type 0 激活 6 次留
- */
- public juliangAPIActive(type: number) {
- if (cc.sys.os != cc.sys.OS_ANDROID) {
- return;
- }
- mk.console.log("巨量回传 type", type);
- let url = `${GameConst.url_service}/ad/oe/callback/activate`;
- let data = {
- "event_type": type,
- "source": GameConst.appVersion + ';'
- }
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] juliangcallback/activate", data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] juliangcallback/activate err", err);
- reject(err);
- });
- })
- }
- //星云统计--------------------------------------------------------------------
- /** 向星云发送事件埋点 */
- public sendEventCp(eventKey: string, eventDes: string) {
- mk.console.log('seventKey ', eventKey);
- mk.console.log('eventDes ', eventDes)
- //使用
- let uin = !!GameConst.uin ? GameConst.uin : GameConst.tmp_uin;
- if (!uin) {
- mk.console.log("没有Uin,不执行");
- return;
- }
- let url = `${GameConst.url_service}/cp`;
- let isFirstDay = PlayerConst.loginDay == 1 ? 1 : 0;
- let data = {
- "appid": GameConst.appid,
- "uid": uin,
- "isFirstDay": isFirstDay, // 0 1 是第一天
- "umengChannel": GameConst.umengChannel,
- "deviceType": GameConst.deviceType,
- "androidVerison": GameConst.androidVersion,
- "version": GameConst.appVersion,
- "point": eventKey,
- "description": eventDes
- }
- // LogUtil.log("[HttpMgr] sendEventCp data", data);
- let bodyData = this.encryptBodyData(data);
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] sendEventCp", data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] sendEventCp err", err);
- });
- }
- updateGameVersion(version: string) {
- let url = `${GameConst.url_service}/game/updateVersion`;
- let data = {
- "version": version,
- }
- let bodyData = this.encryptBodyData(data);
- return new Promise((resolve, reject) => {
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] game/updateVersion", data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] game/updateVersion err", err);
- reject(err);
- });
- })
- }
- /** 更新观看广告次数
- */
- updateVideoTimes(placementId, adunit_format, network_type, network_placement_id,
- network_firm_id, adsource_id, adsource_index, adsource_price,
- adsource_isheaderbidding, publisher_revenue, precision, ecpm_level) {
- if (!GameConst.ifShowAd) {
- return;
- }
- let url = `${GameConst.url_service}/video/updateVideo`;
- let data = {
- "imei": GameConst.imei,
- "idfa": GameConst.idfa,
- "oaid": GameConst.oaid,
- "uin": GameConst.uin,
- "version": GameConst.appVersion,
- "tf_channel": GameConst.tf_channel,
- "destoon_ad_place": placementId,
- "ad_type": 1,
- "adunit_format": adunit_format,
- "network_type": network_type,
- "network_placement_id": network_placement_id,
- "network_firm_id": network_firm_id,
- "adsource_id": adsource_id,
- "adsource_index": adsource_index,
- "adsource_price": adsource_price,
- "adsource_isheaderbidding": adsource_isheaderbidding,
- "publisher_revenue": publisher_revenue,
- "precision": precision,
- "ecpm_level": ecpm_level
- }
- mk.console.log("[HttpMgr] updateVideoTimes data", data);
- Object.keys(data).forEach((key) => {
- mk.console.log(`updateVideo ${key}`, data[key]);
- })
- let bodyData = this.encryptBodyData(data);
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] updateVideoTimes ok", data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] updateVideoTimes err", err);
- });
- }
- /** 更新其他广告次数
- * @param type 1:激励视频成功、 2:插屏、3:信息流 4 观看视频
- */
- public updateADLog(type, placementId, adunit_format, network_type, network_placement_id,
- network_firm_id, adsource_id, adsource_index, adsource_price,
- adsource_isheaderbidding, publisher_revenue, precision, ecpm_level) {
- if (!GameConst.ifShowAd) {
- return;
- }
- let url = `${GameConst.url_service}/video/updateADLog`;
- let data = {
- "imei": GameConst.imei,
- "idfa": GameConst.idfa,
- "oaid": GameConst.oaid,
- "uin": GameConst.uin,
- "version": GameConst.appVersion,
- "tf_channel": GameConst.tf_channel,
- "destoon_ad_place": placementId,
- "ad_type": type,
- "adunit_format": adunit_format,
- "network_type": network_type,
- "network_placement_id": network_placement_id,
- "network_firm_id": network_firm_id,
- "adsource_id": adsource_id,
- "adsource_index": adsource_index,
- "adsource_price": adsource_price,
- "adsource_isheaderbidding": adsource_isheaderbidding,
- "publisher_revenue": publisher_revenue,
- "precision": precision,
- "ecpm_level": ecpm_level
- }
- mk.console.log("[HttpMgr] updateADLog data", data);
- let bodyData = this.encryptBodyData(data);
- this.httpRquest(url, JSON.stringify(bodyData), HTTP_METHOD.POST).then((responseData) => {
- let data = this.parseResponseData(responseData);
- mk.console.log("[HttpMgr] updateADLog ok", data);
- }).catch((err) => {
- mk.console.log("[HttpMgr] updateADLog err", err);
- });
- }
- //-----------------------------------加解密-----------------------------------
- /**加密参数 */
- private encryptBodyData(data: any): any {
- let encryptBodyData: any = null;
- let encryptData: any = null;
- //LogUtil.log("GameConst.tmp_uin",GameConst.tmp_uin);
- data.timestamp = Math.floor(new Date().getTime() * 0.001);
- if (GameConst.isAuth) {
- encryptData = mk.encrypt.encrypt(JSON.stringify(data), GameConst.session_key, GameConst.appid);
- encryptBodyData = {
- "uin": GameConst.uin,
- "encrypt": encryptData
- }
- }
- else {
- encryptData = mk.encrypt.encrypt(JSON.stringify(data), GameConst.session_key, GameConst.appid);
- encryptBodyData = {
- "uin": GameConst.tmp_uin,
- "encrypt": encryptData
- }
- }
- return encryptBodyData;
- }
- /**
- * 解析返回的数据
- * @param response 返回数据
- * @param ifDataClear 是否数据是明文发送 默认暗文
- */
- private parseResponseData(response: any, ifDataClear: boolean = false): any {
- let data = null
- if (ifDataClear) {
- data = response.data
- }
- else {
- if (response.encrypt) {
- data = mk.encrypt.decrypt(response.encrypt, GameConst.session_key, GameConst.appid)
- data = JSON.parse(data)
- }
- else if (response.data) {
- data = response.data
- }
- }
- return data
- }
- }
- export enum HTTP_METHOD {
- GET = "GET",
- POST = "POST"
- }
- export enum HTTP_TYPE {
- connect = "connect",
- recommendList = "recommendList"
- }
- //通关接口ERR CODE
- export enum PASS_ERR_CODE {
- /** 关卡号不正*/
- PASSNO_INCORRECT = 9001,
- /**关卡号不能为空或者小于1 */
- PASSNO_NULL = 9002,//
- /***获取积分异常(积分传参非法)*/
- SCORE_PARAM_ILLEGAL = 9003,
- /**已达单关积分获取次数*/
- SCORE_OVER_TIMES = 9004,
- /**已达今日积分上限*/
- SCORE_REACH_LIMIT = 9005
- }
|