# coding=utf-8 from collections import OrderedDict from inter.GetQueueCount import getQueueCount from inter.GetRepeatSubmitToken import getRepeatSubmitToken class checkOrderInfo: def __init__(self, session, train_no, set_type, passengerTicketStrList, oldPassengerStr, station_dates, ticket_peoples): self.train_no = train_no self.set_type = set_type self.passengerTicketStrList = passengerTicketStrList self.oldPassengerStr = oldPassengerStr self.station_dates = station_dates self.ticket_peoples = ticket_peoples self.RepeatSubmitToken = getRepeatSubmitToken(session) self.getTicketInfoForPassengerForm = self.RepeatSubmitToken.sendGetRepeatSubmitToken() self.ticketInfoForPassengerForm = self.getTicketInfoForPassengerForm.get("ticketInfoForPassengerForm", "") self.token = self.getTicketInfoForPassengerForm.get("token", "") self.session = self.getTicketInfoForPassengerForm.get("session", "") def data_par(self): """ 参数结构 :return: """ data = OrderedDict() data['passengerTicketStr'] = self.passengerTicketStrList.rstrip("_{0}".format(self.set_type)) data['oldPassengerStr'] = self.oldPassengerStr data['REPEAT_SUBMIT_TOKEN'] = self.token data['randCode'] = "" data['cancel_flag'] = 2 data['bed_level_order_num'] = "000000000000000000000000000000" data['tour_flag'] = 'dc' data['_json_att'] = "" return data def sendCheckOrderInfo(self): """ 检查支付订单,需要提交REPEAT_SUBMIT_TOKEN passengerTicketStr : 座位编号,0,票类型,乘客名,证件类型,证件号,手机号码,保存常用联系人(Y或N) oldPassengersStr: 乘客名,证件类型,证件号,乘客类型 :return: """ CheckOrderInfoUrls = self.session.urls["checkOrderInfoUrl"] data = self.data_par() checkOrderInfoRep = self.session.httpClint.send(CheckOrderInfoUrls, data) data = checkOrderInfoRep.get("data", {}) if data and data.get("submitStatus", False): print (u'车票提交通过,正在尝试排队') ifShowPassCodeTime = int(checkOrderInfoRep["data"]["ifShowPassCodeTime"]) / float(1000) if "ifShowPassCode" in checkOrderInfoRep["data"] and checkOrderInfoRep["data"]["ifShowPassCode"] == "Y": is_need_code = True elif "ifShowPassCode" in checkOrderInfoRep["data"] and checkOrderInfoRep['data']['submitStatus'] is True: is_need_code = False else: is_need_code = False QueueCount = getQueueCount(self.session, is_need_code, ifShowPassCodeTime, self.set_type, self.station_dates, self.train_no, self.ticket_peoples, self.ticketInfoForPassengerForm, self.token, self.oldPassengerStr, self.passengerTicketStrList, ) QueueCount.sendGetQueueCount() elif "errMsg" in checkOrderInfoRep['data'] and checkOrderInfoRep['data']["errMsg"]: print checkOrderInfoRep['data']["errMsg"] elif 'messages' in checkOrderInfoRep and checkOrderInfoRep['messages']: print (checkOrderInfoRep['messages'][0])