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

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,JsonCallBack jsonCallBack) 

/**
	 * 12306订票①:查询车次
	 * 
	 * @param from
	 *            出发站
	 * @param to
	 *            到达站
	 * @param date
	 *            出发日期
	 * @param traintype
	 *            车次类型
	 * @param jsonCallBack
	 */
	public void bookTrainNum(String from,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,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 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

不合法的座位类型

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...