public static void LoginPage() { var loginPageUrl = string.Format(loginPageUrlTemple, LoginHelper.Ticket, LoginHelper.UUID, LoginHelper.Scan); if (WX2) { loginPageUrl = loginPageUrl.Replace("//wx.", "//wx2."); } CookieContainer resCookies = null; CookieContainer reqCookies = null; reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("refreshTimes", "2", "/", "wx.qq.com")); LoginPageXml = LoginPageXml.Parse(WebClientUtil.GetResponseOnCookie(loginPageUrl, "get", reqCookies, out resCookies, null)); LoginPageCookie = LoginPageCookie.Parse(resCookies); DataUtil.WriteData(LoginPageCookie, LoginPageXml); }
public static BatchGetContact GetContactList() { var reqCookies = new CookieContainer(); CookieContainer resCookies = null; reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("last_wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); reqCookies.Add(new Cookie("login_frequency", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_auth_ticket", LoginHelper.LoginPageCookie.webwx_auth_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_data_ticket", LoginHelper.LoginPageCookie.webwx_data_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwxuvid", LoginHelper.LoginPageCookie.webwxuvid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxloadtime", CalcTimeUtil.GetUnixDateTime(new TimeSpan(365, 0, 0, 0)), "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxsid", LoginHelper.LoginPageCookie.wxsid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); var webwxgetcontactUrl = string.Format(webwxgetcontactUrlTemple, RandomUtil.GetRandom(10), LoginHelper.LoginPageXml.skey); string json = WebClientUtil.GetResponseOnCookie(webwxgetcontactUrl, "get", reqCookies, out resCookies); InitHelper.BatchGetContact = SerializeUtil.Deserialize <BatchGetContact>(json); return(InitHelper.BatchGetContact); }
private static string CheckeSync() { if (LoginHelper.LoginPageCookie == null || LoginHelper.LoginPageCookie == null) { return(string.Empty); } var reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("refreshTimes", "2", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwxuvid", LoginHelper.LoginPageCookie.webwxuvid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_auth_ticket", LoginHelper.LoginPageCookie.webwx_auth_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_data_ticket", LoginHelper.LoginPageCookie.webwx_data_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("login_frequency", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("last_wxuin", "LoginHelper.LoginPageCookie.wxuin", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxloadtime", "1495855277_expired", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxsid", LoginHelper.LoginPageCookie.wxsid, "/", "wx.qq.com")); CookieContainer resCookies = null; var synckey = string.Empty; if (InitHelper.WebWeixinInit != null && (preSyncKey == null || preSyncKey.Count == 0) && InitHelper.WebWeixinInit.SyncKey != null && InitHelper.WebWeixinInit.SyncKey.Count > 0) { foreach (var item in InitHelper.WebWeixinInit.SyncKey.List) { synckey += item.Key + "_" + item.Val + "|"; } synckey = synckey.Substring(0, synckey.Length - 1); } else if (preSyncKey != null && preSyncKey.Count > 0 && preSyncKey.Count > 0) { foreach (var item in preSyncKey.List) { synckey += item.Key + "_" + item.Val + "|"; } synckey = synckey.Substring(0, synckey.Length - 1); } var checkeUrl = string.Format(CheckeUrlTemple, CalcTimeUtil.GetUnixDateTime() + "000", LoginHelper.LoginPageXml.skey, LoginHelper.LoginPageCookie.wxsid, LoginHelper.LoginPageCookie.wxuin, synckey); if (LoginHelper.WX2) { checkeUrl = checkeUrl.Replace("//webpush.", "//webpush2."); } return(WebClientUtil.GetResponseOnCookie(checkeUrl, "get", reqCookies, out resCookies)); }
public static void StatReport() { CookieContainer resCookies = null; CookieContainer reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); WebClientUtil.GetResponseOnCookie(statReportUrl, "post", reqCookies, out resCookies, null, "application/json;charset=UTF-8"); }
public static string GetUUID() { CookieContainer resCookies = null; var uuid = WebClientUtil.GetResponseOnCookie(uuidUrl, "get", null, out resCookies); if (!string.IsNullOrEmpty(uuid)) { uuid = uuid.Substring(uuid.IndexOf("\"") + 1); uuid = uuid.Substring(0, uuid.Length - 2); return(uuid); } return(null); }
public static void Login(string uuid, Action failed, Action successed) { var loginUrl = string.Format(loginUrlTemple, uuid); CookieContainer resCookies = null; CookieContainer reqCookies = null; var result = WebClientUtil.GetResponseOnCookie(loginUrl, "get", reqCookies, out resCookies, null); if (result == "window.code=201;") { do { Thread.Sleep(500); result = WebClientUtil.GetResponseOnCookie(loginUrl, "get", reqCookies, out resCookies, null); }while (result == "window.code=201;"); } if (result.IndexOf("window.code=200;") > -1) { result = result.Substring(result.IndexOf("window.redirect_uri=") + 21); result = result.Substring(0, result.Length - 2); LoginHelper.UUID = uuid; LoginHelper.Scan = result.Substring(result.LastIndexOf("=") + 1); LoginHelper.Ticket = result.Substring(result.IndexOf("ticket=") + 7); LoginHelper.Ticket = LoginHelper.Ticket.Substring(0, LoginHelper.Ticket.IndexOf("&")); if (result.IndexOf("//wx2.") > -1) { WX2 = true; } WebClientUtil.GetResponseOnCookie(result, "get", reqCookies, out resCookies, null); LoginHelper.PingdAsync(); LoginHelper.StatReport(); LoginHelper.LoginPage(); successed?.Invoke(); return; } failed?.Invoke(); return; }
public static bool InitWidthLogin() { try { var reqCookies = new CookieContainer(); CookieContainer resCookies = null; reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("last_wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); reqCookies.Add(new Cookie("login_frequency", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_auth_ticket", LoginHelper.LoginPageCookie.webwx_auth_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_data_ticket", LoginHelper.LoginPageCookie.webwx_data_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwxuvid", LoginHelper.LoginPageCookie.webwxuvid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxloadtime", CalcTimeUtil.GetUnixDateTime(new TimeSpan(365, 0, 0, 0)), "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxsid", LoginHelper.LoginPageCookie.wxsid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); var weixinInitUrl = string.Format(weixinInitUrlTemple, LoginHelper.LoginPageXml.pass_ticket, new object().GetHashCode()); var data = new Dictionary <string, string>(); var postData = "{\"BaseRequest\":{\"Uin\":\"" + LoginHelper.LoginPageCookie.wxuin + "\",\"Sid\":\"" + LoginHelper.LoginPageCookie.wxsid + "\",\"Skey\":\"" + LoginHelper.LoginPageXml.skey + "\",\"DeviceID\":\"e478901587692997\"}}"; data.Add(WebClientUtil.JsonDataPrex, postData); string json = WebClientUtil.GetResponseOnCookie(weixinInitUrl, "post", reqCookies, out resCookies, data, "application/json;charset=UTF-8"); InitHelper.WebWeixinInit = SerializeUtil.Deserialize <WebWeixinInit>(json); if (InitHelper.WebWeixinInit == null || WebWeixinInit.BaseResponse.Ret != 0) { return(false); } return(true); } catch { } return(false); }
public static void PingdAsync() { Task.Factory.StartNew(() => { try { string pingdUrl = string.Format(pingdUrlTemple, LoginHelper.pgv_pvi, LoginHelper.pgv_si); var reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); CookieContainer resCookies = null; WebClientUtil.GetResponseOnCookie(pingdUrl, "post", reqCookies, out resCookies, null, "text/html"); } catch (Exception ex) { } }); }
public static void SendMsg(string fromUserName, string toUserName, string content) { var msg = new SendMessage(LoginHelper.LoginPageCookie.wxuin, LoginHelper.LoginPageCookie.wxsid, LoginHelper.LoginPageXml.skey, 1, fromUserName, toUserName, content, "e526874475065566", MessageHelper.SendMessageResult.LocalID, MessageHelper.SendMessageResult.LocalID); var json = SerializeUtil.Serialize(msg); var reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("refreshTimes", "2", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwxuvid", LoginHelper.LoginPageCookie.webwxuvid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_auth_ticket", LoginHelper.LoginPageCookie.webwx_auth_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("login_frequency", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("last_wxuin", "LoginHelper.LoginPageCookie.wxuin", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxloadtime", "1495855277_expired", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxsid", LoginHelper.LoginPageCookie.wxsid, "/", "wx.qq.com")); CookieContainer resCookies = null; var SendMsg = string.Format(SendMsgTemple, LoginHelper.LoginPageXml.pass_ticket); if (LoginHelper.WX2) { SendMsg = SendMsg.Replace("//wx.", "//wx2."); } var dic = new Dictionary <string, string>(); dic.Add(WebClientUtil.JsonDataPrex, json); MessageHelper.SendMessageResult = SerializeUtil.Deserialize <SendMessageResult>(WebClientUtil.GetResponseOnCookie(SendMsg, "post", reqCookies, out resCookies, dic, "application/json;charset=UTF-8")); }
private static WXSync SyncMessage() { if (InitHelper.WebWeixinInit != null) { var synckey = string.Empty; int count = 0; if (preSyncKey == null || preSyncKey.Count == 0) { foreach (var item in InitHelper.WebWeixinInit.SyncKey.List) { synckey += "{\"Key\":" + item.Key + ",\"Val\":" + item.Val + "},"; } if (!string.IsNullOrEmpty(synckey)) { synckey = synckey.Substring(0, synckey.Length - 1); } count = InitHelper.WebWeixinInit.SyncKey.Count; } else if (preSyncKey.List != null && preSyncKey.List.Count > 0) { foreach (var item in preSyncKey.List) { synckey += "{\"Key\":" + item.Key + ",\"Val\":" + item.Val + "},"; } if (!string.IsNullOrEmpty(synckey)) { synckey = synckey.Substring(0, synckey.Length - 1); } count = preSyncKey.Count; } var json = "{\"BaseRequest\":{\"Uin\":" + LoginHelper.LoginPageCookie.wxuin + ",\"Sid\":\"" + LoginHelper.LoginPageCookie.wxsid + "\",\"Skey\":\"" + LoginHelper.LoginPageXml.skey + "\",\"DeviceID\":\"e370515259583130\"},\"SyncKey\":{\"Count\":" + count + ",\"List\":[" + synckey + "]},\"rr\":-" + CalcTimeUtil.GetUnixDateTime() + "}"; var reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("refreshTimes", "2", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwxuvid", LoginHelper.LoginPageCookie.webwxuvid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_auth_ticket", LoginHelper.LoginPageCookie.webwx_auth_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_data_ticket", LoginHelper.LoginPageCookie.webwx_data_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("login_frequency", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("last_wxuin", "LoginHelper.LoginPageCookie.wxuin", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxloadtime", "1495855277_expired", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxsid", LoginHelper.LoginPageCookie.wxsid, "/", "wx.qq.com")); CookieContainer resCookies = null; var SyncUrl = string.Format(SyncUrlTemple, LoginHelper.LoginPageCookie.wxsid, LoginHelper.LoginPageXml.skey, LoginHelper.LoginPageXml.pass_ticket); if (LoginHelper.WX2) { SyncUrl = SyncUrl.Replace("//wx.", "//wx2."); } var dic = new Dictionary <string, string>(); dic.Add(WebClientUtil.JsonDataPrex, json); return(SerializeUtil.Deserialize <WXSync>(WebClientUtil.GetResponseOnCookie(SyncUrl, "post", reqCookies, out resCookies, dic, "application/json;charset=UTF-8"))); } return(null); }
private static void SendImage(string fromUserName, string toUserName, string mediaId) { var reqCookies = new CookieContainer(); reqCookies.Add(new Cookie("pgv_pvi", LoginHelper.pgv_pvi, "/", "wx.qq.com")); reqCookies.Add(new Cookie("pgv_si", LoginHelper.pgv_si, "/", "wx.qq.com")); reqCookies.Add(new Cookie("refreshTimes", "2", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_NOTIFY_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("MM_WX_SOUND_STATE", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("mm_lang", "zh_CN", "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwxuvid", LoginHelper.LoginPageCookie.webwxuvid, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_auth_ticket", LoginHelper.LoginPageCookie.webwx_auth_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("webwx_data_ticket", LoginHelper.LoginPageCookie.webwx_data_ticket, "/", "wx.qq.com")); reqCookies.Add(new Cookie("login_frequency", "1", "/", "wx.qq.com")); reqCookies.Add(new Cookie("last_wxuin", "LoginHelper.LoginPageCookie.wxuin", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxloadtime", "1495855277_expired", "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxuin", LoginHelper.LoginPageCookie.wxuin, "/", "wx.qq.com")); reqCookies.Add(new Cookie("wxsid", LoginHelper.LoginPageCookie.wxsid, "/", "wx.qq.com")); CookieContainer resCookies = null; var SendImpageUrl = string.Format(SendImpageUrlTemple, LoginHelper.LoginPageXml.pass_ticket); if (LoginHelper.WX2) { SendImpageUrl = SendImpageUrl.Replace("//wx.", "//wx2."); } var json = "{\"BaseRequest\":{\"Uin\":" + LoginHelper.LoginPageCookie.wxuin + ",\"Sid\":\"" + LoginHelper.LoginPageCookie.wxsid + "\",\"Skey\":\"" + LoginHelper.LoginPageXml.skey + "\",\"DeviceID\":\"e856174200109311\"},\"Msg\":{\"Type\":3,\"MediaId\":\"" + mediaId + "\",\"Content\":\"\",\"FromUserName\":\"" + fromUserName + "\",\"ToUserName\":\"" + toUserName + "\",\"LocalID\":\"14963106567540883\",\"ClientMsgId\":\"14963106567540883\"},\"Scene\":0}"; var dic = new Dictionary <string, string>(); dic.Add(WebClientUtil.JsonDataPrex, json); MessageHelper.SendMessageResult = SerializeUtil.Deserialize <SendMessageResult>(WebClientUtil.GetResponseOnCookie(SendImpageUrl, "post", reqCookies, out resCookies, dic, "application/json;charset=UTF-8")); }