TmsApiDemo.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package demo;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import util.HttpClientHelper;
  5. /**
  6. * TMS接口调用实例,以 "获取登陆凭证接口"、 "创建订单接口"、 "批量查询订单接口" 为例
  7. * 其余接口调用方式相同;
  8. * 以下代码仅做基本的调用演示,逻辑并不严密,请客户方根据需求自行完善;
  9. * 参数只传了必填参数和部分非必填参数,完整的参数请查看文档
  10. */
  11. public class TmsApiDemo {
  12. //测试环境
  13. private static final String URL = "http://api.test.56ctms.com";
  14. private static final String USER_NAME = "19012345678";
  15. private static final String PASSWORD = "123456";
  16. public static void main(String[] args) {
  17. System.out.println("*********************获取登陆凭证接口*********************");
  18. JSONObject tokenParams = new JSONObject();
  19. tokenParams.put("userName", USER_NAME);
  20. tokenParams.put("password", PASSWORD);
  21. String result = HttpClientHelper.httpPost(URL + "/user/generate_access_token/v2", tokenParams);
  22. JSONObject tokenResponse = JSONObject.parseObject(result);
  23. JSONObject tokenInfo = tokenResponse.getJSONObject("data");
  24. //token,后续请求需要用到,获取一次即可,有效期1年
  25. String accessToken = tokenInfo.getString("accessToken");
  26. //刷新token,用于刷新token
  27. String refreshToken = tokenInfo.getString("refreshToken");
  28. System.out.println("ACCESS_TOKEN = " + accessToken);
  29. System.out.println("REFRESH_TOKEN = " + refreshToken);
  30. System.out.println();
  31. System.out.println("*********************创建订单接口*********************");
  32. JSONObject createOrderParams = new JSONObject();
  33. JSONArray orders = new JSONArray();
  34. createOrderParams.put("orderList", orders);
  35. JSONObject order = new JSONObject();
  36. //用于唯一性检测,此字段不在系统中展示:必填
  37. order.put("orderNumber", "KHY_TEST_123456");
  38. //发货人地址:必填
  39. order.put("consignerAddress", "浙江省杭州市西湖区计量大厦");
  40. //发货人姓名:必填
  41. order.put("consignerName", "快货运测试");
  42. //发货人电话:必填
  43. order.put("consignerPhone", "19012345678");
  44. //提货时间:时间戳,精确到秒:必填
  45. order.put("deliveryTime", System.currentTimeMillis() / 1000);
  46. //提送类型:选填, 1)自提,2)送货
  47. order.put("deliveryType", 1);
  48. //客户单号:选填
  49. order.put("customerOrderNumber", "KHY_TEST_123456");
  50. //预约送到时间:时间戳,精确到秒:选填
  51. order.put("appointArriveTime", System.currentTimeMillis() / 1000);
  52. //收货人地址:可不填
  53. order.put("consigneeAddress", "xxx");
  54. //收货人姓名:可不填
  55. order.put("consigneeName", "xxx");
  56. //收货人电话:可不填
  57. order.put("consigneePhone", "19012345679");
  58. orders.add(order);
  59. result = HttpClientHelper.httpPost(URL + "/order/create_order?access_token=" + accessToken, createOrderParams);
  60. JSONObject createOrderResponse = JSONObject.parseObject(result);
  61. //TMS系统生成的订单号
  62. JSONArray orderNumberList = createOrderResponse.getJSONArray("data");
  63. System.out.println("TMS生成的单号:" + orderNumberList);
  64. System.out.println();
  65. System.out.println("*********************批量查询订单接口*********************");
  66. JSONObject queryOrderParams = new JSONObject();
  67. //页码,1开始
  68. queryOrderParams.put("page", 1);
  69. //单页最大订单数,最大50
  70. queryOrderParams.put("size", 3);
  71. //订单状态,0已撤销,1已下单,2已接单,3已装货,4已签收,1000待处理,无法查看全部状态,不传则默认0已撤销
  72. queryOrderParams.put("state", 1000);
  73. //查询时间类型,created录入时间,deliveryed提货时间,appointArrived预约提货时间,signed签收时间
  74. queryOrderParams.put("timeType", "created");
  75. queryOrderParams.put("startDate", "2019-12-15 00:00:00");
  76. queryOrderParams.put("endDate", "2019-12-18 16:00:00");
  77. result = HttpClientHelper.httpPost(URL + "/order/query_orders?access_token=" + accessToken, queryOrderParams);
  78. JSONObject queryOrderResponse = JSONObject.parseObject(result);
  79. JSONObject queryOrders = queryOrderResponse.getJSONObject("data");
  80. //总数据量
  81. Integer total = queryOrders.getInteger("total");
  82. //页数
  83. Integer page = queryOrders.getInteger("page");
  84. //分页大小
  85. Integer size = queryOrders.getInteger("size");
  86. //总页数
  87. Integer totalPagesCount = queryOrders.getInteger("totalPagesCount");
  88. //订单信息
  89. JSONArray orderList = queryOrders.getJSONArray("elements");
  90. System.out.println(orderList);
  91. }
  92. }