近两年火车票越来越难抢了,各种抢票软件也是层出不穷,最近对12306网站的购票流程感兴趣,于是便分析了一下。
首先说一下登录页面,一种是app扫码登录,一种是账号密码登录。扫码登录的方式是生成一张二维码,通过轮询的方式向后台发送请求,检验是否扫码成功。账号密码的话输入用户名密码后需要点击图片验证码。说一下图片验证的过程:根据图片上的提示点击正确的答案,最后点击登录按钮,点击登录按钮后首先会发送验证验证码的正确性,如果不正确则刷新图片验证码,如果正确则继续发送请求验证账户名和密码。这里图片验证码验证的是用户在图片上点击的位置坐标(例如点击两个的坐标answer: 254,46,41,118)。
登录成功后购票主要分为九大步骤:
-
查询车次信息列表
-
点击预定购票并check用户
-
发送预定某一车次购票请求
-
跳转到选座页面
-
获取用户联系人信息
-
提交订单检查排队信息
-
获取订单余票信息
-
排队购买单程票
-
轮询检查是否排队成功
第一步:查询车次信息列表(/otn/leftTicket/queryZ?leftTicketDTO.train_date=&purpose_codes=&leftTick