using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Security.Cryptography; using System.Text; using UnityEngine; public class LanguageVerify : Singleton { const string Sercret = "c345a165b566d1c421afd8a748373d7f"; bool requireVerify { get { return VersionUtility.Instance.IsMaoErGame(); } } static StringBuilder s_StringBuilder = new StringBuilder(); const string VerifyPlayerNameUrl = "https://api.maoergame.com/game/role/response"; /// /// 校验玩家名 /// /// 需要检验的名字 /// 玩家id /// 原来的角色名,创角传空 /// 玩家等级 /// 玩家VIP等级 /// public void VerifyPlayerName(string verifyName, int playerId, string playerName, int level, int vipLv, Action callback) { if (!requireVerify) { if (callback != null) { callback(true, verifyName); callback = null; } return; } NetLinkWin.Show(); var tables = new Dictionary(); tables["game_code"] = "snxxz"; tables["server_id"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); tables["server_name"] = StringUtility.Contact("s", ServerListCenter.Instance.currentServer.region_flag); tables["role_name"] = verifyName; tables["sender_uid"] = ModelCenter.Instance.GetModel().sdkLoginResult.account; tables["sender_rid"] = playerId.ToString(); tables["sender_name"] = playerName; tables["sender_level"] = level.ToString(); tables["sender_vip_level"] = vipLv.ToString(); var ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0); tables["timestamp"] = ((long)System.Convert.ToInt64(ts.TotalSeconds)).ToString(); tables["key"] = FileExtersion.GetStringMD5Hash(StringUtility.Contact(Sercret, tables["timestamp"])); HttpRequest.Instance.RequestHttpPost(VerifyPlayerNameUrl, tables, HttpRequest.defaultHttpContentType, 3, (bool ok, string result) => { DebugEx.Log(result); if (ok) { var response = LitJson.JsonMapper.ToObject(result); if (response != null) { if (response.result.Equals("success")) { if (callback != null) { callback(true, verifyName); callback = null; return; } } } } NetLinkWin.Hide(); }); } const string VerifyFairyUrl = "https://api.maoergame.com/game/sociaty/response"; public void VerifyFairy(string verifyContent, int op_type, string fairyName, int title, Action callback) { if (!requireVerify) { if (callback != null) { callback(true, verifyContent); callback = null; } return; } var account = ModelCenter.Instance.GetModel().sdkLoginResult.account; var playerId = PlayerDatas.Instance.baseData.PlayerID; var playerName = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName); var tables = new Dictionary(); tables["game_code"] = "snxxz"; tables["server_id"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); tables["server_name"] = StringUtility.Contact("s", ServerListCenter.Instance.currentServer.region_flag); tables["op_type"] = op_type.ToString(); tables["name"] = op_type == 1 ? fairyName : verifyContent; tables["leader_uid"] = title == 3 ? account : string.Empty; tables["leader_rid"] = title == 3 ? playerId.ToString() : string.Empty; tables["leader_name"] = title == 3 ? playerName : string.Empty; tables["vice_leader_uid"] = title == 2 ? account : string.Empty; tables["vice_leader_rid"] = title == 2 ? playerId.ToString() : string.Empty; tables["vice_leader_name"] = title == 2 ? playerName : string.Empty; tables["edit_uid"] = account; tables["edit_rid"] = playerId.ToString(); tables["edit_name"] = playerName; tables["notice"] = op_type == 2 ? string.Empty : verifyContent; var ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0); tables["timestamp"] = ((long)System.Convert.ToInt64(ts.TotalSeconds)).ToString(); tables["key"] = FileExtersion.GetStringMD5Hash(StringUtility.Contact(Sercret, tables["timestamp"])); HttpRequest.Instance.RequestHttpPost(VerifyFairyUrl, tables, HttpRequest.defaultHttpContentType, 3, (bool ok, string result) => { DebugEx.Log(result); if (ok) { var response = LitJson.JsonMapper.ToObject(result); if (response != null) { if (response.result.Equals("success")) { if (callback != null) { callback(true, response.content); callback = null; return; } } } } }); } public static uint toPlayer = 0; public static string toPlayerName = string.Empty; public static int toPlayerLevel = 0; const string VerifyChatUrl = "https://api.maoergame.com/game/chat/response"; public void VerifyChat(string content, ChatInfoType channelType, Action callback) { int channel = 0; if (!requireVerify || !GetChannel(channelType, out channel) || PlayerDatas.Instance.baseData.VIPLv >= 4) { if (callback != null) { callback(true, content); callback = null; } return; } var account = ModelCenter.Instance.GetModel().sdkLoginResult.account; var playerId = PlayerDatas.Instance.baseData.PlayerID; var playerName = PlayerDatas.Instance.baseData.PlayerName; var tables = new Dictionary(); tables["game_code"] = "snxxz"; tables["server_id"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); tables["server_name"] = StringUtility.Contact("s", ServerListCenter.Instance.currentServer.region_flag); tables["chat_type"] = 1.ToString(); tables["chat_channel"] = channel.ToString(); tables["chat_content"] = WWW.EscapeURL(UIHelper.TrimContentToServer(content)); tables["sender_uid"] = account; tables["sender_rid"] = playerId.ToString(); tables["sender_name"] = UIHelper.ServerStringTrim(playerName); tables["sender_level"] = PlayerDatas.Instance.baseData.PlayerID.ToString(); tables["sender_vip_level"] = PlayerDatas.Instance.baseData.VIPLv.ToString(); tables["receiver_uid"] = string.Empty; tables["receiver_rid"] = channel == 3 ? toPlayer.ToString() : string.Empty; tables["receiver_name"] = channel == 3 ? UIHelper.ServerStringTrim(toPlayerName) : string.Empty; tables["receiver_level"] = channel == 3 ? (toPlayerLevel == 0 ? string.Empty : toPlayerLevel.ToString()) : string.Empty; tables["receiver_vip_level"] = string.Empty; var ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0); tables["timestamp"] = ((long)System.Convert.ToInt64(ts.TotalSeconds)).ToString(); tables["key"] = FileExtersion.GetStringMD5Hash(StringUtility.Contact(Sercret, tables["timestamp"])); HttpRequest.Instance.RequestHttpPost(VerifyChatUrl, tables, HttpRequest.defaultHttpContentType, 3, (bool ok, string result) => { DebugEx.Log(result); if (ok) { var response = LitJson.JsonMapper.ToObject(result); if (response != null) { if (response.result.Equals("success")) { if (callback != null) { callback(true, response.content); callback = null; return; } } else if (response.result.Equals("verify_fail")) { switch (response.code) { case -1: MessageWin.Inst.ShowFixedTip(Language.Get("L1007")); break; case -2: SysNotifyMgr.Instance.ShowTip("VerifyErrorCode2"); break; case -3: break; } } } } }); } bool GetChannel(ChatInfoType type, out int channel) { channel = 0; switch (type) { case ChatInfoType.World: channel = 0; break; case ChatInfoType.Team: channel = 4; break; case ChatInfoType.Area: case ChatInfoType.Trumpet: channel = 5; break; case ChatInfoType.Fairy: channel = 2; break; case ChatInfoType.Friend: channel = 3; break; default: return false; } return true; } public class VerifyResponse { public string result; public int code; public string content; } }