UNPKG

gamelet-pixui-frame

Version:

pixui开发者框架

228 lines 9.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateUID = void 0; exports.singleton = singleton; exports.getQueryParam = getQueryParam; exports.getGameletInnerVersion = getGameletInnerVersion; exports.checkVersionToNumber = checkVersionToNumber; exports.GenCallApplicationBrokerRequest = GenCallApplicationBrokerRequest; exports.CalculateCallApplicationBrokerSign = CalculateCallApplicationBrokerSign; exports.UserdataComp = UserdataComp; exports.arrayBufferToBase64 = arrayBufferToBase64; exports.base64ToArrayBuffer = base64ToArrayBuffer; var md5_1 = __importDefault(require("md5")); function singleton(impl) { return (function () { var inst; return { getInstance: function () { if (!inst) { inst = new impl(); } return inst; } }; })(); } /** * Uid 的结构是 ID + magic(<100000) * QJS int 是64位(53有效位),足够用以标识 */ exports.generateUID = (function () { var __currentUID = 0; // step 是保留给 appID 填写的位置,我们默认appID不超过10w var __step = 100000; return function (magic) { if (magic === void 0) { magic = 0; } __currentUID += __step; var numID = __currentUID + magic; return numID.toString(16); }; })(); function getQueryParam(key) { var query = decodeURI(window.location.search.substring(0)); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == key) { return pair[1]; } } return ""; } /** * 获取内部版本号 */ function getGameletInnerVersion() { var verString = getQueryParam('env_gameletInnerVersion'); if (!verString) { return '1.0.0.0'; } return verString; } /** * 把version转为数字类型方便对比。特别注意:targetVersion最大支持4位版本号,每一位为最大不超过99 * @param targetVersion 传入的版本号,如 1.0.1.0 , 1.0.1 , 1.1 * @returns 错误时返回 undefined, 正确时转为数字,如 1 00 01 00, 1 00 01 00, 1 01 00 00 */ function checkVersionToNumber(targetVersion) { var targetVersionArray = targetVersion.split('.'); var retNumberVersion = 0; for (var key in targetVersionArray) { switch (key) { case '0': retNumberVersion += parseInt(targetVersionArray[key]) * 1000000; break; case '1': retNumberVersion += parseInt(targetVersionArray[key]) * 10000; break; case '2': retNumberVersion += parseInt(targetVersionArray[key]) * 100; break; case '3': retNumberVersion += parseInt(targetVersionArray[key]); break; } } return retNumberVersion; } // MD5 Encode function GenCallApplicationBrokerRequest(subCommandId, applicationId, appKey, appVersion, requestbodyProxyDataObject, userData) { var header = {}; header["cmd_id"] = subCommandId.toString(); //管理端拉取活动id header["sdk_version"] = userData.sdkVersion || userData.sSdkVersion; header["game_app_id"] = userData.appID || userData.sAppId; header["plat_id"] = userData.platID || userData.sPlatID; header["acc_type"] = userData.accountType || userData.sAcountType; header["access_token"] = userData.accessToken || userData.sAccessToken; header["area_id"] = userData.area || userData.sArea; header["patition_id"] = userData.partition || userData.sPartition; header["open_id"] = userData.openID || userData.sOpenId; header["role_id"] = userData.roleID || userData.sRoleId; header["timestamp"] = (new Date()).valueOf().toString(); header["pdr_appid"] = applicationId.toString(); header["sign"] = (0, md5_1.default)(CalculateCallApplicationBrokerSign(header, appKey)); header["pdr_version"] = appVersion.toString(); // header["seq_id"] = id.toString(); header["channel_id"] = ""; //这三个字段为空 header["act_style"] = ""; header["info_id"] = ""; header["source"] = 3; header["msg_type"] = "1"; //请求1,应答2 var body = requestbodyProxyDataObject; var request = {}; request["head"] = header; request["body"] = body; return request; } // 拼接 CallApplicationBroker 的签名 // @param headerTable 请求header // @param appkey 应用的appkey function CalculateCallApplicationBrokerSign(headerTable, appkey) { //按照字母排序 var reqString = ""; var sortKey = Object.keys(headerTable).sort(); for (var _i = 0, sortKey_1 = sortKey; _i < sortKey_1.length; _i++) { var iterator = sortKey_1[_i]; console.log(iterator, headerTable[iterator]); reqString = reqString + iterator + "=" + headerTable[iterator] + "&"; } reqString = reqString + "appkey=" + appkey.toString(); return reqString; } function UserdataComp(ud) { /** * member不为 undefined|null 时取member,否则取backupMember * js 中会把 0, "" 当做 false ,所以不能简单判断 */ function checkUserDataMember(member, backupMember) { if (member == undefined) { // member === undefined | null return backupMember; } return member; } ud["sOpenId"] = checkUserDataMember(ud["sOpenId"], ud.openID); ud["sServiceType"] = checkUserDataMember(ud["sServiceType"], ud.serviceType); ud["sAppId"] = checkUserDataMember(ud["sAppId"], ud.appID); ud["sRoleId"] = checkUserDataMember(ud["sRoleId"], ud.roleID); ud["sPlatID"] = checkUserDataMember(ud["sPlatID"], ud.platID); /** * sAcountType 少了一个c,尝试取"sAcountType", 如果取不到就再次获取sAccountType。 * 同时给正确的sAccountType字段赋值 */ ud["sAcountType"] = checkUserDataMember(ud["sAcountType"], ud.accountType); if (!ud["sAcountType"]) { ud["sAcountType"] = checkUserDataMember(ud["sAccountType"], ud.accountType); } ud["sAccountType"] = checkUserDataMember(ud["sAccountType"], ud.accountType); ud["sArea"] = checkUserDataMember(ud["sArea"], ud.area); ud["sPartition"] = checkUserDataMember(ud["sPartition"], ud.partition); ud["sAccessToken"] = checkUserDataMember(ud["sAccessToken"], ud.accessToken); ud["sGameVer"] = checkUserDataMember(ud["sGameVer"], ud.gameVer); ud["sPayToken"] = checkUserDataMember(ud["sPayToken"], ud.payToken); ud["sChannelID"] = checkUserDataMember(ud["sChannelID"], ud.channelID); ud["sSdkVersion"] = checkUserDataMember(ud["sSdkVersion"], ud.sdkVersion); ud["sSign"] = checkUserDataMember(ud["sSign"], ud.sign); ud["sLoginChannel"] = checkUserDataMember(ud["sLoginChannel"], ud.loginChannel); ud["sRegion"] = checkUserDataMember(ud["sRegion"], ud.region); ud["sIntlSdkParam"] = checkUserDataMember(ud["sIntlSdkParam"], ud.intlSdkParam); ud["sLanguage"] = checkUserDataMember(ud["sLanguage"], ud.language); ud["sQQInstalled"] = checkUserDataMember(ud["sQQInstalled"], ud.qq_installed); ud["sWXInstalled"] = checkUserDataMember(ud["sWXInstalled"], ud.wx_installed); ud["sExtend"] = checkUserDataMember(ud["sExtend"], ud.extend_args); ud["openID"] = checkUserDataMember(ud["sOpenId"], ud.openID); ud["serviceType"] = checkUserDataMember(ud["sServiceType"], ud.serviceType); ud["appID"] = checkUserDataMember(ud["sAppId"], ud.appID); ud["roleID"] = checkUserDataMember(ud["sRoleId"], ud.roleID); ud["platID"] = checkUserDataMember(ud["sPlatID"], ud.platID); ud["accountType"] = checkUserDataMember(ud["sAcountType"], ud.accountType); ud["area"] = checkUserDataMember(ud["sArea"], ud.area); ud["partition"] = checkUserDataMember(ud["sPartition"], ud.partition); ud["accessToken"] = checkUserDataMember(ud["sAccessToken"], ud.accessToken); ud["gameVer"] = checkUserDataMember(ud["sGameVer"], ud.gameVer); ud["payToken"] = checkUserDataMember(ud["sPayToken"], ud.payToken); ud["channelID"] = checkUserDataMember(ud["sChannelID"], ud.channelID); ud["sdkVersion"] = checkUserDataMember(ud["sSdkVersion"], ud.sdkVersion); ud["sign"] = checkUserDataMember(ud["sSign"], ud.sign); ud["loginChannel"] = checkUserDataMember(ud["sLoginChannel"], ud.loginChannel); ud["region"] = checkUserDataMember(ud["sRegion"], ud.region); ud["intlSdkParam"] = checkUserDataMember(ud["sIntlSdkParam"], ud.intlSdkParam); ud["language"] = checkUserDataMember(ud["sLanguage"], ud.language); ud["qqInstalled"] = checkUserDataMember(ud["sQQInstalled"], ud.qq_installed); ud["wxInstalled"] = checkUserDataMember(ud["sWXInstalled"], ud.wx_installed); ud["extend"] = checkUserDataMember(ud["sExtend"], ud.extend_args); return ud; } function arrayBufferToBase64(buffer) { // @ts-ignore if (std) { // @ts-ignore std.overtimecheck(0); var bytes = new Uint8Array(buffer); // @ts-ignore var binary = Buffer.from(bytes).toString('base64'); return binary; } else { return ''; } } function base64ToArrayBuffer(base64) { // @ts-ignore if (std) { // @ts-ignore std.overtimecheck(0); // @ts-ignore var binary = Buffer.from(base64, 'base64'); var buffer = new Uint8Array(binary).buffer; return buffer; } else { return new ArrayBuffer(0); } } //# sourceMappingURL=utilities.js.map