分享如何在微信小程序中进行火车票查询。

今天酷牛教程小编和大家一起学习的是如何在微信小程序中进行火车票查询?一定有许多朋友很是期待吧,下面就是详细的内容。

最终效果图:

在微信小程序中是怎么实现火车票查询的呢?

样式丑哭了,我毕竟不是前端,宗旨就是练练手,体验微信小程序的开发,以最直接的方式获取12306数据查询火车票。

目录结构:

在微信小程序中是怎么实现火车票查询的呢?

search1是出发站列表,search2是目的站列表,命名没有太好好想。

车站信息

12306查询页面,打开浏览器开发者工具分析请求,发现各个车站的信息都在这个JS文件中:

在微信小程序中是怎么实现火车票查询的呢?

当然车站的信息会发生变动,所以最好的方式就是抓取数据,我现在为了方便,直接把数据拷贝过来,就是一大堆字符串:

在微信小程序中是怎么实现火车票查询的呢?

通过正则截取出目前项目需要的两个东西,如:北京北 VAP

在search1.js和search2.js中各自放了这个字符串,本想按照data:{}的方式放在app.js中,可是取不到,这个该如何实现?

请求信息

12306查询页面,点击查询按钮的时候,它会发送两个请求:

在微信小程序中是怎么实现火车票查询的呢?

第一个是日志请求,这里不需要,它有什么作用12306知道

第二个才是我们需要的,拷贝它的请求地址,构建我们程序的请求

在微信小程序中是怎么实现火车票查询的呢?

url中最后的queryC,之前是query的,可能过段时间变为queryD、query0...

又一个变化的地方,也可以说处处皆会变化,毕竟12306不是自己做的,无法掌控,

所以最好还是抓取数据的方式来做,我现在方便直接写死了。

leftTicketDTO.train_date 日期,格式:2016-10-13

leftTicketDTO.from_station 出发站编码,上面那堆车站信息中的,北京北为VAP

leftTicketDTO.to_station 目的站编码,同上

purpose_codes 普通(ADULT)或学生(0X00)

响应信息

参数错误或没给全返回的JSON:{\"status\":false,\"c_url\":\"leftTicket/queryC\",\"c_name\":\"CLeftTicketUrl\"}

一般正常的格式为:

在微信小程序中是怎么实现火车票查询的呢?

要是提交的是昨天的日期,则messages中会有消息,但status和httpstatus仍然为true和200。

于是乎对返回结果有了如下判断:

在微信小程序中是怎么实现火车票查询的呢?

展示信息

先看看data中的有什么东东:

在微信小程序中是怎么实现火车票查询的呢?

用到的参数,能够确认其作用的:

车次 station_train_code

始发站 start_station_name

终点站 end_station_name

出发站 from_station_name

目的站 to_station_name

出发时间 start_time

目的时间 arrive_time

历时时间 lishi

商务座 swz_num

一等座 zy_num

二等座 ze_num

软卧 rw_num

硬卧 yw_num

软座 rz_num

硬座 yz_num

无座 wz_num

特等座 tz_num

在微信小程序中是怎么实现火车票查询的呢?

gr_num和qt_num,猜测为高级软卧和其他,gg_num和yb_num就实在想不到了。

需要注意的是,座位的票数超过某个数的返回值是“有”,而低于则返回的是数字,所以在显示数据列表之前还得处理下。

以上就是如何在微信小程序中进行火车票查询的全部内容了,大家都学会了吗?

本文来自投稿,不代表酷牛教程立场,如若转载,请注明出处:https://www.xukn.com/97490.html

(0)
上一篇 2019-09-07 10:28
下一篇 2019-09-07 10:52

相关推荐