コード例 #1
0
        public Task <HttpResponseMessage> OtherDeviceLogin(PhoneLogin phoneLogin)
        {
            ResponseBase response = new ResponseBase();
            var          result   = _wechat.GetA8Key(phoneLogin.WxId, "", phoneLogin.Url);

            Util.Log.Logger.GetLog(this.GetType()).Info("################OtherDeviceLogin_FullURL:" + result.fullURL + "################");
            if (result.fullURL.Contains("https://open.weixin.qq.com/"))
            {
                SeleniumHelper seleniumHelper = new SeleniumHelper(Browsers.Chrome);
                try
                {
                    seleniumHelper.GoToUrl(result.fullURL);
                    seleniumHelper.ClickElement(seleniumHelper.FindElementByXPath(@"//*[@id=""js_allow""]"));
                    response.Message = "登录成功";
                }
                catch (Exception e)
                {
                    response.Success = false;
                    response.Code    = "501";
                    response.Message = "登录失败,二维码已过期-" + e.Message;
                }
                seleniumHelper.Cleanup();
            }
            else
            {
                response.Success = false;
                response.Code    = "501";
                response.Message = "登录失败";
            }
            return(response.ToHttpResponseAsync());
        }
コード例 #2
0
ファイル: User.cs プロジェクト: yStack/ThoffyMusic
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public bool Login(LoginType type)
        {
            ILoginStrategy strategy = null;

            switch (type)
            {
            case LoginType.Email:
                strategy = new EmailLogin();
                break;

            case LoginType.Phone:
                strategy = new PhoneLogin();
                break;

            case LoginType.QrCode:
                strategy = new QrCodeLogin();
                break;
            }

            _loginContext = new LoginContext(strategy, this);
            JObject j = _loginContext.Login();

            //解析返回值
            AuthInfoHelper auth = new AuthInfoHelper(j);

            if (auth.Code == 200)
            {
                ID = auth.UserID;
                return(true);
            }

            return(false);
        }
コード例 #3
0
        public Task <HttpResponseMessage> PhoneDeviceLogin(PhoneLogin phoneLogin)
        {
            ResponseBase response = new ResponseBase();
            var          result   = _wechat.GetA8Key(phoneLogin.WxId, "", phoneLogin.Url);

            Util.Log.Logger.GetLog(this.GetType()).Info("################PhoneDeviceLogin_FullURL:" + result.fullURL + "################");
            if (result.fullURL.Contains("https://login.weixin.qq.com"))
            {
                SeleniumHelper seleniumHelper = new SeleniumHelper(Browsers.Chrome);
                try
                {
                    seleniumHelper.GoToUrl(result.fullURL);
                    seleniumHelper.ClickElement(seleniumHelper.FindElementByXPath("/html/body/form/div[3]/p/button"));
                    response.Message = "辅助成功,请在手机再次登录";
                }
                catch (Exception e)
                {
                    response.Success = false;
                    response.Code    = "501";
                    response.Message = "登录失败,二维码已过期-" + e.Message;
                }
                seleniumHelper.Cleanup();
            }
            else
            {
                response.Success = false;
                response.Code    = "501";
                response.Message = "登录失败";
            }
            return(response.ToHttpResponseAsync());
        }