/// <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); }
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); }
/// <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); }
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); }