mirror of https://github.com/testerSunshine/12306
74 lines
3.6 KiB
Python
74 lines
3.6 KiB
Python
# 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]) |