1、前言
最近在做一个商旅的项目,其中一块就是火车票订票,经前期赛选,最终选择聚合火车票订票接口。本人会将本次接口集成过程中的问题和相关知识点进行汇总。
就像其官方文档说的“由于火车票系统较为复杂”,建议开发前通读火车票订票接口常见问题十遍。
2、聚合火车票订票接口简介
3、火车票订单状态汇总
火车票订单状态的"订单状态查询"接口中的JSON返回示例中有详细描述,如下图
4、余票查询、订单状态查询、历史订单查询
这三个接口都很简单,这里只提列一下订单状态查询的代码,不做过多说明
/**
* 获取火车票订单状态
* @param orderid
* @param APPKEY
* @return
*/
private static String getOrderState(String orderid,String APPKEY){
String url = "http://op.juhe.cn/trainTickets/orderStatus?orderid=" + orderid + "&key=" + APPKEY;
String data = HttpUtils.get(url);
return data;
}
public static final String key = "XXXXXXXXXXXXXXXXXXX";
public static void main(String[] args) {
String result = getOrderState("JH156620708289855", key);
System.out.println("result:" + result);
}
控制台输出结果如下:
result:{"reason":"查询订单状态成功","result":{"orderid":"JH156620708289855","user_orderid":"T2019081921665410","msg":"出票成功","orderamount":"1.00","status":"4","passengers":[{"zwcode":"1","passportseno":"XXXXXXXXX","passporttypeseid":"1","passporttypeseidname":"二代身份证","price":"1.0","zwname":"硬座","passengersename":"张三","passengerid":"1","is_accept_standing":"1","piaotype":"1","piaotypename":"成人票","ticket_no":"E5344268166650043","cxin":"05车厢,043座","reason":0}],"ch