public void orderTicketToQueue(String ticketNo, String seatNum,
			String token, String[] params, String date, String rangCode) {
		HttpResponse response = null;
		HttpPost httpPost = null;
		try {
			URIBuilder builder = new URIBuilder();
			List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
			parameters.add(new BasicNameValuePair("method",
					"confirmSingleForQueue"));
			parameters.add(new BasicNameValuePair(
					"org.apache.struts.taglib.html.TOKEN", token));
			parameters.add(new BasicNameValuePair("leftTicketStr", ticketNo));
			parameters.add(new BasicNameValuePair("textfield", "中文或拼音首字母"));
			// 一个人只有一个checkbox0
			parameters.add(new BasicNameValuePair("orderRequest.train_date",
					date));
			parameters.add(new BasicNameValuePair("orderRequest.train_no",
					params[3]));
			parameters.add(new BasicNameValuePair(
					"orderRequest.station_train_code", params[0]));
			parameters.add(new BasicNameValuePair(
					"orderRequest.from_station_telecode", params[4]));
			parameters.add(new BasicNameValuePair(
					"orderRequest.to_station_telecode", params[5]));
			parameters.add(new BasicNameValuePair(
					"orderRequest.seat_type_code", ""));
			parameters.add(new BasicNameValuePair(
					"orderRequest.ticket_type_order_num", ""));

			parameters.add(new BasicNameValuePair(
					"orderRequest.bed_level_order_num",
					"000000000000000000000000000000"));
			parameters.add(new BasicNameValuePair("orderRequest.start_time",
					params[2]));
			parameters.add(new BasicNameValuePair("orderRequest.end_time",
					params[6]));
			parameters.add(new BasicNameValuePair(
					"orderRequest.from_station_name", params[7]));
			parameters.add(new BasicNameValuePair(
					"orderRequest.to_station_name", params[8]));
			parameters.add(new BasicNameValuePair("orderRequest.cancel_flag",
					"1"));
			parameters.add(new BasicNameValuePair("orderRequest.id_mode", "Y"));

			// 订票人信息 第一个人
			String[] orders = StringUtils.split(configInfo.getOrderPerson(),
					",");
			int n = 1;
			for (int i = 0; i < orders.length; i++) {
				userInfo = userInfoMap.get(orders[i]);
				if (userInfo == null) {
					logger.warn("this name is not have!name:" + orders[i]);
					continue;
				}
				parameters.add(new BasicNameValuePair("checkbox"
						+ userInfo.getIndex(), "" + userInfo.getIndex()));
				parameters
						.add(new BasicNameValuePair("passengerTickets", seatNum
								+ ",0,1," + userInfo.getPassenger_name()
								+ ",1," + userInfo.getPassenger_id_no() + ",,Y"));
				parameters.add(new BasicNameValuePair("oldPassengers", userInfo
						.getPassenger_name()
						+ ",1,"
						+ userInfo.getPassenger_id_no() + ""));
				parameters.add(new BasicNameValuePair("passenger_" + n
						+ "_seat", seatNum));
				parameters.add(new BasicNameValuePair("passenger_" + n
						+ "_ticket", "1"));
				parameters.add(new BasicNameValuePair("passenger_" + n
						+ "_name", userInfo.getPassenger_name()));
				parameters.add(new BasicNameValuePair("passenger_" + n
						+ "_cardtype", "1"));
				parameters.add(new BasicNameValuePair("passenger_" + n
						+ "_cardno", userInfo.getPassenger_id_no()));
				parameters.add(new BasicNameValuePair("passenger_" + n
						+ "_mobileno", ""));
				parameters.add(new BasicNameValuePair("checkbox9", "Y"));
			}
			parameters.add(new BasicNameValuePair("orderRequest.reserve_flag",
					"A"));
			parameters.add(new BasicNameValuePair("randCode", rangCode));
			builder.setScheme("https").setHost("dynamic.12306.cn")
					.setPath("/otsweb/order/confirmPassengerAction.do");
			UrlEncodedFormEntity uef = new UrlEncodedFormEntity(parameters,
					"UTF-8");
			URI uri = builder.build();
			httpPost = new HttpPost(uri);
			httpPost.setEntity(uef);
			httpPost.addHeader("Accept",
					"application/json, text/javascript, */*");
			httpPost.addHeader("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3");
			httpPost.addHeader("Connection", "keep-alive");
			httpPost.addHeader("Content-Type",
					"application/x-www-form-urlencoded");
			httpPost.addHeader("Origin", "https://dynamic.12306.cn");
			httpPost.addHeader("Accept-Language", "zh-CN,zh;q=0.8");
			httpPost.addHeader("Host", "dynamic.12306.cn");
			httpPost.addHeader("Referer",
					"https://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do?method=init");
			httpPost.addHeader("X-Requested-With", "XMLHttpRequest");
			httpPost.addHeader(
					"User-Agent",
					"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17");
			response = httpClient.execute(httpPost);
			if (response.getStatusLine().getStatusCode() == 200) {
				HttpEntity entity = response.getEntity();
				JSONObject jsonObject = JSONObject.parseObject(EntityUtils
						.toString(entity));
				HttpClientUtils.closeQuietly(response);
				logger.info(jsonObject.toJSONString());
				String errorMessage = jsonObject.getString("errMsg");
				if ("Y".equals(errorMessage)
						|| StringUtils.isEmpty(errorMessage)) {
					logger.info("订票成功了，赶紧付款吧!");
				} else if (StringUtils.contains(errorMessage, "验证码")) {
					checkOrderInfo(ticketNo, seatNum, token, params, date);
				} else if (StringUtils.contains(errorMessage, "排队人数现已超过余票数")) {
					searchTicket(date);
				} else if (StringUtils.contains(errorMessage, "非法的订票请求")) {
					searchTicket(date);
				} else {
					logger.info(errorMessage);
					searchTicket(date);
				}
			}
		} catch (Exception e) {
			logger.error("orderTicketToQueue error!", e);
			httpPost.abort();
		} finally {
			HttpClientUtils.closeQuietly(response);
		}
	}