/// <summary> /// 获取联系人列表 /// </summary> private void GetAllPassenger() { //System.Threading.Thread.Sleep(5000); /********************************更新***************************************/ #region 获取联系人 modifyAction.GetPassenger((str) => { var returnString = translation.TranslationHtmlEx(str); if (returnString["data"]["normal_passengers"] == null) { MessageBox.Show("获取联系人失败!\r\n" + returnString["data"]["exMsg"].ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //opcmd.HideOpaqueLayer(); //隐藏遮挡层 return; } var htmlTrans = new HTML_Translation(); htmlTrans.TranslationPassengerJson(str, (passengerList) => { DeterMineCall(() => { if (passengerList != null) { dgvPassenger.DataSource = passengerList; //opcmd.HideOpaqueLayer(); //隐藏遮挡层 } }); }); }, _cookieContainer); #endregion }
private void BeginGetUncompeleteOrder() { orderSelectAction.QueryMyOrderNoComplete((str) => { try { System.Threading.Thread.Sleep(3333); var returnString = translation.TranslationHtmlEx(str); if (str.IndexOf("data") > -1) { _orderData = GetOrderItems(returnString); DeterMineCall(() => { _BindingData = new BindingList <MyOrderData>(_orderData); dgvUnfinisedOrder.DataSource = _BindingData; lblInfo.Text = "加载完成"; }); } else { DeterMineCall(() => { lblInfo.Text = "加载完成,您没有未完成的订单"; }); } } finally { DeterMineCall(() => { oc.HideOpaqueLayer(); }); } }, _cookieContainer); }
protected void InitTokenDatasDTO(CookieContainer cookieContainer, string postData) { TokenDatas.Clear(); var submitAction = new SubmitOrderAction(); var htmlTran = new HTML_Translation(); submitAction.PostData = postData; submitAction.EnterSubmitPage((str) => { var returnString = htmlTran.TranslationHtmlEx(str); if (returnString["messages"].Any()) { if (str.Contains("未完成订单")) { TokenDatas["errMsg"] = "你有未完成的订单等待处理"; return; } else { TokenDatas["errMsg"] = "获取Token失败"; return; } } string tokenHtml = submitAction.GetTokenFromSubmitPage(cookieContainer); TokenDatas["Token"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<=var globalRepeatSubmitToken = ')[0-9abcdefABCDEF]{32}").ToString(); TokenDatas["leftTicket"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='leftTicketStr':')[0-9A-Za-z]{30,50}") .ToString(); TokenDatas["keyCheck"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='key_check_isChange':')[0-9A-Za-z]*") .ToString(); TokenDatas["trainLocation"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='train_location':')[^']*").ToString(); TokenDatas["purposeCodes"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='purpose_codes':')[^']*").ToString(); TokenDatas["ticketInfoForPassengerForm"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<=ticketInfoForPassengerForm=)[^;]*") .ToString() .Replace("'", "\""); var javaObj = htmlTran.TranslationHtmlEx(TokenDatas["ticketInfoForPassengerForm"].ToString()); TokenDatas["queryLeftNewDetailDTO"] = javaObj["queryLeftNewDetailDTO"] as JObject; if (TokenDatas["Token"] != null && TokenDatas["Token"].ToString() != "" && TokenDatas["leftTicket"] != null && TokenDatas["leftTicket"].ToString() != "") { _dataReady = true; } else { _dataReady = false; } }, cookieContainer); }
protected bool ChencSubmitDatas(CookieContainer cookieContainer, String postData) { var submitAction = new SubmitOrderAction(); var translation = new HTML_Translation(); submitAction.PostData = postData; var str = submitAction.CheckOrderInfoEx(cookieContainer); var returnString = translation.TranslationHtmlEx(str); if (returnString["data"]["errMsg"] != null && returnString["data"]["errMsg"].ToString() != "") { return(_checkState = false); } if (str.Contains("取消次数过多")) { return(_checkState = false); } if (returnString["data"]["get608Msg"] != null) { return(_checkState = false); } if (returnString["messages"].Any()) { return(_checkState = false); } return(_checkState = true); }
protected void InitPassengerDTO(CookieContainer cookieContainer, String token) { var passengerAction = new GetPassengerAction(); passengerAction.PostData = string.Format("_json_att=&REPEAT_SUBMIT_TOKEN={0}", token); passengerAction.GetPassengersAllJson((strPassenger) => { var htmlTrans = new HTML_Translation(); var returnStrings = htmlTrans.TranslationHtmlEx(strPassenger); if (returnStrings["data"]["normal_passengers"].Count() > 0) { _dataStatus = true; } else { _dataStatus = false; } }, cookieContainer); }
public void GetPassengersFromServer() { var modifyAction = new ModifyPassengerAction(); var translation = new HTML_Translation(); modifyAction.GetPassenger((strPassengers) => { var returnString = translation.TranslationHtmlEx(strPassengers); if (returnString["data"]["normal_passengers"] == null) { return; } translation.TranslationPassengerJson(strPassengers, (passengerSource) => { _passengers = passengerSource; }); }, _cookieContainer); }
private void btnLogin_Click(object sender, EventArgs e) { lblInfomation.Text = ""; if (cboName.Text.Length < 4) { return; } if (txtPwd.Text.Length < 4) { return; } if (txtRandCode.TextLength < 4) { return; } btnLogin.Enabled = false; btnLogin.Text = "正在登录"; Application.DoEvents(); string name = cboName.Text; string pwd = txtPwd.Text; var htmlTran = new HTML_Translation(); //采用同步方式登录 _la.PostData = string.Format(@"loginUserDTO.user_name={0}&userDTO.password={1}&randCode={2}", name, pwd, txtRandCode.Text); var strHash = _la.BeginLogin(); string strHtml = ""; var cookie = new CookieContainer(); if (strHash == null) { MessageBox.Show("难道12306又挂了?", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); return; } foreach (var v in strHash.Keys) { cookie = (CookieContainer)v; strHtml = strHash[v].ToString(); break; } if (strHtml == "") { lblInfomation.Text = "登录失败!"; btnLogin.Enabled = true; btnLogin.Text = "登录"; txtRandCode.Focus(); GetRandCodeImg(); return; } try { var returnString = htmlTran.TranslationHtmlEx(strHtml); if (returnString["messages"].Any()) { GetRandCodeImg(); DeterMineCall(() => { lblInfomation.Text = returnString["messages"][0].ToString(); this.BeginInvoke(new Action(FormShake)); txtRandCode.Text = ""; btnLogin.Enabled = true; btnLogin.Text = "登录"; txtRandCode.Focus(); Application.DoEvents(); }); return; } //var loginCheck = returnString["data"] as JavaScriptObject; if (returnString["data"] != null && returnString["data"]["loginCheck"].ToString() == "Y") { if (chkUserInfo.Checked) { var dc = new DesCryption(); ConfigInfo.conf.username = name; ConfigInfo.conf.password = dc.EncryptString(pwd, name); ConfigInfo.savetofile(ConfigInfo.conf.username); string path = AppDomain.CurrentDomain.BaseDirectory + "data\\" + name; if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } LocalCookie.WriteCookiesToDisk(path + "\\usrCookie.cfg", LoginAction.cookieContainer); } btnLogin.Enabled = true; btnLogin.Text = "登录"; this.Hide(); // MessageBox.Show(@"温馨提示: // //1. 自2013年1月4日起,火车票互联网、电话订票预售期延长至20天(含当日),代售点和车站部分售票窗口预售期延长至18天(含当日)。 // //2. 自2013年1月1日起,通过电话预订车票的旅客可凭订票时乘车人有效身份证件,到全国任一车站窗口或代售点换取已订车票。当日12:00前已订车票于第二日12:00前取有效;当日12:00后已订车票于第二日24:00前取有效。 // // //请广大旅客注意电话订票取票时间和范围、互联网和电话订票起售时间、火车票预售期的变化,合理安排好购票计划。", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Information); var selectForm = new formSelectTicket(cookie) { ThisCookie = cookie, /*formSelectTicket.cookieContainer = cookie;*/ UserName = cboName.Text }; selectForm.Show(); } else { GetRandCodeImg(); lblInfomation.Text = "登录失败"; txtRandCode.Text = ""; btnLogin.Enabled = true; btnLogin.Text = "登录"; txtRandCode.Focus(); return; } } catch (Exception) { MessageBox.Show("23:00至07:00为系统维护时间!", "温馨提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } finally { } }
//获取Token private void GetToken() { DetermineCall(() => { lblState1.Text = "正在获取Token(由于官方服务里返回结果时快时慢,等待时间可能很长很长很长)..."; Application.DoEvents(); }); submitAction.PostData = _postData; submitAction.EnterSubmitPage((str) => { DetermineCall(() => { var returnString = translation.TranslationHtmlEx(str); if (returnString["messages"].Any()) { //if (str.Contains("未完成订单")) //{ MessageBox.Show(returnString["messages"][0].ToString(), "提醒", MessageBoxButtons.OK, MessageBoxIcon.Information); lblState1.Text = returnString["messages"][0].ToString(); Application.DoEvents(); return; //} } //else //{ // MessageBox.Show("获取Token失败!"); // return; //} submitAction.GetTokenFromSubmitPageSync((tokenHtml) => { if (!string.IsNullOrEmpty(tokenHtml)) { DetermineCall(() => { _tokenAndLeftTicket["Token"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<=var globalRepeatSubmitToken = ')[0-9abcdefABCDEF]{32}").ToString(); _tokenAndLeftTicket["leftTicket"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='leftTicketStr':')[0-9A-Za-z]{30,50}").ToString(); _tokenAndLeftTicket["keyCheck"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='key_check_isChange':')[0-9A-Za-z]*").ToString(); _tokenAndLeftTicket["trainLocation"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='train_location':')[^']*").ToString(); _tokenAndLeftTicket["purposeCodes"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<='purpose_codes':')[^']*").ToString(); _tokenAndLeftTicket["ticketInfoForPassengerForm"] = System.Text.RegularExpressions.Regex.Match(tokenHtml, "(?<=ticketInfoForPassengerForm=)[^;]*").ToString().Replace("'", "\""); if (_tokenAndLeftTicket["Token"] == null || _tokenAndLeftTicket["Token"].ToString() == "" || _tokenAndLeftTicket["ticketInfoForPassengerForm"] == null || _tokenAndLeftTicket["ticketInfoForPassengerForm"].ToString() == "") { MessageBox.Show("获取Token失败!"); lblState1.Text = "获取Token失败"; Application.DoEvents(); return; } }); var javaObj = translation.TranslationHtmlEx(_tokenAndLeftTicket["ticketInfoForPassengerForm"].ToString()); _tokenAndLeftTicket["queryLeftNewDetailDTO"] = javaObj["queryLeftNewDetailDTO"] as JObject; GetRandCodeImg(); DetermineCall(() => { fpPrice.Controls.Clear(); lblState1.Text = "正在加载余票信息..."; Application.DoEvents(); GetLeftTicketCount(); //加载余票信息 if (flplPassengers.Controls.Count <= 1) { LoadPassengers(); //加载联系人 } lblState1.Text = ""; Application.DoEvents(); BeginSafeCount(); }); } else { DetermineCall(() => { MessageBox.Show("获取该车次信息出现异常,请重新提交订单"); return; }); } }, _cookieContainer); }); //获取联系人 //DetermineCall(() => { lblPassenger.Text = "乘客:正在加载联系人,请稍等..."; Application.DoEvents(); }); //var passengerAction = new GetPassengerAction(); //passengerAction.PostData = string.Format("_json_att=&REPEAT_SUBMIT_TOKEN={0}", _tokenAndLeftTicket["Token"].ToString()); //passengerAction.GetPassengersAllJson((strPassenger) => //{ // var htmlTrans = new HTML_Translation(); // var returnStrings = htmlTrans.TranslationHtmlEx(strPassenger); // if (returnStrings["data"]["normal_passengers"].Count() > 0) // htmlTrans.TranslationPassengerJson(strPassenger, (passengerList) => // { // //new LogInfo().WriteStringToTxt(_user, "JsonPassengers", strPassenger); // //_passengersNew = passengerList; // //加载验证码 // //LoadPassengers(); // }); // else // { // DetermineCall(() => { lblPassenger.Text = "乘客:联系人加载失败!"; Application.DoEvents(); }); // } //}, _cookieContainer); }, _cookieContainer); }