/// <summary> /// 检测验证码是否正确 /// </summary> /// <param name="vcCookie"></param> /// <param name="vc"></param> /// <returns></returns> public bool CheckVc(CookieContainer vcCookie, string vc) { HttpClient client = new HttpClient(vcCookie); string url = "https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn"; string data = "randCode={0}&rand=sjrand"; data = string.Format(data, vc); var result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/login/init"); var ok = HtmlHelper.GetContent(result, "\"data\":", ",").Replace("\"", "") == "Y"; return ok; }
public void CheckUser() { HttpClient client = new HttpClient(Cookies); if (StaticValues.Proxy != "") { client.Proxy = new WebProxy(StaticValues.Proxy); } string url = "https://kyfw.12306.cn/otn/login/checkUser"; string result = client.Post(url, "_json_att=", "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/leftTicket/init"); }
public static bool Login(string userName,string pwd,string vc,ref string msg,ref CookieContainer cookies) { HttpClient client=new HttpClient(cookies); if (StaticValues.Proxy != "") { client.Proxy = new WebProxy(StaticValues.Proxy); } string url = "https://kyfw.12306.cn/otn/login/loginAysnSuggest"; string data = "loginUserDTO.user_name=" + userName + "&userDTO.password="******"&randCode=" + vc; ; string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/login/init"); result=result.Replace("\"",""); bool flag = result.Contains("loginCheck:Y"); if (!flag) { msg = HtmlHelper.GetContent(result, "messages:", "],").Replace("[","").Replace("]",""); } return flag; }
/// <summary> /// 检测验证码是否正确 /// </summary> /// <param name="vcCookie"></param> /// <param name="vc"></param> /// <returns></returns> public static bool CheckVc(CookieContainer vcCookie, string vc,string token) { HttpClient client = new HttpClient(vcCookie); if (StaticValues.Proxy != "") { client.Proxy = new WebProxy(StaticValues.Proxy); } string url = "https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn"; string data = "randCode=" + vc; if (token != "") { data = data + "&rand=randp&REPEAT_SUBMIT_TOKEN=" + token; } else { data=data+"&rand=sjrand"; } var result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/login/init"); var ok = HtmlHelper.GetContent(result, "\"data\":", ",").Replace("\"", "") == "Y"; return ok; }
public bool ConfirmSingleForQueue(TicketInfo ti,string vc,List<PassengerInfo> list,ref string msg) { try { msg = string.Empty; HttpClient client = new HttpClient(Cookies); if (StaticValues.Proxy != "") { client.Proxy = new WebProxy(StaticValues.Proxy); } string passengerTicketStr = ""; string oldpassengerTicketStr = ""; foreach (PassengerInfo pi in list) { var ap = pi.SeatType + ",0," + pi.TicketType + "," + pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + (pi.Passenger.phone_no == null ? "" : pi.Passenger.phone_no) + "," + "N"; passengerTicketStr += ap + "_"; var ao = pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + pi.Passenger.passenger_type; oldpassengerTicketStr += ao + "_"; } string token = ti.Token; string checkKey = ti.CheckKey; string leftTicket = ti.LeftTicketInfo.ypInfoDetail; passengerTicketStr = HttpUtility.UrlEncode(passengerTicketStr); oldpassengerTicketStr = HttpUtility.UrlEncode(oldpassengerTicketStr); string trainLocation = ti.TrainLocation; string purpose_codes = "00"; string data = "passengerTicketStr={0}&oldPassengerStr={1}&randCode={2}&purpose_codes={3}&key_check_isChange={4}&leftTicketStr={5}&train_location={6}&_json_att=&REPEAT_SUBMIT_TOKEN={7}"; data = string.Format(data, passengerTicketStr, oldpassengerTicketStr, vc, purpose_codes, checkKey, leftTicket, trainLocation, token); string url = "https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue"; string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc"); bool flag = result.Contains("submitStatus:true"); if (!flag) { msg = HtmlHelper.GetContent(result, "errMsg:", ","); } return flag; } catch { return false; } }
public CountInfo GetQueueCount(TicketInfo ti,string seatType) { try { HttpClient client = new HttpClient(Cookies); if (StaticValues.Proxy != "") { client.Proxy = new WebProxy(StaticValues.Proxy); } string trainDate = ti.LeftTicketInfo.train_date + " 00:00:00"; ; trainDate = Convert.ToDateTime(trainDate).ToString("ddd MMM dd yyyy HH:mm:ss 'GMT'zzz ", System.Globalization.CultureInfo.GetCultureInfo("en-US")); trainDate = trainDate.Replace("08:00", "0800") + "(中国标准时间)"; string trainNo = ti.LeftTicketInfo.train_no; string trainCode = ti.LeftTicketInfo.station_train_code; string leftTicket = ti.LeftTicketInfo.ypInfoDetail; string fromStationTelecode = ti.LeftTicketInfo.from_station; string toStationTelecode = ti.LeftTicketInfo.to_station; string purpose_codes = "00"; string token = ti.Token; string data = "train_date={0}&train_no={1}&stationTrainCode={2}&seatType={3}&fromStationTelecode={4}&toStationTelecode={5}&leftTicket={6}&purpose_codes={7}&_json_att=&REPEAT_SUBMIT_TOKEN={8}"; object[] objs = new object[] { HttpUtility.UrlEncode(trainDate), trainNo, trainCode, seatType, fromStationTelecode, toStationTelecode, leftTicket, purpose_codes, token }; data = string.Format(data, objs); string url = "https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount"; string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc"); result = result.Replace("\"", ""); string count = HtmlHelper.GetContent(result, "count:", ","); string ticket = HtmlHelper.GetContent(result, "ticket:", ","); string op_2 = HtmlHelper.GetContent(result, "op_2:", ","); string countT = HtmlHelper.GetContent(result, "countT:", ","); string op_1 = HtmlHelper.GetContent(result, "op_1:", "}"); string ticketCnt = JsFuncitonHelper.GetCnt(ticket, seatType); CountInfo ci = new CountInfo(); ci.count = count; ci.countT = countT; ci.op_1 = op_1; ci.op_2 = op_2; ci.ticket = ticket; ci.ticketCnt = ticketCnt; return ci; } catch { return null; } }
public bool CheckOrderInfo(string token, string vc, List<PassengerInfo> list,ref string msg) { try { HttpClient client = new HttpClient(Cookies); if (StaticValues.Proxy != "") { client.Proxy = new WebProxy(StaticValues.Proxy); } string passengerTicketStr = ""; string oldpassengerTicketStr = ""; foreach (PassengerInfo pi in list) { var ap = pi.SeatType + ",0," + pi.TicketType + "," + pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + (pi.Passenger.phone_no == null ? "" : pi.Passenger.phone_no) + "," + "N"; passengerTicketStr += ap + "_"; var ao = pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + pi.Passenger.passenger_type; oldpassengerTicketStr += ao + "_"; } passengerTicketStr = HttpUtility.UrlEncode(passengerTicketStr); oldpassengerTicketStr = HttpUtility.UrlEncode(oldpassengerTicketStr); string data = "cancel_flag=2&bed_level_order_num=000000000000000000000000000000&passengerTicketStr={0}&oldPassengerStr={1}&tour_flag=dc&randCode={2}&_json_att=&REPEAT_SUBMIT_TOKEN={3}"; string url = "https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo"; data = string.Format(data, passengerTicketStr, oldpassengerTicketStr, vc, token); string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc"); result = result.Replace("\"", ""); bool flag = result.Contains("submitStatus:true"); if (!flag) { msg = HtmlHelper.GetContent(result, "errMsg:", ","); } return flag; } catch { return false; } }