Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

Commit b88d541

Browse files
1、增加快速订票流程接口
2、尝试解决慢排队
1 parent f86f7b9 commit b88d541

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1116
-72
lines changed

.gitignore

100644100755
File mode changed.

.idea/dictionaries/wenxianping.xml

100644100755
File mode changed.

README.md

100644100755
File mode changed.

__init__.py

100644100755
File mode changed.

agency/__init__.py

100644100755
File mode changed.

agency/agency_tools.py

100644100755
File mode changed.

agency/cdn_utils.py

100644100755
File mode changed.

cdn_list

100644100755
File mode changed.

config/TicketEnmu.py

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# coding=utf-8
2+
3+
4+
class ticket(object):
5+
QUERY_C = u"查询到有余票,尝试提交订单"
6+
QUERY_IN_BLACK_LIST = u"该车次{} 正在被关小黑屋,跳过此车次"
7+
8+
SUCCESS_CODE = 000000
9+
FAIL_CODE = 999999
10+
AUTO_SUBMIT_ORDER_REQUEST_C = u"提交订单成功"
11+
AUTO_SUBMIT_ORDER_REQUEST_F = u"提交订单失败,重新刷票中"
12+
AUTO_SUBMIT_NEED_CODE = u"需要验证码"
13+
AUTO_SUBMIT_NOT_NEED_CODE = u"不需要验证码"
14+
15+
TICKET_BLACK_LIST_TIME = 5 # 加入小黑屋的等待时间,默认5 min
16+
17+
DTO_NOT_FOUND = u"未查找到常用联系人"
18+
DTO_NOT_IN_LIST = u"联系人不在列表中,请查证后添加"
19+
20+
QUEUE_TICKET_SHORT = u"当前余票数小于乘车人数,放弃订票"
21+
QUEUE_TICKET_SUCCESS = u"排队成功, 当前余票还剩余: {0}张"
22+
QUEUE_JOIN_BLACK = u"排队发现未知错误{0},将此列车 {1}加入小黑屋"
23+
QUEUE_WARNING_MSG = u"排队异常,错误信息:{0}, 将此列车 {1}加入小黑屋"
24+
25+
OUT_NUM = 30 # 排队请求12306的次数
26+
WAIT_OUT_NUM = u"超出排队时间,自动放弃,正在重新刷票"
27+
WAIT_ORDER_SUCCESS = u"恭喜您订票成功,订单号为:{0}, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!"
28+
WAIT_ORDER_CONTINUE = u"排队等待时间预计还剩 {0} ms"
29+
WAIT_ORDER_FAIL = u"排队等待失败,错误消息:{0}"
30+
WAIT_ORDER_NUM = u"第{0}次排队中,请耐心等待"
31+
WAIT_ORDER_SUB_FAIL = u"订单提交失败!,正在重新刷票"
32+
33+
CANCEL_ORDER_SUCCESS = u"排队超时,已为您自动取消订单,订单编号: {0}"
34+
CANCEL_ORDER_FAIL = u"排队超时,取消订单失败, 订单号{0}"
35+

config/__init__.py

100644100755
File mode changed.

config/configCommon.py

100644100755
File mode changed.

config/emailConf.py

100644100755
File mode changed.

config/logger.py

100644100755
File mode changed.

config/ticketConf.py

100644100755
File mode changed.

config/ticket_config.yaml

100644100755
+4-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@
4141

4242
set:
4343
station_dates:
44-
- "2018-03-19"
45-
# - "2018-02-21"
44+
- "2018-06-21"
45+
- "2018-06-22"
4646

4747
station_trains:
48-
- "G4831"
48+
- "G1321"
4949

5050
from_station: "上海"
5151
to_station: "长沙"
@@ -60,7 +60,7 @@ set:
6060
12306count:
6161
# - uesr: ""
6262
# - pwd: "apple1995"
63-
- uesr: "@qq.com"
63+
- uesr: "931128603@qq.com"
6464
- pwd: "QWERTY"
6565

6666
select_refresh_interval: 1

config/urlConf.py

100644100755
+55-33
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,72 @@
1+
# coding=utf-8
12
import random
23

34
import time
45

56
urls = {
6-
"auth": {
7+
"auth": { # 登录接口
78
"req_url": "/passport/web/auth/uamtk",
89
"req_type": "post",
910
"Referer": "https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin",
1011
"Host": "kyfw.12306.cn",
12+
"Content-Type": 1,
1113
"re_try": 10,
1214
"re_time": 0.1,
1315
"s_time": 0.1,
1416
"is_logger": True,
1517
"is_json": True,
1618
},
17-
"login": {
19+
"login": { # 登录接口
1820
"req_url": "/passport/web/login",
1921
"req_type": "post",
2022
"Referer": "https://kyfw.12306.cn/otn/login/init",
2123
"Host": "kyfw.12306.cn",
24+
"Content-Type": 1,
2225
"re_try": 10,
2326
"re_time": 0.1,
2427
"s_time": 0.1,
2528
"is_logger": True,
2629
"is_json": True,
2730

2831
},
29-
"getCodeImg": {
32+
"left_ticket_init": { # 登录接口
33+
"req_url": "/otn/leftTicket/init",
34+
"req_type": "post",
35+
"Referer": "https://kyfw.12306.cn/otn/login/init",
36+
"Host": "kyfw.12306.cn",
37+
"Content-Type": 1,
38+
"re_try": 10,
39+
"re_time": 0.1,
40+
"s_time": 0.1,
41+
"is_logger": False,
42+
"is_json": False,
43+
44+
},
45+
"getCodeImg": { # 登录验证码
3046
"req_url": "/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&{0}",
3147
"req_type": "get",
3248
"Referer": "https://kyfw.12306.cn/otn/login/init",
3349
"Host": "kyfw.12306.cn",
50+
"Content-Type": 1,
3451
"re_try": 10,
3552
"re_time": 0.1,
3653
"s_time": 0.1,
3754
"is_logger": False,
3855
"is_json": False,
3956
},
40-
"codeCheck": {
57+
"codeCheck": { # 验证码校验
4158
"req_url": "/passport/captcha/captcha-check",
4259
"req_type": "post",
4360
"Referer": "https://kyfw.12306.cn/otn/login/init",
4461
"Host": "kyfw.12306.cn",
62+
"Content-Type": 1,
4563
"re_try": 10,
4664
"re_time": 0.1,
4765
"s_time": 0.1,
4866
"is_logger": True,
4967
"is_json": True,
5068
},
51-
"loginInit": {
69+
"loginInit": { # 登录页面
5270
"req_url": "/otn/login/init",
5371
"req_type": "get",
5472
"Referer": "https://kyfw.12306.cn/otn/index/init",
@@ -59,7 +77,7 @@
5977
"is_logger": False,
6078
"is_json": False,
6179
},
62-
"getUserInfo": {
80+
"getUserInfo": { # 获取用户信息
6381
"req_url": "/otn/index/initMy12306",
6482
"req_type": "get",
6583
"Referer": "https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin",
@@ -70,7 +88,7 @@
7088
"is_logger": False,
7189
"is_json": False,
7290
},
73-
"userLogin": {
91+
"userLogin": { # 用户登录
7492
"req_url": "/otn/login/userLogin",
7593
"req_type": "get",
7694
"Referer": "https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin",
@@ -81,18 +99,19 @@
8199
"is_logger": True,
82100
"is_json": True,
83101
},
84-
"uamauthclient": {
102+
"uamauthclient": { # 登录
85103
"req_url": "/otn/uamauthclient",
86104
"req_type": "post",
87105
"Referer": "https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin",
88106
"Host": "kyfw.12306.cn",
107+
"Content-Type": 1,
89108
"re_try": 10,
90109
"re_time": 0.1,
91110
"s_time": 0.1,
92111
"is_logger": True,
93112
"is_json": True,
94113
},
95-
"initdc_url": {
114+
"initdc_url": { # 生成订单页面
96115
"req_url": "/otn/confirmPassenger/initDc",
97116
"req_type": "get",
98117
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
@@ -103,7 +122,7 @@
103122
"is_logger": False,
104123
"is_json": False,
105124
},
106-
"GetJS": {
125+
"GetJS": { # 订单页面js
107126
"req_url": "/otn/HttpZF/GetJS",
108127
"req_type": "get",
109128
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -114,7 +133,7 @@
114133
"is_logger": False,
115134
"is_json": False,
116135
},
117-
"odxmfwg": {
136+
"odxmfwg": { # 订单页面js
118137
"req_url": "/otn/dynamicJs/odxmfwg",
119138
"req_type": "get",
120139
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -125,7 +144,7 @@
125144
"is_logger": False,
126145
"is_json": False,
127146
},
128-
"get_passengerDTOs": {
147+
"get_passengerDTOs": { # 获取乘车人
129148
"req_url": "/otn/confirmPassenger/getPassengerDTOs",
130149
"req_type": "post",
131150
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -136,8 +155,8 @@
136155
"is_logger": True,
137156
"is_json": True,
138157
},
139-
"select_url": {
140-
"req_url": "/otn/leftTicket/queryO?leftTicketDTO.train_date={0}&leftTicketDTO.from_station={1}&leftTicketDTO.to_station={2}&purpose_codes=ADULT",
158+
"select_url": { # 查询余票
159+
"req_url": "/otn/leftTicket/query?leftTicketDTO.train_date={0}&leftTicketDTO.from_station={1}&leftTicketDTO.to_station={2}&purpose_codes=ADULT",
141160
"req_type": "post",
142161
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
143162
"Host": "kyfw.12306.cn",
@@ -147,7 +166,7 @@
147166
"is_logger": False,
148167
"is_json": True,
149168
},
150-
"check_user_url": {
169+
"check_user_url": { # 检查用户登录
151170
"req_url": "/otn/login/checkUser",
152171
"req_type": "post",
153172
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
@@ -158,7 +177,7 @@
158177
"is_logger": True,
159178
"is_json": True,
160179
},
161-
"submit_station_url": {
180+
"submit_station_url": { # 提交订单
162181
"req_url": "/otn/leftTicket/submitOrderRequest",
163182
"req_type": "post",
164183
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
@@ -169,7 +188,7 @@
169188
"is_logger": True,
170189
"is_json": True,
171190
},
172-
"checkOrderInfoUrl": {
191+
"checkOrderInfoUrl": { # 检查订单信息规范
173192
"req_url": "/otn/confirmPassenger/checkOrderInfo",
174193
"req_type": "post",
175194
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -180,7 +199,7 @@
180199
"is_logger": True,
181200
"is_json": True,
182201
},
183-
"getQueueCountUrl": {
202+
"getQueueCountUrl": { # 剩余余票数
184203
"req_url": "/otn/confirmPassenger/getQueueCount",
185204
"req_type": "post",
186205
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -191,7 +210,7 @@
191210
"is_logger": True,
192211
"is_json": True,
193212
},
194-
"checkQueueOrderUrl": {
213+
"checkQueueOrderUrl": { # 订单队列排队
195214
"req_url": "/otn/confirmPassenger/confirmSingleForQueue",
196215
"req_type": "post",
197216
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -202,7 +221,7 @@
202221
"is_logger": True,
203222
"is_json": True,
204223
},
205-
"checkRandCodeAnsyn": {
224+
"checkRandCodeAnsyn": { # 暂时没用到
206225
"req_url": "/otn/passcodeNew/checkRandCodeAnsyn",
207226
"req_type": "post",
208227
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -213,7 +232,7 @@
213232
"is_logger": True,
214233
"is_json": True,
215234
},
216-
"codeImgByOrder": {
235+
"codeImgByOrder": { # 订单页面验证码
217236
"req_url": "/otn/passcodeNew/getPassCodeNew?module=passenger&rand=randp&%s" % random.random(),
218237
"req_type": "post",
219238
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
@@ -224,9 +243,9 @@
224243
"is_logger": False,
225244
"is_json": False,
226245
},
227-
"queryOrderWaitTimeUrl": {
228-
"req_url": "/otn/confirmPassenger/queryOrderWaitTime",
229-
"req_type": "post",
246+
"queryOrderWaitTimeUrl": { # 订单等待页面
247+
"req_url": "/otn/confirmPassenger/queryOrderWaitTime?random={0}&tourFlag=dc&_json_att=",
248+
"req_type": "get",
230249
"Referer": "https://kyfw.12306.cn/otn/confirmPassenger/initDc",
231250
"Host": "kyfw.12306.cn",
232251
"re_try": 10,
@@ -235,7 +254,7 @@
235254
"is_logger": True,
236255
"is_json": True,
237256
},
238-
"queryMyOrderNoCompleteUrl": {
257+
"queryMyOrderNoCompleteUrl": { # 订单查询页面
239258
"req_url": "/otn/queryOrder/queryMyOrderNoComplete",
240259
"req_type": "post",
241260
"Referer": "https://kyfw.12306.cn/otn/queryOrder/initNoComplete",
@@ -246,7 +265,7 @@
246265
"is_logger": True,
247266
"is_json": True,
248267
},
249-
"initNoCompleteUrl": {
268+
"initNoCompleteUrl": { # 获取订单列表
250269
"req_url": "/otn/queryOrder/initNoComplete",
251270
"req_type": "post",
252271
"Referer": "https://kyfw.12306.cn/otn/queryOrder/initNoComplete",
@@ -257,7 +276,7 @@
257276
"is_logger": True,
258277
"is_json": True,
259278
},
260-
"cancelNoCompleteMyOrder": {
279+
"cancelNoCompleteMyOrder": { # 取消订单
261280
"req_url": "/otn/queryOrder/cancelNoCompleteMyOrder",
262281
"req_type": "post",
263282
"Referer": "https://kyfw.12306.cn/otn/queryOrder/initNoComplete",
@@ -268,32 +287,35 @@
268287
"is_logger": True,
269288
"is_json": True,
270289
},
271-
"autoSubmitOrderRequest": {
290+
"autoSubmitOrderRequest": { # 快速自动提交订单
272291
"req_url": "/otn/confirmPassenger/autoSubmitOrderRequest",
273292
"req_type": "post",
274-
"Referer": "https://kyfw.12306.cn/otn/queryOrder/initNoComplete",
293+
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
275294
"Host": "kyfw.12306.cn",
295+
"Content-Type": 1,
276296
"re_try": 10,
277297
"re_time": 0.1,
278298
"s_time": 0.1,
279299
"is_logger": True,
280300
"is_json": True,
281301
},
282-
"getQueueCountAsync": {
302+
"getQueueCountAsync": { # 快速获取订单数据
283303
"req_url": "/otn/confirmPassenger/getQueueCountAsync",
284304
"req_type": "post",
285-
"Referer": "https://kyfw.12306.cn/otn/queryOrder/initNoComplete",
305+
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
286306
"Host": "kyfw.12306.cn",
307+
"Content-Type": 1,
287308
"re_try": 10,
288309
"re_time": 0.1,
289310
"s_time": 0.1,
290311
"is_logger": True,
291312
"is_json": True,
292313
},
293-
"confirmSingleForQueueAsys": {
314+
"confirmSingleForQueueAsys": { # 快速订单排队
294315
"req_url": "/otn/confirmPassenger/confirmSingleForQueueAsys",
295316
"req_type": "post",
296-
"Referer": "https://kyfw.12306.cn/otn/queryOrder/initNoComplete",
317+
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
318+
"Content-Type": 1,
297319
"Host": "kyfw.12306.cn",
298320
"re_try": 10,
299321
"re_time": 0.1,

damatuCode/__init__.py

100644100755
File mode changed.

damatuCode/damatuWeb.py

100644100755
File mode changed.

damatuCode/ruokuai.py

100644100755
File mode changed.

0 commit comments

Comments
 (0)