//账号密码输入界面-登录按钮监听方法 void ZhanghaoDenglu() { if (!agreementTge.isOn) { FICWaringPanel._instance.Show("请阅读并同意用户协议!"); return; } //定位 GPSManager.instance.StartCrt(); //SendLoginPW来自于谷歌插件 SendLoginPW sendLoginPW = new SendLoginPW(); sendLoginPW.UserAccount = inputUserName.text; sendLoginPW.pwd = inputPasword.text; //省份 sendLoginPW.province = GameInfo.province; //城市 sendLoginPW.city = GameInfo.city; //维度 sendLoginPW.Latitude = GameInfo.Latitude; byte[] body = ProtobufUtility.GetByteFromProtoBuf(sendLoginPW); byte[] data = CreateHead.CreateMessage(CreateHead.CSXYNUM + 1003, body.Length, 0, body); GameInfo.cs.Send(data); HideZhanghaoPanel(); GameInfo.loginType = LoginType.longbao; }
//龙宝登录按钮监听方法 void LongbaoDenglu() { if (!agreementTge.isOn) { FICWaringPanel._instance.Show("请阅读并同意用户协议!"); return; } //定位 GPSManager.instance.StartCrt(); //如果证书不为空 if (!string.IsNullOrEmpty(GameInfo.certificate)) { SendLoginPW sendLoginPW = new SendLoginPW(); sendLoginPW.province = GameInfo.province; sendLoginPW.city = GameInfo.city; sendLoginPW.Latitude = GameInfo.Latitude; sendLoginPW.Certificate = GameInfo.certificate; byte[] body = ProtobufUtility.GetByteFromProtoBuf(sendLoginPW); byte[] data = CreateHead.CreateMessage(CreateHead.CSXYNUM + 1003, body.Length, 0, body); GameInfo.cs.Send(data); DisableLoginButtons(); GameInfo.loginType = LoginType.longbao; } else { HideLoginButtons(); ShowZhanghaoPanel(); } }
public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo) { var loginInfo = SendLoginPW.ParseFrom(requestInfo.Body); dynamic info = null; string infoStr = string.Empty; if (loginInfo.HasCertificate)//如果有传证书 { infoStr = RoomCardUtility.GetloginInfoByCertStr(CompressUtility.DecompressString(loginInfo.Certificate)); if (string.IsNullOrEmpty(infoStr))//3证书无效 { byte[] msg = ReturnLogin.CreateBuilder().SetLoginstat(3).SetUserID(0).SetUserRoomCard(0).Build().ToByteArray(); session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg))); return; } else { try { info = JsonConvert.DeserializeObject <dynamic>(infoStr); if ((DateTime.Now - ((DateTime)info.dateTime)).TotalHours >= 168)//证书过期 { byte[] msg = ReturnLogin.CreateBuilder().SetLoginstat(4).SetUserID(0).SetUserRoomCard(0).Build().ToByteArray(); session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg))); return; } info.Score = RoomCardUtility.GetLongBaoNumber(info.ID.ToString()); } catch (Exception ex) { session.Logger.Error(ex); byte[] msg = ReturnLogin.CreateBuilder().SetLoginstat(3).SetUserID(0).SetUserRoomCard(0).Build().ToByteArray(); session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg))); return; } } } else { infoStr = RoomCardUtility.GetloginInfoByPWD(loginInfo.UserAccount, loginInfo.Pwd); if (string.IsNullOrEmpty(infoStr) || JsonConvert.DeserializeObject <dynamic>(infoStr) == null) //5账号密码错误, { session.Logger.Debug(infoStr + "infoStr" + infoStr); byte[] msg = ReturnLogin.CreateBuilder().SetLoginstat(5).SetUserID(0).SetUserRoomCard(0).Build().ToByteArray(); session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg))); return; } info = JsonConvert.DeserializeObject <dynamic>(infoStr); } SendLogin loginInfobuild = SendLogin.CreateBuilder().SetCity(loginInfo.City).SetHeadimg(string.IsNullOrEmpty(info.HeadImg1.ToString()) ?"1": string.Format("http://www.qytfkj.com{0}", info.HeadImg1)).SetLatitude(loginInfo.Latitude).SetNickname(info.TrueName.ToString()) .SetOpenid(info.ID.ToString()).SetProvince(loginInfo.Province).SetSex(info.Sex.ToString().Equals("1") ? "2" : "1").SetUnionid(info.ID.ToString()).Build(); var loginInfoByte = loginInfobuild.ToByteArray(); var login = new Login(); var json = new { ID = info.ID, Sex = info.Sex, HeadImg1 = info.HeadImg1, TrueName = info.TrueName, Score = info.Score, dateTime = DateTime.Now }; login.CerStr = CompressUtility.CompressString(RoomCardUtility.GetCertStrByloginInfoStr(JsonConvert.SerializeObject(json))); login.UserType = 1; login.UserLongBao = (long)info.Score; login.ExecuteCommand(session, new ProtobufRequestInfo { Body = loginInfoByte }); }