public void PostDeviceInit(System.Action <bool> callback = null) { ControlServerLogHelper.Instance.PostPlayerFollowRecord(PlayerFollowRecordSceneId.DeviceInitStart, "", false); GlobalConfig globalConfig = GlobalConfig.GetInstance(); IBridge bridge = DBOSManager.getDBOSManager().getBridge(); string url = GlobalConfig.GetInstance().CSURLV + "DeviceInit"; url += "?os=" + globalConfig.PlatformName; url += "&os_ver=" + bridge.getOSVersion(); url += "&imei=" + bridge.GetPhoneIDFA(); url += "&mac=" + bridge.getPhoneMAC(); url += "&imsi=" + bridge.getPhoneIMSI(); url += "&brand="; url += "&mobile=" + bridge.getPhoneModel(); url += "&app_ver=" + bridge.getAppVersion(); url += "&cpu_t=" + bridge.getCPUAPI(); url += "&net=" + bridge.getNetType(); url += "&device_mark=" + globalConfig.DeviceMark; url += "&provider=" + globalConfig.SDKName; url += "&device_id="; url += "&game_mark=" + globalConfig.GameMark; url += "&ram=" + bridge.getAvailMemory(); url += "&rom=" + bridge.getStorageFreeSize(); mPostDeviceInitFinishedCallback = callback; Debug.Log(string.Format("[PostDeviceInit] {0}", url)); HttpRequest.Instance.GET(url, OnPostDeviceInitFinished, null); }
// 请求更新信息 // 第三个res_v是之前的补丁(res3),第四个res_v是新的散文件0.unity3d的版本(res4) // 这里将res_v=0是为了获取当前最新版本的下载地址(版本号一致时服务器不返回下载信息的) public string getUpdatePatchUrl() { IBridge bridge = DBOSManager.getOSBridge(); int localVersion = 0; if (xpatch.XPatchConfig.IsBinPatchPlatform()) { localVersion = xpatch.XPatchManager.Instance.LocalVersion; } var fmt = "platform={0}&app_v={1}&mobile={2}&lib_v=0.0.0&game_mark={3}&cpu=armeabi-v7a&api_ver=1.0&device_mark={4}&imei={5}&res_v=0&res_v=0&res_v={6}&res_v={7}&server_id={8}"; string sign = string.Format(fmt, "ios_" + bridge.getSDKName(), bridge.getAppVersion(), bridge.getPhoneModel(), GlobalConfig.Instance.GameMark, GlobalConfig.Instance.DeviceMark, bridge.GetPhoneIDFA(), localVersion, 0, GrayServerManager.Instance.GetLoginServer()); Debug.Log(string.Format("controlServer_oriSign_ZYGXCheck2 = {0}", sign)); sign = WWW.EscapeURL(Utils.AES.Encode(sign, Const.CS_URL_KEY, Const.CS_URL_IV)); string url = string.Format("{0}ZYGXCheck2?sign={1}", GlobalConfig.GetInstance().CSURLVEX, sign); return(url); }
// 获取更新信息,加密版 public string getUpdateCheckUrlEx() { IBridge bridge = DBOSManager.getOSBridge(); var fmt = "platform={0}&app_v={1}&mobile={2}&lib_v=0.0.0&game_mark={3}&cpu=armeabi-v7a&api_ver=1.0&device_mark={4}&imei={5}&res_v=0&res_v=0"; string sign = string.Format(fmt, "ios_" + bridge.getSDKName(), bridge.getAppVersion(), bridge.getPhoneModel(), GlobalConfig.Instance.GameMark, GlobalConfig.Instance.DeviceMark, bridge.GetPhoneIDFA()); Debug.Log(string.Format("controlServer_oriSign_ZYGXCheck2 = {0}", sign)); sign = WWW.EscapeURL(Utils.AES.Encode(sign, Const.CS_URL_KEY, Const.CS_URL_IV)); string url = string.Format("{0}ZYGXCheck2?sign={1}", GlobalConfig.GetInstance().CSURLVEX, sign); return(url); }
//获取更新信息 public string getUpdateCheckUrl() { IBridge bridge = DBOSManager.getOSBridge(); string url = string.Format("{0}UpdateCheck?platform={1}&app_v={2}&mobile={3}&lib_v=0.0.0&game_mark={4}&cpu=armeabi-v7a&api_ver=1.0&device_mark={5}&imei={6}&res_v=0&res_v=0", GlobalConfig.GetInstance().CSURLV, "ios_" + bridge.getSDKName(), bridge.getAppVersion(), bridge.getPhoneModel(), GlobalConfig.Instance.GameMark, GlobalConfig.Instance.DeviceMark, bridge.GetPhoneIDFA()); return(url); }
public void GotoCSLogin(string msg) { mIsLogining = true; Hashtable hashtable = MiniJSON.JsonDecode(msg) as Hashtable; if (hashtable != null) { if (hashtable.Count <= 2) { if (mLoginCallback != null) { endLogin((int)SDK_STATU_CODE.LOGIN_CANCEL, xc.TextHelper.SDKLoginCancel); } return; } GlobalConfig globalConfig = GlobalConfig.GetInstance(); string loginAction = hashtable["_LoginAction_"] as string; string data = ""; foreach (DictionaryEntry de in hashtable) { string key = de.Key.ToString(); string value = de.Value.ToString(); if (!key.Equals("_LoginAction_")) { value = WWW.EscapeURL(value, System.Text.Encoding.UTF8); data = data + key + "=" + value + "&"; } } IBridge bridge = DBOSManager.getOSBridge(); string url = ""; // AppID超过350使用新接口 if (GlobalConfig.Instance.AppId > 350) { url = globalConfig.LoginURL + "eagleV4/" + loginAction + "?" + data + "game_mark=" + GlobalConfig.Instance.GameMark + "&net=" + bridge.getNetType() + "&provider=" + GlobalConfig.Instance.Channel; // os_ext 韩国版用来标识是one_store还是google_play,还是app_store if (Const.Region == RegionType.KOREA) { url += "&os_ext=" + Application.identifier; url += "&sdkUserId=" + bridge.getSdkUserID(); } } else { url = globalConfig.LoginURL + loginAction + "?" + data + "game_mark=" + GlobalConfig.Instance.GameMark + "&net=" + bridge.getNetType() + "&provider=" + GlobalConfig.Instance.Channel; if (Const.Region == RegionType.KOREA) { url += "&os_ext=" + Application.identifier; url += "&sdkUserId=" + bridge.getSdkUserID(); } } #if UNITY_IPHONE url = globalConfig.LoginURL + loginAction + "?" + data + "game_mark=" + GlobalConfig.Instance.GameMark + "&net=" + bridge.getNetType(); if (Const.Region == RegionType.KOREA) { url += "&os_ext=" + Application.identifier; url += "&sdkUserId=" + bridge.getSdkUserID(); } //ios 在xcode 已经传了 #endif #if UNITY_IPHONE url = url + "&device_mark=" + globalConfig.DeviceMark; Debug.Log("SDKControler.GotoCSLogin" + url); #endif // 加上二级渠道 url = url + "&sub_chn=" + globalConfig.SubChannel; // 扩展参数 Hashtable extendParams = new Hashtable(); extendParams.Add("did", WWW.EscapeURL(bridge.getSDKDeviceID())); extendParams.Add("idfa", WWW.EscapeURL(bridge.GetPhoneIDFA())); extendParams.Add("extc", bridge.getExtChannel()); //三级渠道 var extend = MiniJSON.JsonEncode(extendParams); url = url + "&extend=" + extend; MainGame.HttpRequest.GET(url, OnCSLoginFinished, null); } else { if (mLoginCallback != null) { mLoginCallback((int)SDK_STATU_CODE.LOGIN_MSG_FAIL, xc.TextHelper.SDKLoginCancel); } return; } }
/// <summary> /// 玩家登录轨迹 /// </summary> public void PostPlayerFollowRecord(PlayerFollowRecordSceneId sceneId, string desc = "", bool isEnterGame = true) { if (sceneId == PlayerFollowRecordSceneId.EnterFirstScene) { // TestinExternalLog DBOSManager.getOSBridge().log2OSCmd("TestinExternalLog", mLogContent); // TestinExternalLog var logContent = string.Format(mLogFmt, 3 - QualitySetting.GraphicLevel); DBOSManager.getOSBridge().log2OSCmd("TestinExternalLog", logContent); // 云梯第一次进入场景 ControlServerLogHelper.Instance.PostCloudLadderEventAction(CloudLadderMarkEnum.enter_game); } FieldInfo fi = sceneId.GetType().GetField(sceneId.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); string scene = (attributes.Length > 0) ? attributes[0].Description : sceneId.ToString(); LanguageType languageType = Const.Language; fi = languageType.GetType().GetField(languageType.ToString()); attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); string language = (attributes.Length > 0) ? attributes[0].Description : languageType.ToString(); //GameDebug.LogError("PostPlayerFollowRecord scene: " + scene); GlobalConfig globalConfig = GlobalConfig.GetInstance(); GlobalConfig.LoginInfoStruct loginInfo = globalConfig.LoginInfo; IBridge bridge = DBOSManager.getOSBridge(); string url = globalConfig.CommonURL + "playerFollowRecord"; url += "?gameMark=" + globalConfig.GameMark; if (string.IsNullOrEmpty(loginInfo.AccName) == true) { url += "&account=none"; } else { url += "&account=" + loginInfo.AccName; } if (loginInfo.ServerInfo != null) { url += "&server_id=" + loginInfo.ServerInfo.ServerId; } url += "&role_id=" + loginInfo.RId; url += "&role_name=" + WWW.EscapeURL(loginInfo.Name); url += "&level=" + loginInfo.Level; if (isEnterGame == true) { url += "&vip=" + VipHelper.GetVipValidLevel(); } else { url += "&vip=0"; } url += "&provider=" + globalConfig.SDKName; url += "&scene=" + WWW.EscapeURL(scene); url += "&msg=" + WWW.EscapeURL(desc); url += "&position=0"; url += "&os=" + globalConfig.PlatformName; url += "&osVer=" + bridge.getOSVersion(); url += "&brand=" + WWW.EscapeURL(bridge.getBrand()); url += "&model=" + WWW.EscapeURL(bridge.getPhoneModel()); url += "&job=" + loginInfo.Job; url += "&net=" + bridge.getNetType(); if (isEnterGame == true) { if (Game.Instance.ServerTime > 0) { url += "&time=" + Game.Instance.ServerTime; } else { url += "&time=" + System.Convert.ToUInt32(xc.Maths.Util.ConvertDateTimeToTimestamp(System.DateTime.Now));; } } else { url += "&time=0"; } url += "&device_mark=" + globalConfig.DeviceMark; url += "&start_time=" + globalConfig.StartTimeStamp; #if UNITY_IPHONE url += "&imei=" + bridge.GetPhoneIDFA(); #else url += "&imei=" + bridge.getPhoneIMEI(); #endif url += "&mac=" + bridge.getPhoneMAC(); url += "&imsi=" + bridge.getPhoneIMSI(); url += "&app_version=" + bridge.getAppVersion(); url += "&chn_id=" + bridge.getSdkID(); url += "&carrier=" + WWW.EscapeURL(bridge.getOperator()); url += "&jbk=" + bridge.isRoot(); url += "&did=" + bridge.getSDKDeviceID(); url += "&tz=" + WWW.EscapeURL(bridge.getTimeZone()); url += "&lang=" + language; url += "&width=" + bridge.getWindowWidth(); url += "&height=" + bridge.getWindowHeigh(); url += "&apil=" + bridge.getAPILevel(); url += "&idfa=" + bridge.GetPhoneIDFA(); url += "&idfv=" + bridge.getPhoneIDFV(); url += "&ip=" + WWW.EscapeURL(bridge.getLocalIpAddress()); url += "&wifi=" + WWW.EscapeURL(bridge.getWfName()); url += "&factory=" + WWW.EscapeURL(bridge.getManufacturer()); url += "&game_version=" + VersionInfoManager.Instance.GameVersion; url += "&appId=" + bridge.getAppID(); url += "&sdkv=" + bridge.getSDKVersionName(); HttpRequest.Instance.GET(url, null, null); GameDebug.Log("PostPlayerFollowRecord: " + scene); }
public static void CreatePkgAccPhoneInfos(List <PkgAccPhoneInfo> infos) { IBridge bridge = DBOSManager.getOSBridge(); GlobalConfig globalConfig = GlobalConfig.GetInstance(); infos.Clear(); // 手机平台 PkgAccPhoneInfo info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("platform"); info.val = Encoding.UTF8.GetBytes(globalConfig.PlatformName); GameDebug.Log("platform: " + globalConfig.PlatformName); infos.Add(info); // 系统版本 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("sys_ver"); info.val = Encoding.UTF8.GetBytes(SystemInfo.operatingSystem); GameDebug.Log("system: " + SystemInfo.operatingSystem); infos.Add(info); // 手机型号 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("model"); info.val = Encoding.UTF8.GetBytes(SystemInfo.deviceModel); GameDebug.Log("model: " + SystemInfo.deviceModel); infos.Add(info); // 芯片型号参数 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("chip"); //CPU核数#CPU主频#CPU名称#GPU名称 string chip_info = string.Format("{0}#{1}#{2}#{3}", SystemInfo.processorCount, SystemInfo.processorFrequency, SystemInfo.processorType, SystemInfo.graphicsDeviceName); info.val = Encoding.UTF8.GetBytes(chip_info); GameDebug.Log("chip_info: " + chip_info); infos.Add(info); // imei info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("imei"); info.val = Encoding.UTF8.GetBytes(bridge.getPhoneIMEI()); GameDebug.Log("imei: " + bridge.getPhoneIMEI()); infos.Add(info); // imsi info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("imsi"); info.val = Encoding.UTF8.GetBytes(bridge.getPhoneIMSI()); GameDebug.Log("imsi: " + bridge.getPhoneIMSI()); infos.Add(info); // mac info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("mac"); info.val = Encoding.UTF8.GetBytes(bridge.getPhoneMAC()); GameDebug.Log("mac: " + bridge.getPhoneMAC()); infos.Add(info); // 画质选择 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("grahics"); info.val = Encoding.UTF8.GetBytes(QualitySetting.GraphicLevel.ToString()); GameDebug.Log("grahics: " + QualitySetting.GraphicLevel); infos.Add(info); // 召唤物开关 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("summon"); var summon_str_val = (GlobalSettings.Instance.SummonMonsterVisible ? 1 : 0).ToString(); info.val = Encoding.UTF8.GetBytes(summon_str_val); GameDebug.Log("summon: " + summon_str_val); infos.Add(info); // 同屏人数 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("player"); info.val = Encoding.UTF8.GetBytes(GlobalSettings.Instance.MaxPlayerCount.ToString()); GameDebug.Log("player: " + GlobalSettings.Instance.MaxPlayerCount); infos.Add(info); // 联网方式 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("net"); var net_str_val = ((uint)Application.internetReachability).ToString(); info.val = Encoding.UTF8.GetBytes(net_str_val); GameDebug.Log("net: " + net_str_val); infos.Add(info); // 分辨率 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("screen"); var screnn_str_val = string.Format("{0}*{1}", Screen.width, Screen.height); info.val = Encoding.UTF8.GetBytes(screnn_str_val); GameDebug.Log("screen: " + screnn_str_val); infos.Add(info); // DeviceMark info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("device_mark"); info.val = Encoding.UTF8.GetBytes(globalConfig.DeviceMark); GameDebug.Log("device_mark: " + globalConfig.DeviceMark); infos.Add(info); // appid info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("appid"); info.val = Encoding.UTF8.GetBytes(globalConfig.AppId.ToString()); GameDebug.Log("appid: " + globalConfig.AppId); infos.Add(info); if (globalConfig.LoginInfo.ServerInfo != null) { // 控制服务器的id info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("control_id"); info.val = Encoding.UTF8.GetBytes(globalConfig.LoginInfo.ServerInfo.ServerId.ToString()); GameDebug.Log("control_id: " + globalConfig.LoginInfo.ServerInfo.ServerId); infos.Add(info); // 服务器名字 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("server_name"); info.val = Encoding.UTF8.GetBytes(globalConfig.LoginInfo.ServerInfo.Name); GameDebug.Log("server_name: " + globalConfig.LoginInfo.ServerInfo.Name); infos.Add(info); } // did info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("did"); info.val = Encoding.UTF8.GetBytes(bridge.getSDKDeviceID()); GameDebug.Log("did: " + bridge.getSDKDeviceID()); infos.Add(info); // idfa info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("idfa"); info.val = Encoding.UTF8.GetBytes(bridge.GetPhoneIDFA()); GameDebug.Log("idfa: " + bridge.GetPhoneIDFA()); infos.Add(info); // lua扩展 object[] param = { }; System.Type[] return_type = { typeof(string) }; object[] objs = LuaScriptMgr.Instance.CallLuaFunction_return(LuaScriptMgr.Instance.Lua.Global, "GetExtendPhoneInfo", param, return_type); if (objs != null && objs.Length > 0) { if (objs[0] != null) { string ret = (string)objs[0]; System.Object retObject = MiniJSON.JsonDecode(ret); if (retObject != null) { Hashtable hashtable = retObject as Hashtable; if (hashtable != null) { foreach (DictionaryEntry kv in hashtable) { info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes(kv.Key.ToString()); info.val = Encoding.UTF8.GetBytes(kv.Value.ToString()); GameDebug.Log(kv.Key.ToString() + ": " + kv.Value.ToString()); infos.Add(info); } } } } } if (Const.Region == RegionType.SEASIA) { //当前选中语言 info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("language"); info.val = Encoding.UTF8.GetBytes(TranslateManager.GetInstance().ConvertToServerLang(Const.Language).ToString()); GameDebug.Log("language: " + TranslateManager.GetInstance().ConvertToServerLang(Const.Language).ToString()); infos.Add(info); } // os_ext 韩国版用来标识是one_store还是google_play,还是app_store if (Const.Region == RegionType.KOREA) { info = new PkgAccPhoneInfo(); info.key = Encoding.UTF8.GetBytes("os_ext"); info.val = Encoding.UTF8.GetBytes(Application.identifier); GameDebug.Log("os_ext: " + Application.identifier); infos.Add(info); } }