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)
首先,在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 |
|
| |
| 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)
返回字段:
名称 |
| 类型 | 说明 |
|
| int | 返回码 |
reason |
| string | 返回说明 |
result |
| array | 返回结果集 |
| | string | |
| | string |
|
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
| | string | |
publicvoid bookTrainNum(String from, String to,String date,String traintype, JsonCallBack jsonCallBack)
返回值:
名称 |
|
| 类型 | 说明 |
reason |
|
| string | 返回说明 |
result |
|
| array | 返回结果集 |
| queryLeftNewDTO |
| dictionary |
|
| | | string | |
| | |
| |
| | |
| |
| | | string | |
| | |
| |
| | | string | |
| | |
| |
| | | string | |
| | |
| |
| | | string | |
| | | string | |
| | | string | |
| | |
| |
| | | string | |
| | | string | |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | | string | |
| | |
| |
| | |
| |
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)
返回码:
名称 | 类型 | 说明 |
| int | 返回说明 |
| dictionary | 返回结果 |
| int | 错误码 |
错误码 | 说明 |
202201 | 车次不能为空 |
202202 | 查询不到车次的相关信息 |
202203 | 出发站或终点站不能为空 |
202204 | 查询不到结果 |
202205 | 错误的出发站名称 |
202206 | 错误的到达站名称 |
202207 | 查询不到余票相关数据哦 |
202208 | 错误的请求,请确认传递的参数正确 |
202209 | 请求12306网络错误,请重试 |
202210 | 12306账号密码错误 |
202211 | 邮箱不存在 |
202212 | 查询出错 |
202213 | 提交订单超时,请重试 |
202214 | 出票失败 |
202215 | 排队失败 |
202216 | 该车次无法预定 |
202217 | 不合法的座位类型 |