Пример #1
0
 def queryMyOrderNoComplete(self):
     """
     获取订单列表信息
     :return:
     """
     self.initNoComplete()
     queryMyOrderNoCompleteUrl = self.confUrl["queryMyOrderNoCompleteUrl"]
     data = {"_json_att": ""}
     try:
         queryMyOrderNoCompleteResult = self.httpClint.send(queryMyOrderNoCompleteUrl, data)
     except ValueError:
         queryMyOrderNoCompleteResult = {}
     if queryMyOrderNoCompleteResult:
         if "data" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult["data"] and "orderDBList" in queryMyOrderNoCompleteResult["data"] and queryMyOrderNoCompleteResult["data"]["orderDBList"]:
             orderId = queryMyOrderNoCompleteResult["data"]["orderDBList"][0]["sequence_no"]
             return orderId
         elif "data" in queryMyOrderNoCompleteResult and "orderCacheDTO" in queryMyOrderNoCompleteResult["data"] and queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]:
             if "message" in queryMyOrderNoCompleteResult["data"]["orderCacheDTO"] and queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]:
                 print(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]["message"])
                 raise ticketNumOutException(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]["message"])
         else:
             if "message" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult["message"]:
                 print queryMyOrderNoCompleteResult["message"]
                 return False
             else:
                 return False
     else:
         print(u"接口 {} 无响应".format(queryMyOrderNoCompleteUrl))
Пример #2
0
 def queryMyOrderNoComplete(self):
     """
     获取订单列表信息
     :return:
     """
     self.initNoComplete()
     queryMyOrderNoCompleteUrl = self.session.urls["queryMyOrderNoCompleteUrl"]
     data = {"_json_att": ""}
     try:
         queryMyOrderNoCompleteResult = self.session.httpClint.send(queryMyOrderNoCompleteUrl, data)
     except ValueError:
         queryMyOrderNoCompleteResult = {}
     if queryMyOrderNoCompleteResult:
         if queryMyOrderNoCompleteResult.get("data", False) and queryMyOrderNoCompleteResult["data"].get("orderDBList", False):
             return queryMyOrderNoCompleteResult["data"]
         elif queryMyOrderNoCompleteResult.get("data", False) and queryMyOrderNoCompleteResult["data"].get("orderCacheDTO", False):
             if queryMyOrderNoCompleteResult["data"]["orderCacheDTO"].get("message", False):
                 print(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]["message"])
                 raise ticketNumOutException(
                     queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]["message"]["message"])
         else:
             if queryMyOrderNoCompleteResult.get("message", False):
                 print(queryMyOrderNoCompleteResult.get("message", False))
                 return False
             else:
                 return False
     else:
         return False
Пример #3
0
    def queryOrderWaitTime(self):
        """
        排队获取订单等待信息,每隔3秒请求一次,最高请求次数为20次!
        :return: 
        """
        # queryOrderWaitTimeUrl = "https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime"
        # data = {
        #     "random": "{0}{1}".format(int(time.time()), random.randint(1, 9)),
        #     "tourFlag": "dc",
        #     "REPEAT_SUBMIT_TOKEN": self.get_token(),
        # }
        num = 1
        while True:
            _random = int(round(time.time() * 1000))
            num += 1
            if num > 30:
                print("超出排队时间,自动放弃,正在重新刷票")
                break
            try:
                # queryOrderWaitTimeUrl = "https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random={0}&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN={1}".format(_random, self.get_token())
                data = {"random": _random, "tourFlag": "dc"}
                queryOrderWaitTimeUrl = "https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime"
                queryOrderWaitTimeResult = self.s.post(queryOrderWaitTimeUrl, data=data, verify=False).json()
            except ValueError:
                queryOrderWaitTimeResult = {}
            if queryOrderWaitTimeResult:
                if "status" in queryOrderWaitTimeResult and queryOrderWaitTimeResult["status"]:
                    if "orderId" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["orderId"] is not None:
                            email("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(queryOrderWaitTimeResult["data"]["orderId"]),self.ticket_config).sendEmail()
                            raise ticketIsExitsException("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(queryOrderWaitTimeResult["data"]["orderId"]))
                    elif "msg" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["msg"]:
                        print(queryOrderWaitTimeResult["data"]["msg"])
                        break
                    elif "waitTime"in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["waitTime"]:
                        print("排队等待时间预计还剩 {0} ms".format(0-queryOrderWaitTimeResult["data"]["waitTime"]))
                    else:
                        print ("正在等待中")
                elif "messages" in queryOrderWaitTimeResult and queryOrderWaitTimeResult["messages"]:
                    print("排队等待失败: " + queryOrderWaitTimeResult["messages"])
                else:
                    print("第{}次排队中,请耐心等待".format(num))
            else:
                print("排队中")
            time.sleep(1)
        order_id = self.queryMyOrderNoComplete()  # 尝试查看订单列表,如果有订单,则判断成功,不过一般可能性不大
        if order_id:
            email("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(order_id),self.ticket_config).sendEmail()
            raise ticketIsExitsException("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(order_id))

        else:
            print(ticketNumOutException("订单提交失败!,正在重新刷票"))
Пример #4
0
 def sendQueryOrderWaitTime(self):
     """
     排队获取订单等待信息,每隔3秒请求一次,最高请求次数为20次!
     :return:
     """
     num = 1
     while True:
         num += 1
         if num > ticket.OUT_NUM:
             print(ticket.WAIT_OUT_NUM)
             order_id = self.queryMyOrderNoComplete()  # 排队失败,自动取消排队订单
             if order_id:
                 self.cancelNoCompleteMyOrder(order_id)
             break
         try:
             queryOrderWaitTimeUrl = copy.deepcopy(self.session.urls["queryOrderWaitTimeUrl"])
             queryOrderWaitTimeUrl["req_url"] = queryOrderWaitTimeUrl["req_url"].format(int(round(time.time() * 1000)))
             queryOrderWaitTimeResult = self.session.httpClint.send(queryOrderWaitTimeUrl)
         except ValueError:
             queryOrderWaitTimeResult = {}
         if queryOrderWaitTimeResult:
             if queryOrderWaitTimeResult.get("status", False):
                 data = queryOrderWaitTimeResult.get("data", False)
                 if data and data.get("orderId", ""):
                     sendEmail(ticket.WAIT_ORDER_SUCCESS.format(
                         data.get("orderId", "")))
                     sendPushBear(ticket.WAIT_ORDER_SUCCESS.format(
                         data.get("orderId", "")))
                     raise ticketIsExitsException(ticket.WAIT_ORDER_SUCCESS.format(
                         data.get("orderId")))
                 elif data.get("msg", False):
                     print(data.get("msg", ""))
                     break
                 elif data.get("waitTime", False):
                     print(ticket.WAIT_ORDER_CONTINUE.format(0 - data.get("waitTime", False)))
                 else:
                     pass
             elif queryOrderWaitTimeResult.get("messages", False):
                 print(ticket.WAIT_ORDER_FAIL.format(queryOrderWaitTimeResult.get("messages", "")))
             else:
                 print(ticket.WAIT_ORDER_NUM.format(num + 1))
         else:
             pass
         time.sleep(2)
     else:
         print(ticketNumOutException(ticket.WAIT_ORDER_SUB_FAIL))
Пример #5
0
 def sendQueryOrderWaitTime(self):
     """
     排队获取订单等待信息,每隔3秒请求一次,最高请求次数为20次!
     :return:
     """
     num = 1
     while True:
         num += 1
         if num > ticket.OUT_NUM:
             print(ticket.WAIT_OUT_NUM)
             order_id = self.queryMyOrderNoComplete()  # 排队失败,自动取消排队订单
             if order_id:
                 self.cancelNoCompleteMyOrder(order_id)
             break
         try:
             queryOrderWaitTimeUrl = copy.deepcopy(self.session.urls["queryOrderWaitTimeUrl"])
             queryOrderWaitTimeUrl["req_url"] = queryOrderWaitTimeUrl["req_url"].format(int(round(time.time() * 1000)))
             queryOrderWaitTimeResult = self.session.httpClint.send(queryOrderWaitTimeUrl)
         except ValueError:
             queryOrderWaitTimeResult = {}
         if queryOrderWaitTimeResult:
             if queryOrderWaitTimeResult.get("status", False):
                 data = queryOrderWaitTimeResult.get("data", False)
                 if data and data.get("orderId", ""):
                     sendEmail(ticket.WAIT_ORDER_SUCCESS.format(
                         data.get("orderId", "")))
                     raise ticketIsExitsException(ticket.WAIT_ORDER_SUCCESS.format(
                         data.get("orderId")))
                 elif data.get("msg", False):
                     print(data.get("msg", ""))
                     break
                 elif data.get("waitTime", False):
                     print(ticket.WAIT_ORDER_CONTINUE.format(0 - data.get("waitTime", False)))
                 else:
                     pass
             elif queryOrderWaitTimeResult.get("messages", False):
                 print(ticket.WAIT_ORDER_FAIL.format(queryOrderWaitTimeResult.get("messages", "")))
             else:
                 print(ticket.WAIT_ORDER_NUM.format(num + 1))
         else:
             pass
         time.sleep(2)
     else:
         print(ticketNumOutException(ticket.WAIT_ORDER_SUB_FAIL))
Пример #6
0
    def queryOrderWaitTime(self):
        """
        排队获取订单等待信息,每隔3秒请求一次,最高请求次数为20次!
        :return: 
        """
        num = 1
        while True:
            _random = int(round(time.time() * 1000))
            num += 1
            if num > 30:
                print("超出排队时间,自动放弃,正在重新刷票")
                order_id = self.queryMyOrderNoComplete()  # 排队失败,自动取消排队订单
                if order_id:
                    self.cancelNoCompleteMyOrder(order_id)
                break
            try:
                data = {"random": _random, "tourFlag": "dc"}
                queryOrderWaitTimeUrl = self.confUrl["queryOrderWaitTimeUrl"]["req_url"]
                queryOrderWaitTimeResult = self.httpClint.send(queryOrderWaitTimeUrl, data)
            except ValueError:
                queryOrderWaitTimeResult = {}
            if queryOrderWaitTimeResult:
                if "status" in queryOrderWaitTimeResult and queryOrderWaitTimeResult["status"]:
                    if "orderId" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["orderId"] is not None:
                        sendEmail("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(queryOrderWaitTimeResult["data"]["orderId"]))
                        raise ticketIsExitsException("恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(queryOrderWaitTimeResult["data"]["orderId"]))
                    elif "msg" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["msg"]:
                        print queryOrderWaitTimeResult["data"]["msg"]
                        break
                    elif "waitTime"in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["waitTime"]:
                        print("排队等待时间预计还剩 {0} ms".format(0-queryOrderWaitTimeResult["data"]["waitTime"]))
                    else:
                        print ("正在等待中")
                elif "messages" in queryOrderWaitTimeResult and queryOrderWaitTimeResult["messages"]:
                    print("排队等待失败: " + queryOrderWaitTimeResult["messages"])
                else:
                    print("第{}次排队中,请耐心等待".format(num+1))
            else:
                print("排队中")
            time.sleep(2)

        else:
            print(ticketNumOutException("订单提交失败!,正在重新刷票"))
Пример #7
0
    def queryOrderWaitTime(self):
        """
        排队获取订单等待信息,每隔3秒请求一次,最高请求次数为20次!
        :return: 
        """
        num = 1
        while True:
            _random = int(round(time.time() * 1000))
            num += 1
            if num > 30:
                print(u"超出排队时间,自动放弃,正在重新刷票")
                order_id = self.queryMyOrderNoComplete()  # 排队失败,自动取消排队订单
                if order_id:
                    self.cancelNoCompleteMyOrder(order_id)
                break
            try:
                data = {"random": _random, "tourFlag": "dc"}
                queryOrderWaitTimeUrl = self.confUrl["queryOrderWaitTimeUrl"]
                queryOrderWaitTimeResult = self.httpClint.send(queryOrderWaitTimeUrl, data)
            except ValueError:
                queryOrderWaitTimeResult = {}
            if queryOrderWaitTimeResult:
                if "status" in queryOrderWaitTimeResult and queryOrderWaitTimeResult["status"]:
                    if "orderId" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["orderId"] is not None:
                        sendEmail(u"恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(queryOrderWaitTimeResult["data"]["orderId"]))
                        raise ticketIsExitsException(u"恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!".format(queryOrderWaitTimeResult["data"]["orderId"]))
                    elif "msg" in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["msg"]:
                        print queryOrderWaitTimeResult["data"]["msg"]
                        break
                    elif "waitTime"in queryOrderWaitTimeResult["data"] and queryOrderWaitTimeResult["data"]["waitTime"]:
                        print(u"排队等待时间预计还剩 {0} ms".format(0-queryOrderWaitTimeResult["data"]["waitTime"]))
                    else:
                        print ("正在等待中")
                elif "messages" in queryOrderWaitTimeResult and queryOrderWaitTimeResult["messages"]:
                    print(u"排队等待失败: " + queryOrderWaitTimeResult["messages"])
                else:
                    print(u"第{}次排队中,请耐心等待".format(num+1))
            else:
                print(u"排队中")
            time.sleep(2)

        else:
            print(ticketNumOutException(u"订单提交失败!,正在重新刷票"))
Пример #8
0
 def queryMyOrderNoComplete(self):
     """
     获取订单列表信息
     :return:
     """
     self.initNoComplete()
     queryMyOrderNoCompleteUrl = self.confUrl["queryMyOrderNoCompleteUrl"][
         "req_url"]
     data = {"_json_att": ""}
     try:
         queryMyOrderNoCompleteResult = self.httpClint.send(
             queryMyOrderNoCompleteUrl, data)
     except ValueError:
         queryMyOrderNoCompleteResult = {}
     if queryMyOrderNoCompleteResult:
         if "data" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult[
                 "data"] and "orderDBList" in queryMyOrderNoCompleteResult[
                     "data"] and queryMyOrderNoCompleteResult["data"][
                         "orderDBList"]:
             orderId = queryMyOrderNoCompleteResult["data"]["orderDBList"][
                 0]["sequence_no"]
             return orderId
         elif "data" in queryMyOrderNoCompleteResult and "orderCacheDTO" in queryMyOrderNoCompleteResult[
                 "data"] and queryMyOrderNoCompleteResult["data"][
                     "orderCacheDTO"]:
             if "message" in queryMyOrderNoCompleteResult["data"][
                     "orderCacheDTO"] and queryMyOrderNoCompleteResult[
                         "data"]["orderCacheDTO"]["message"]:
                 print(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]
                       ["message"]["message"])
                 raise ticketNumOutException(
                     queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]
                     ["message"]["message"])
         else:
             if "message" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult[
                     "message"]:
                 print queryMyOrderNoCompleteResult["message"]
                 return False
             else:
                 return False
     else:
         print("接口 {} 无响应".format(queryMyOrderNoCompleteUrl))
Пример #9
0
 def queryMyOrderNoComplete(self):
     """
     获取订单列表信息
     :return:
     """
     self.initNoComplete()
     queryMyOrderNoCompleteUrl = "https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete"
     data = {"_json_att": None}
     try:
         queryMyOrderNoCompleteResult = json.loads(
             myurllib2.Post(queryMyOrderNoCompleteUrl, data))
     except ValueError:
         queryMyOrderNoCompleteResult = {}
     if queryMyOrderNoCompleteResult:
         if "data" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult[
                 "data"] and "orderDBList" in queryMyOrderNoCompleteResult[
                     "data"] and queryMyOrderNoCompleteResult["data"][
                         "orderDBList"]:
             orderId = queryMyOrderNoCompleteResult["data"]["orderDBList"][
                 0]["sequence_no"]
             return orderId
         elif "data" in queryMyOrderNoCompleteResult and "orderCacheDTO" in queryMyOrderNoCompleteResult[
                 "data"] and queryMyOrderNoCompleteResult["data"][
                     "orderCacheDTO"]:
             if "message" in queryMyOrderNoCompleteResult["data"][
                     "orderCacheDTO"] and queryMyOrderNoCompleteResult[
                         "data"]["orderCacheDTO"]["message"]:
                 print(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]
                       ["message"]["message"])
                 raise ticketNumOutException(
                     queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]
                     ["message"]["message"])
         else:
             if "message" in queryMyOrderNoCompleteResult and queryMyOrderNoCompleteResult[
                     "message"]:
                 print queryMyOrderNoCompleteResult["message"]
                 return False
             else:
                 return False
     else:
         print("接口 {} 无响应".format(queryMyOrderNoCompleteUrl))
Пример #10
0
 def queryMyOrderNoComplete(self):
     """
     获取订单列表信息
     :return:
     """
     self.initNoComplete()
     queryMyOrderNoCompleteUrl = self.session.urls[
         "queryMyOrderNoCompleteUrl"]
     data = {"_json_att": ""}
     try:
         queryMyOrderNoCompleteResult = self.session.httpClint.send(
             queryMyOrderNoCompleteUrl, data)
     except ValueError:
         queryMyOrderNoCompleteResult = {}
     if queryMyOrderNoCompleteResult:
         if queryMyOrderNoCompleteResult.get(
                 "data",
                 False) and queryMyOrderNoCompleteResult["data"].get(
                     "orderDBList", False):
             orderId = queryMyOrderNoCompleteResult["data"]["orderDBList"][
                 0]["sequence_no"]
             return orderId
         elif queryMyOrderNoCompleteResult.get(
                 "data",
                 False) and queryMyOrderNoCompleteResult["data"].get(
                     "orderCacheDTO", False):
             if queryMyOrderNoCompleteResult["data"]["orderCacheDTO"].get(
                     "message", False):
                 print(queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]
                       ["message"]["message"])
                 raise ticketNumOutException(
                     queryMyOrderNoCompleteResult["data"]["orderCacheDTO"]
                     ["message"]["message"])
         else:
             if queryMyOrderNoCompleteResult.get("message", False):
                 print(queryMyOrderNoCompleteResult.get("message", False))
                 return False
             else:
                 return False
     else:
         return False