文档章节

聚合数据Android SDK 12306火车票查询订票演示示例

王航-聚合数据
 王航-聚合数据
发布于 2014/10/10 09:31
字数 1383
阅读 51
收藏 0
点赞 0
评论 0

1. 聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据.

2. 下载 聚合数据SDK,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libs\armeabi目录下,如图:


3. 根据接口说明文档找到以下方法:

/**
	 * 获取车次
	 * 
	 * @param name
	 *            车次
	 * @param jsonCallBack
	 */
	public void getTrainNum(String name, JsonCallBack jsonCallBack)

/**
	 * 站到站查询
	 * 
	 * @param start
	 *            出发站
	 * @param end
	 *            终点站
	 * @param traintype
	 *            列车类型
	 * @param jsonCallBack
	 */
	public void getS2S(String start, String end, String traintype, JsonCallBack jsonCallBack) 

/**
	 * 12306实时余票查询
	 * 
	 * @param from
	 *            出发站
	 * @param to
	 *            到达站
	 * @param date
	 *            出发日期 默认今天
	 * @param traintype
	 *            车次类型
	 * @param jsonCallBack
	 */
	public void getTicketleft(String from, String to, String date, String traintype, JsonCallBack jsonCallBack) 

/**
	 * 12306订票①:查询车次
	 * 
	 * @param from
	 *            出发站
	 * @param to
	 *            到达站
	 * @param date
	 *            出发日期
	 * @param traintype
	 *            车次类型
	 * @param jsonCallBack
	 */
	public void bookTrainNum(String from, String to, String date, String traintype, JsonCallBack jsonCallBack) 

/**
	 * 
	 * @param name
	 *            乘客姓名
	 * @param seat
	 *            座位类型:商务座:9,一等座:M,二等座:O,特等座:P,高级软卧:6,软卧:4,硬卧:3,软座:2,硬座:1,无座:0
	 * @param mobile
	 *            乘客手机号码
	 * @param idcard
	 *            乘客身份证号码
	 * @param username
	 *            12306官网账号
	 * @param password
	 *            12306官网密码
	 * @param train_no
	 *            步骤①对应车次返回值
	 * @param station_train_code
	 *            步骤①对应车次返回值
	 * @param from_station_telecode
	 *            步骤①对应车次返回值
	 * @param to_station_telecode
	 *            步骤①对应车次返回值
	 * @param from_station_name
	 *            步骤①对应车次返回值
	 * @param to_station_name
	 *            步骤①对应车次返回值
	 * @param secretStr
	 *            步骤①对应车次返回值
	 * @param jsonCallBack
	 */
	public void bookTicket(String name, String seat, String mobile, String idcard, String username, String password, String train_no, String station_train_code, String from_station_telecode, String to_station_telecode, String from_station_name, String to_station_name, String secretStr, JsonCallBack jsonCallBack)


4.程序中调用方法

首先,在AnroidManifest.xml中添加权限

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    

 在application标签内部加入你申请的openid

<meta-data
            android:name="com.thinkland.juheapi.openid"
            android:value="申请的openid" />
    

 在使用前需要调用一次初始化方法

CommonFun.initialize(getApplicationContext());


导入相关包

import com.thinkland.juheapi.common.CommonFun;
import com.thinkland.juheapi.common.JsonCallBack;
import com.thinkland.juheapi.data.train.TrainData;

调用方法
//站站查询
		TrainData trainData = TrainData.getInstance();
		trainData.getS2S("上海虹桥", "苏州园区", "G", new JsonCallBack() {

			@Override
			public void jsonLoaded(JSONObject arg0) {
				// TODO Auto-generated method stub
				try {
					int resultcode = arg0.getInt("resultcode");
					if (resultcode == 200) {
						JSONArray resultJson = arg0.getJSONArray("result");
					}
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});



5.返回字段及相关错误码

public voidgetTrainNum(String name, JsonCallBack jsonCallBack)

返回字段:

名称

 

 

类型

说明

resultcode

 

 

int

返回码

reason

 

 

string

返回说明

result

 

 

dictionary

返回结果集

 

train_info

 

dictionary

返回结果集

 

name

 

string

列次名称

 

start

 

string

起点站

 

end

 

string

终点站

 

starttime

 

string

发车时间

 

endtime

 

string

到达时间

 

mileage

 

string

里程

station_list

 

 

array

站点列表

 

train_id

 

int

站点序号

 

station_name

 

string

站点名称

 

arrived_time

 

string

到达时间

 

leave_time

 

string

发车时间

 

stay

 

string

停留

 

mileage

 

string

里程

 

ssoftSeat

 

string

二等座

 

hardSead

 

string

一等座

 

softSeat

 

string

硬座

 

hardSleep

 

string

软座

 

softSleep

 

string

硬卧

error_code

 

 

int

错误码

 

public void getS2S(String start,String end, String traintype,JsonCallBack jsonCallBack)

返回字段:

名称

 

 

类型

说明

resultcode

 

 

int

返回码

reason

 

 

string

返回说明

result

 

 

dictionary

 

 

data

 

array

返回结果集

 

 

trainOpp

string

列次名称

 

 

train_typename

string

列车类型

 

 

start_staion

string

出发站

 

 

end_station

string

终点站

 

 

leave_time

string

发车时间

 

 

arrived_time

string

到达时间

 

 

mileage

string

里程

 

totalcount

 

int

总条数

error_code

 

 

int

错误码


public void getTicketleft(String from, String to,String date, String traintype,JsonCallBack jsonCallBack)      

返回字段:

名称

 

类型

说明

error_code

 

int

返回码

reason

 

string

返回说明

result

 

array

返回结果集

 

train_no

string

车次

 

start_station_name

string

车次始发站

 

 

end_station_name

string

车次终点站

 

from_station_name

string

出发站

 

to_station_name

string

到达站

 

start_time

string

出发时间

 

arrive_time

string

到达时间

 

train_class_name

string

车次类型

 

day_difference

string

历时天数

 

lishi

string

总历时时间

 

gr_num

string

高级软卧:-- 说明无该席位

 

qt_num

string

其他

 

rw_num

string

软卧

 

rz_num

string

软座

 

tz_num

string

特等座

 

wz_num

string

无座

 

yw_num

string

硬卧

 

yz_num

string

硬座

 

ze_num

string

二等座

 

zy_num

string

一等座

 

swz_num

string

商务座

publicvoid bookTrainNum(String from, String to,String date,String traintype, JsonCallBack jsonCallBack)

返回值:

名称

 

 

类型

说明

reason

 

 

string

返回说明

result

 

 

array

返回结果集

 

queryLeftNewDTO

 

dictionary

 

 

 
train_no

string

车次

 

 
station_train_code

 

 

 

 
start_station_telecode

 

 

 

 
start_station_name

string

车次始发站

 

 
nd_station_telecode

 

 

 

 
end_station_name

string

车次终点站

 

 
from_station_telecode

 

 

 

 
from_station_name

string

出发站

 

 
to_station_telecode

 

 

 

 
to_station_name

string

到达站

 

 
start_time

string

出发时间

 

 
arrive_time

string

到达时间

 

 
day_difference

 

历时天数

 

 
train_class_name

string

车次类型

 

 
lishi

string

总历时时间

 

 
canWebBuy

 

 

 

 
lishiValue

 

 

 

 
yp_info

 

 

 

 
control_train_day

 

 

 

 
start_train_date

 

 

 

 
seat_feature

 

 

 

 
yp_ex

 

 

 

 
train_seat_feature

 

 

 

 
seat_types

 

 

 

 
location_code

 

 

 

 
from_station_no

 

 

 

 
to_station_no

 

 

 

 
control_day

 

 

 

 
sale_time

 

 

 

 
is_support_card

 

 

 

 
gr_num

string

高级软卧:-- 说明无该席位

 

 
qt_num

string

其他

 

 
rw_num

string

软卧

 

 
rz_num

string

软座

 

 
tz_num

string

特等座

 

 
wz_num

string

无座

 

 
yw_num

string

硬卧

 

 
yz_num

string

硬座

 

 
ze_num

string

二等座

 

 
zy_num

string

一等座

 

 
swz_num

string

商务座

 

secretStr
 

 

 

 

buttonTextInfo
 

 

预订

error_code

 

 

int

错误码


public voidbookTicket(String name, String seat, String mobile,

                     String idcard, String username, String password, String train_no,

                     String station_train_code, String from_station_telecode,

                     String to_station_telecode, String from_station_name,

               Stringto_station_name, String secretStr, JsonCallBack jsonCallBack)

       返回码:

名称

类型

说明

reason

int

返回说明

result

dictionary

返回结果

error_code

int

错误码

       

错误码

说明

202201

车次不能为空

202202

查询不到车次的相关信息

202203

出发站或终点站不能为空

202204

查询不到结果

202205

错误的出发站名称

202206

错误的到达站名称

202207

查询不到余票相关数据哦

202208

错误的请求,请确认传递的参数正确

202209

请求12306网络错误,请重试

202210

12306账号密码错误

202211

邮箱不存在

202212

查询出错

202213

提交订单超时,请重试

202214

出票失败

202215

排队失败

202216

该车次无法预定

202217

不合法的座位类型



© 著作权归作者所有

共有 人打赏支持
王航-聚合数据
粉丝 2
博文 12
码字总数 10969
作品 0
苏州
基于PHP的火车票订票接口完成火车票订票流程

演示PHP聚合数据火车票订票接口的使用流程。 配置好PHP环境,PHP版本最好大于5.5 去聚合数据-火车票订票接口申请key:https://www.juhe.cn/docs/api/id/173 以下代码供您了解流程,不要直接...

熊babi ⋅ 2016/11/29 ⋅ 0

[转帖]建设一个靠谱的火车票网上订购系统

转自【http://www.ifanr.com/68019】 昨天,2012年1月11日,网友 @fenng 写了一篇文章,批评铁道部火车票网上订购系统,http://www.12306.cn[1]。同时在新浪发了一条言辞激烈的微博,“去你的...

易水西风 ⋅ 2012/01/13 ⋅ 12

12306 屏蔽浏览器及手机客户端被指失职

新京报讯 (记者李雪莹 林其玲)前日,众多网民反映称,使用抢票插件或手机客户端登录12306网站购票时,遭遇验证码提交失败、无法登录账号等异常现象。随后,金山猎豹浏览器官方微博和奇虎360...

oschina ⋅ 2013/09/14 ⋅ 76

铁路部门称 12306 客户端最快 11 月底前推出

钱江晚报 记者昨日从铁路部门获悉,旅客关注的“掌上12306”智能手机客户端发布,有了最新进展。铁路部门工作人员昨天告诉记者,这款名叫“掌上12306”应用目前也已完成了设计制作,正在进行...

oschina ⋅ 2012/10/16 ⋅ 80

浅谈12306核心模型设计思路和架构设计(如何解决并发问题?)

前言 春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂。后来自己想想,也确实如此。所以,很想挑战一下12306这个系统的核心领域模型的设计。一...

浮躁的码农 ⋅ 01/15 ⋅ 0

12306 大战“网络黄牛”:淘宝也“救”不了

临近春节,12306与各类刷票软件、网络黄牛的“攻防战”引发社会热议。虽然12306采用了各种反制措施,但屡遭破解的事实,被众多网友点评为“道高一尺,魔高一丈”。专业人士建议,与其陷入无休...

oschina ⋅ 2014/01/13 ⋅ 161

charles/AutoChange12306CDN

AutoChange12306CDN 一个自动切换12306 CDN的代理,只需设置浏览器的代理为此软件监听端口,每次查询请求都会更换CDN,达到快速刷票的目的。 思路来自分享12306秒票杀手锏源码 推荐使用此方法...

charles ⋅ 2014/09/13 ⋅ 0

12306.CN 订票助手

这是一个用于辅助在12306.CN上订票的Chrome&Firefox脚本。 这是一个可以运行在遨游3、Chrome、猎豹或Firefox浏览器上的脚本扩展,可以帮助您在 12306.CN 购买火车票(或抢火车票?),反正就...

匿名 ⋅ 2013/01/16 ⋅ 0

12306 订票排队系统效率低下 被指存在多处漏洞

9月18日凌晨消息,铁道部唯一的官方订票网站12306.cn周日完成了新一轮升级,但是多位用户反映,升级后用户购票可能会被强制排队,由于系统存在多处漏洞,排队后购买失败的概率很大。 家住北京...

oschina ⋅ 2012/09/18 ⋅ 126

“世界最忙网站”12306网顺利度过售票最高峰

平均每秒点击24万次,被誉为“世界最繁忙网站”的12306火车订票网,目前顺利度过春运前售票最高峰。21日记者来到12306网站采访获悉,按照今年新的火车票预售办法,21日是互联网售卖除夕当天(...

oschina ⋅ 2014/12/22 ⋅ 97

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nginx服务架构初探(四):nginx服务器的rewrite功能

nginx服务器的rewrite功能 1.nginx后端服务器组的配置 1>upstream name {…} name是给服务器组限的组名 2>server address [parameters]; address为服务器地址 parame......

余温灬未存 ⋅ 今天 ⋅ 0

layer.prompt使文本框为空的情况下也能点击确定

最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行。 但是我又需要空值,看看我原来的代码。 123456789 layer.prompt...

孟飞阳 ⋅ 今天 ⋅ 0

Linux普通文件压缩工具gzip、Bzip2、xz

第六章 文件压缩和打包 6.1 压缩打包介绍 Linux环境常见压缩文件类型: .zip,.gz,.bz2,.xz, .tar.gz,.tar.bz2,.tar.xz 压缩打包的目的 方便文件传输 节省磁盘空间 减少传输花费的时间 ...

弓正 ⋅ 今天 ⋅ 0

移动弹窗基础知识浅析——IOS弹窗体系

摘要: 最为常见的【弹窗】反而是最“捉摸不定”的东西。各种类型的弹窗傻傻分不清楚,不知道在什么场景下应该用哪种弹窗。尤其是遇到“二次确认”等场景…… 因此,打算从头整理移动弹窗的基...

阿里云云栖社区 ⋅ 今天 ⋅ 0

zabbix短信报警统计以及报表展示

一、需求 由于我们的业务报警比较频繁,之前是针对每个报警进行具体处理,但是有时还会重复出现,或者后续处理有时忘记跟进等,因此进行报警短信的统计,可以针对一些问题与业务跟进,明确后...

o翡翠谷o ⋅ 今天 ⋅ 0

JNI 输出LOG

1、导入log头文件。在你使用的 .c/ .cpp 文件中,导入 log.h 头文件。 #include<android/log.h> 2、在android.mk 加上 LOCAL_LDLIBS := -llog 或 LOCAL_SHARED_LIBRARIES := liblog 3、定义L......

国仔饼 ⋅ 今天 ⋅ 0

主线程pthread_exit 作用

#include <iostream>#include <pthread.h>#include <unistd.h>using namespace std;#define NUM_THREADS 10void* say_hello(void* args){ int i = *((int*)args);/......

xxdd ⋅ 今天 ⋅ 0

崛起于Springboot2.X之Mybatis-xml方式操作mysql数据库(3)

序言:当第一篇讲道Mybatis的时候,只要使用过mybatis的java程序员100%都会知道这种方式,因为这是最广泛最全面的编写sql操作mysql数据库的方式,高级sql的编写往往通过xml方式,接下来进入正...

木九天 ⋅ 今天 ⋅ 2

移动弹窗基础知识浅析——IOS弹窗体系

摘要: 最为常见的【弹窗】反而是最“捉摸不定”的东西。各种类型的弹窗傻傻分不清楚,不知道在什么场景下应该用哪种弹窗。尤其是遇到“二次确认”等场景…… 因此,打算从头整理移动弹窗的基...

猫耳m ⋅ 今天 ⋅ 0

spring elasticsearch 2.4 date 日期

1.mappingPUT user_behavior { "mappings": { "user_behavior": { "properties": { "date": { "type": "createDate", ......

xiaomin0322 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部