"use strict"; cc._RF.push(module, '027ebFO+T1Dk5fPGU9ZJlNI', 'sh_sdk'); // Scripts/sdks/sh_sdk.js "use strict"; // window.PLATFORM = "sh_sdk"; // 平台号 // window.CHANNEL = ""; // 深海小游戏安卓和苹果的渠道 window.PACKAGE_NAME = "闪烁之光口袋版"; // 渠道号 // window.PACKAGE_VERSION = "0.0.18"; window.SH_SDK_PID = "0"; //深海小游戏区别安卓,苹果的pid , window.SH_SDK_AND_PID = "P0006089"; //诗悦-闪烁之光马包-安卓 window.SH_SDK_IOS_PID = "P0006090"; //诗悦-闪烁之光马包-ios window.SH_SDK_FOLLOW = true; //深海小游戏关注功能显隐 true:关闭 false:开启 var ShSdk = require("shsdk"); var RoleController = require("role_controller"); var LoginController = require("login_controller"); var WelfareEvent = require("welfare_event"); var SHSDK = function SHSDK() {}; SHSDK.uid = null; SHSDK.sign = null; SHSDK.role_info = null; // 判断是否授权 SHSDK.initSDK = function () { console.log("深海SDK相关"); console.log(window); if (!window.wx) return; this.initTopInfo(); var systemInfo = wx.getSystemInfoSync(); var systemName = systemInfo.system; window.PLATFORM = "sy"; window.PLATFORM_NAME = "sy"; if (systemName.indexOf("iOS") > -1) { SH_SDK_PID = SH_SDK_IOS_PID; } else if (systemName.indexOf("Android") > -1) { SH_SDK_PID = SH_SDK_AND_PID; } CHANNEL = SH_SDK_PID; ShSdk.init({ package_code: SH_SDK_PID //这是测试的切包编号,正式的请跟我们运营要 // debug:true //米大师沙箱支付控制 }); this.dataPlacement(10000); this.dataPlacement(20000); ShSdk.share(function () { //转发成功时调用这里代码 console.log("ShSdk.share success callback"); }); wx.setKeepScreenOn({ keepScreenOn: true }); wx.onShow(function (res) { if (res) { gcore.GlobalEvent.fire(WelfareEvent.Update_SHWX_show_scene_val, res.scene); } wx.setKeepScreenOn({ keepScreenOn: true }); }); wx.onHide(function (res) { wx.setKeepScreenOn({ keepScreenOn: false }); }); wx.getSetting({ success: function success(res) { cc.log(res); if (res.authSetting["scope.userInfo"]) { SHSDK.login(); } else { var info = wx.getSystemInfoSync(); var button = wx.createUserInfoButton({ type: 'text', text: '', style: { left: 0, bottom: 0, width: info.screenWidth, height: info.screenHeight / 2, lineHeight: 40, backgroundColor: '', color: '#ffffff', textAlign: 'center', fontSize: 16, borderRadius: 4 } }); button.show(); button.onTap(function (res) { button.hide(); ShSdk.unionId(res); SHSDK.login(); console.log(res); }); } } }); }, SHSDK.login = function () { this.dataPlacement(30000); ShSdk.login(function (data) { this.dataPlacement(30001); //根据需要,做相应操作 window.SH_SDK_TOKENID = data.tokenid; SHSDK.postFunc(function (result) { console.log(result); SHSDK.uid = result.msg.uid; SHSDK.sign = result.msg.sign; var login_data = {}; login_data.usrName = "sh_" + SHSDK.uid; login_data.password = "wx123456"; console.log("深海小游戏初始化成功,开始请求服务器列表"); LoginController.getInstance().loginPlatformRequest(login_data); }.bind(this)); }); }; SHSDK.postFunc = function (callback) { var xhr = cc.loader.getXMLHttpRequest(); var url = "https://s1-h5mlf-h5sszg.shiyuegame.com/api.php/pf/diai/login/"; url = url + "?tokenid=" + SH_SDK_TOKENID; url = url + "&cps=" + SH_SDK_PID; xhr.open("POST", url); //xhr.open("GET", ServerLink+link+"?"+parm,false); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status <= 207) { var result = JSON.parse(xhr.responseText); cc.log("result==>", result); if (result["error"] == -1) { message(result["msg"]); return; } SHSDK.dataPlacement(40000); callback(result); } }; }; // 计算小程序菜单位置 SHSDK.initTopInfo = function () { var menuInfo = wx.getMenuButtonBoundingClientRect(); var systemInfo = wx.getSystemInfoSync(); if (menuInfo.top > 30) { window.WX_FIT = menuInfo.top / systemInfo.screenHeight * 0.7 || 0; } else { window.WX_FIT = menuInfo.top / systemInfo.screenHeight * 0.1 || 0; } console.log("微信小游戏菜单栏的适配值"); cc.log(WX_FIT); }; // 链接游戏服,登陆游戏 SHSDK.loginGame = function () { var login_data = []; var _account = "sh_" + SHSDK.uid; var sign = SHSDK.sign; console.log("_account==>", _account); login_data = [{ key: "channel", val: SH_SDK_PID }, { key: "package_name", val: PACKAGE_NAME }, { key: "package_version", val: PACKAGE_VERSION }, { key: "platform", val: PLATFORM }, { key: "account", val: _account }, { key: "token", val: SH_SDK_TOKENID }, { key: "sign", val: sign }]; console.log("login_data==>", login_data); LoginController.getInstance().cusSDKLogin_2(login_data); }; SHSDK.pay = function (money, buyNum, prodId, productName, productDesc, extension, coinNum) { var payCallFunc = function () { var roleVo = RoleController.getInstance().getRoleVo(); if (!roleVo) return; //时间戳 var date_time = Math.ceil(Date.now() / 1000); //充值订单号 var game_number = SH_SDK_PID; //游戏编号P******; game_number = game_number + "_" + SHSDK.uid; //uid game_number = game_number + "_" + date_time; //时间戳 cc.log("充值订单号game_number==>", game_number); productName = productName || money * 10 + "钻石"; var loginData = LoginController.getInstance().getModel().getLoginData(); var srv_id = ""; if (roleVo && roleVo.srv_id) { srv_id = roleVo.srv_id; } else if (loginData.srv_id) { srv_id = loginData.srv_id; } var index = srv_id.indexOf("_"); if (index != -1) { srv_id = Number(srv_id.slice(index + 1, srv_id.length)); } else { srv_id = 0; } //充值拓展内容 var severInfo = roleVo.srv_id.split("_"); var platform = severInfo[0] || ""; var zone_id = severInfo[1]; var cps = SH_SDK_PID; var channel = SH_SDK_PID; var _extension = roleVo.rid + "$$" + platform + "$$" + zone_id + "$$" + channel + "$$" + prodId + "$$" + productName + "$$" + cps + "$$" + date_time; cc.log("拓展参数_extension==>", _extension); var base_64 = require("base64").Base64; _extension = base_64.encode(_extension); cc.log("base64拓展参数_extension==>", _extension); var params = { game_no: game_number, //游戏订单号,由前端拼接 order_money: money * 100, //充值金额,单位 分 order_name: productName, //订单名称 role_id: roleVo.rid, //角色id,必传项 role_name: roleVo.name, //角色名, role_level: roleVo.lev, //角色等级,用于判断角色等级,控制充值入口,必传项 server_id: srv_id, //区服id,必传项 server_name: loginData.srv_name, //区服名称,必传项 ext: _extension //扩展信息,通知发货时会原样返回 }; console.log("充值数据", params); ShSdk.pay(params, function (data) { if (data.ret == 'SUCCESS') { //前端通知,不能做为实际发货的凭证,真实情况以服务端通知为准 console.log("支付完成"); wx.showModal({ title: "支付成功", content: "支付成功" }); } else if (data.ret == 'YD_TIPS') { wx.showModal({ title: "温馨提示", content: data.msg //充值引导文字,由我们后台配置 }); } else if (data.ret == 'NOT_ALLOW') { wx.showModal({ title: "支付失败", content: "暂不支持支付" }); } else { console.log("支付取消或失败"); } }.bind(this)); }.bind(this); require("tips_controller").getInstance().showFirstCharge(payCallFunc); }; //主动拉起转发 可用于游戏内按钮事件触发,分享内容由我们这边后台配置,不需要传参,【支持传参,格式如:key=111&aaa=333】 // 传参模式:ShSdk.goShare('key=111&aaa=333'); // 不传参模式:ShSdk.goShare(); SHSDK.goShare = function (data) { if (data) { ShSdk.goShare(data); } else { ShSdk.goShare(); } }; // 获取公众号关注状态接口【特别说明:目前还没有公众号,所以暂时没有关注回调信息】 SHSDK.subscribe = function () { ShSdk.subscribe(function (ret) { //说明【关注状态->subscribe,1:已关注,0:取消关注,关注|取消关注时间->subscribe_time】 console.log('公众号关注状态获取结果', ret); }); }; // 添加数据埋点推送方法,请在对应的节点上调用此方法 SHSDK.dataPlacement = function (actionId) { ShSdk.dataPlacement({ action: actionId }); }; // 客服 SHSDK.openCustomerServiceConversation = function () { if (window.wx) { wx.openCustomerServiceConversation(); } }; SHSDK.setRoleInfo = function (data) { var loginData = LoginController.getInstance().getModel().getLoginData(); if (loginData.srv_id == "") return; var roleVo = RoleController.getInstance().getRoleVo() || data; var srv_id; if (roleVo && roleVo.srv_id) { srv_id = roleVo.srv_id; } else if (loginData.srv_id) { srv_id = loginData.srv_id; } var index = srv_id.indexOf("_"); if (index != -1) { srv_id = Number(srv_id.slice(index + 1, srv_id.length)); } else { srv_id = 0; } this.role_info = { role_id: roleVo && roleVo.rid || 0, //角色ID role_name: roleVo && roleVo.name || "", //角色名 role_level: roleVo && roleVo.lev || 1, //角色等级 server_id: srv_id, //区服编号 server_name: loginData.srv_name, //区服名称 has_gold: roleVo && roleVo.gold || 0, //角色所持有货币数 vip_level: roleVo && roleVo.vip_lev || 0, //角色vip等级 没有可以传0 role_power: roleVo && roleVo.power || 0, //int 战力、武力之类角色的核心数值,没有可以传0 create_time: roleVo && roleVo.reg_time || 0 //时间戳,单位:秒 }; }; //角色登录提交 SHSDK.submitLogin = function () { if (gcore.SysEnv.get("shsdk_account") == this.uid) { return; } gcore.SysEnv.set("shsdk_account", this.uid); this.setRoleInfo(); console.log("角色登录提交一次--role_info==>", this.role_info); if (PLATFORM_TYPR == "SH_SDK") { ShSdk.enterGame(this.role_info, function (ret) { console.log('角色上报,返回支付情况', ret); if (ret.data.msg.sp != null) { window.IS_SHOW_CHARGE = ret.data.msg.sp; } if (ret.data.msg.follow != null) { window.SH_SDK_FOLLOW = ret.data.msg.follow; } }); cc.log("登录上报方法成功-----"); } }; //创建角色信息上报 SHSDK.createRole = function (data) { this.dataPlacement(90200); this.setRoleInfo(data); cc.log("创角提交一次上报---->", this.role_info); ShSdk.createRole(this.role_info, function (ret) { console.log('角色上报,返回支付情况', ret); if (ret.data.msg.sp != null) { window.IS_SHOW_CHARGE = ret.data.msg.sp; } if (ret.data.msg.follow != null) { window.SH_SDK_FOLLOW = ret.data.msg.follow; } }.bind(this)); }; //角色升级信息上报 SHSDK.roleUpLevel = function (value) { this.setRoleInfo(); if (this.role_info && this.role_info.create_time == 0) return; if (value != null && value > 1) { this.role_info.role_level = value; console.log('角色升级信息上报', this.role_info); ShSdk.roleUpLevel(this.role_info, function (ret) { console.log('角色上报,返回支付情况', ret); if (ret.data.msg.sp != null) { window.IS_SHOW_CHARGE = ret.data.msg.sp; } if (ret.data.msg.follow != null) { window.SH_SDK_FOLLOW = ret.data.msg.follow; } }.bind(this)); cc.log("角色升级上报提交--->", this.role_info); } else { cc.log("角色升级上报提交失败--->", this.role_info, value); } }; SHSDK.sdkBackLogin = function () {}; SHSDK.getCurrChannel = function () {}; SHSDK.getSubChannel = function () {}; SHSDK.setClipboardData = function (desc) { wx.setClipboardData({ data: desc, success: function success(res) {} }); }; module.exports = SHSDK; cc._RF.pop();