Exemple #1
0
    //账号密码输入界面-登录按钮监听方法
    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;
    }
Exemple #2
0
    //龙宝登录按钮监听方法
    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();
        }
    }
Exemple #3
0
        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
            });
        }