Esempio n. 1
0
        /// <summary> 检测登录二维码扫描状态 </summary>
        /// <param name="uid"></param>
        private WxLoginScanResult executeLoginScanHttpTask(string uid)
        {
            try
            {
                string tip = "1";
                while (true)
                {
                    HttpTask ht = syncCreateHttpTask(WxHtpUtil.GetLoginScanParams(uid, tip));
                    if (ht == null)
                    {
                        return(null);
                    }

                    WxLoginScanResult result = WxRespUtil.ParseLoginScanResp(ht.ExecuteString());
#if Debug
                    Console.WriteLine("wx login scan result =" + (result == null ? "null" : result.Code.ToString()));
#endif
                    if (result == null)
                    {
                    }
                    else if (result.Code == WxResultCode.LOGIN_SCAN_SUCCESS)//201
                    {
                        //已扫描,未登录,这里可以获取头像
                        tip = "0";
                    }
                    else if (result.Code == WxResultCode.LOGIN_SCAN_LOGIN)//200
                    {
                        //点击登录
                        return(result);
                    }
                    else if (result.Code == WxResultCode.LOGIN_SCAN_TIMEOUT)//408
                    {
                        //微信端返的连接超时,继续连接
                    }
                    else if (result.Code == WxResultCode.LOGIN_SCAN_EXPIRED)//400
                    {
                        //二维码过期
                        return(result);
                    }

                    ThreadUtil.Sleep(500);

                    if (!syncCheckLoginingState())
                    {
                        return(null);
                    }
                }
            }
            catch { }

            return(null);
        }
Esempio n. 2
0
        private WxSyncCheckResult executeSyncCheckHttpTask(string host, WxAccount wxAccount, WxSyncKey wxSyncKey)
        {
            try
            {
                HttpTask ht = syncCreateHttpTask(WxHtpUtil.GetSyncCheckParams(host, wxAccount, wxSyncKey));
                if (ht != null)
                {
                    WxSyncCheckResult result = WxRespUtil.ParseWxSyncKeyResult(ht.ExecuteString());
                    return(result);
                }
            }
            catch { }

            return(null);
        }
Esempio n. 3
0
        /// <summary> 获取登录随机uid </summary>
        /// <returns></returns>
        private WxLoginUidResult executeLoginUidHttpTask()
        {
            try
            {
                HttpTask ht = syncCreateHttpTask(WxHtpUtil.GetLoginUidParams());
                if (ht != null)
                {
                    string resp = ht.ExecuteString();
                    return(WxRespUtil.ParseLoginUidResp(resp));
                }
            }
            catch { }

            return(null);
        }
Esempio n. 4
0
        public WxLoginIdsResult executeLoginRedirectUriHttpTask(string redirectUri)
        {
            try
            {
                HttpTask ht = syncCreateHttpTask(WxHtpUtil.GetLoginRedirectUriParams(redirectUri));
                if (ht != null)
                {
                    WxLoginIdsResult result = WxRespUtil.ParseLoginRedirectUriResp(ht.ExecuteString());
                    result.RouteHost  = WxRespUtil.ParseHost(redirectUri);
                    result.DataTicket = ht.GetCookie(string.Format("http://{0}", result.RouteHost), "webwx_data_ticket");
                    return(result);
                }
            }
            catch { }

            return(null);
        }