From b051ba6e6f9040793a24487740d173c7cddbc62f Mon Sep 17 00:00:00 2001 From: wuzhifei Date: Thu, 16 Feb 2023 18:35:31 +0800 Subject: [PATCH] feat: 上传则一订单对接API.md --- order/order.md | 1364 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1364 insertions(+), 0 deletions(-) create mode 100644 order/order.md diff --git a/order/order.md b/order/order.md new file mode 100644 index 0000000..bd00e01 --- /dev/null +++ b/order/order.md @@ -0,0 +1,1364 @@ + + +[则一订单对接API](#则一订单对接api) + +[白名单](#白名单) + +[数据加签](#数据加签) + +[数据加密](#数据加密) + +[获取访问凭证](#获取访问凭证) + +[概述](#概述-1) + +[接口信息](#接口信息-1) + +[请求方式:](#请求方式-1) + +[请求地址:](#请求地址-1) + +[Body参数](#body参数-1) + +[返回参数](#返回参数) + +[请求示例](#请求示例-1) + +[Http方式](#http方式) + +[Java-sdk方式 下载SDK](#java-sdk方式---下载sdk-1) + +[返回示例](#返回示例-1) + +[下单](#下单) + +[接口信息](#接口信息-2) + +[请求方式:](#请求方式-2) + +[请求地址:](#请求地址-2) + +[Headers参数](#headers参数-1) + +[Body参数](#body参数-2) + +[请求示例](#请求示例-2) + +[Java-sdk方式 下载SDK](#java-sdk方式----下载sdk) + +[返回示例](#返回示例-2) + +[确认中标](#确认中标) + +[接口信息](#接口信息-3) + +[请求方式:](#请求方式-3) + +[请求地址:](#请求地址-3) + +[Headers参数](#headers参数-2) + +[Body参数](#body参数-3) + +[请求示例](#请求示例-3) + +[Java-sdk方式 下载SDK](#java-sdk方式---下载sdk-2) + +[返回示例](#返回示例-3) + +[取消订单](#取消订单) + +[接口信息](#接口信息-4) + +[请求方式:](#请求方式-4) + +[请求地址:](#请求地址-4) + +[Headers参数](#headers参数-3) + +[Body参数](#body参数-4) + +[请求示例](#请求示例-4) + +[Java-sdk方式 下载SDK](#java-sdk方式---下载sdk-3) + +[返回示例](#返回示例-4) + +[查询车辆定位](#查询车辆定位) + +[接口信息](#接口信息-5) + +[概述](#概述-2) + +[请求方式:](#请求方式-5) + +[请求地址:](#请求地址-5) + +[Headers参数](#headers参数-4) + +[Body参数](#body参数-5) + +[请求示例](#请求示例-5) + +[Java-sdk方式 下载SDK](#java-sdk方式---下载sdk-4) + +[返回示例](#返回示例-5) + +[查询车辆历史轨迹](#查询车辆历史轨迹) + +[接口信息](#接口信息-6) + +[概述](#概述-3) + +[请求方式:](#请求方式-6) + +[请求地址:](#请求地址-6) + +[Headers参数](#headers参数-5) + +[Body参数](#body参数-6) + +[请求示例](#请求示例-6) + +[Java-sdk方式 下载SDK](#java-sdk方式---下载sdk-5) + +[返回示例](#返回示例-6) + +[查询订单操作记录](#查询订单操作记录) + +[接口信息](#接口信息-7) + +[概述](#概述-4) + +[请求方式:](#请求方式-7) + +[请求地址:](#请求地址-7) + +[Headers参数](#headers参数-6) + +[Body参数](#body参数-7) + +[请求示例](#请求示例-7) + +[Java-sdk方式 下载SDK](#java-sdk方式---下载sdk-6) + +[返回示例](#返回示例-7) + +[以下接口需要对接方提供](#以下接口需要对接方提供) + +[报价接口](#报价接口) + +[接口信息](#接口信息-8) + +[概述](#概述-5) + +[请求方式:](#请求方式-8) + +[请求路径:](#请求路径-1) + +[Body参数](#body参数-8) + +[返回示例](#返回示例-8) + +[接单接口](#接单接口) + +[接口信息](#接口信息-9) + +[概述](#概述-6) + +[请求方式:](#请求方式-9) + +[请求路径:](#请求路径-2) + +[Body参数](#body参数-9) + +[推送司机车辆信息](#推送司机车辆信息) + +[接口信息](#接口信息-10) + +[概述](#概述-7) + +[请求方式:](#请求方式-10) + +[请求路径:](#请求路径-3) + +[Body参数](#body参数-10) + +[返回示例](#返回示例-9) + +[推送发车信息](#推送发车信息) + +[接口信息](#接口信息-11) + +[概述](#概述-8) + +[请求方式:](#请求方式-11) + +[请求路径:](#请求路径-4) + +[Body参数](#body参数-11) + +[返回示例](#返回示例-10) + +[推送到车信息](#推送到车信息) + +[接口信息](#接口信息-12) + +[概述](#概述-9) + +[请求方式:](#请求方式-12) + +[请求路径:](#请求路径-5) + +[Body参数](#body参数-12) + +[返回示例](#返回示例-11) + +[Java-sdk下载](#java-sdk下载) + +[2022-03-09更新日志](#2022-03-09更新日志) + +**则一订单对接API** + +则一提供了不同规范的API,调用则一订单服务端API前,需了解开发前须知及调用流程。本文提供了调用则一订单服务端API示例,供开发者参考。 + +**白名单** + +则一服务端API接口访问有IP白名单限制,需要接口调用方提供调用API的服务器IP地址。 + +**数据加签** + +采用md5(32位小写)算法生成签名 + +appKey(则一提供) + appSecret(则一提供) + timestamp(当前时间戳毫秒) + nonce(6位随机码大小写字母数子组合) + data(请求数据) + +**数据加密** + +数据加密采用AES算法 + +加密模式: CBC + +填充方式:PKCS5Padding + +偏移量:iv(则一提供) + +加密内容:appKey(则一提供) + timestamp(当前时间戳毫秒) + nonce(6位随机码大小写字母数子组合) + data(加密数据) + +密钥: appSecret(则一提供) + +输出:base64 + +字符集:utf-8 + +注:无敏感数据则无需加密 + +**获取访问凭证** + +**概述** + +调用则一服务API时,都需要先获取对应权限类型的访问凭证accessToken。访问凭证(accessToken)是由则一权限系统颁发的,用来校验调用者的身份信息,确保调用者具有要执行的操作的权限。 + +**说明**: 在使用accessToken时,请注意: + +- accessToken的有效期默认为30天,有效期内重复获取会返回相同结果,过期后获取会返回新的accessToken。 +- 开发者需要缓存accessToken,用于后续接口的调用。不能频繁调用获取accessToken接口,否则会受到频率拦截。 +- 当调用业务API时,如果返回状态码为401,则说明accessToken不正确或已过期,这时需要重新获取accessToken后再调用对应的API。 + +**接口信息** + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|username|String|是|zhangsan|用户名,则一提供| +|password|String|是|password123|密码,则一提供| +**返回参数** + +|**名称**|**类型**|**示例值**|**描述**| +| :- | :- | :- | :- | +|success|boolean|true|成功标识: true 成功,false 失败| +|businessException|boolean|false|业务异常标识: true 业务异常,false 正常| +|errorCode|String|200|错误码: 200 业务异常,500 系统异常, 空表示无错误| +|message|String|订单号不能为空|错误信息,无错误则返回空| +|result|ZYTokenDto| |accessToken结果数据| +|`    `accessToken|String|000626f15b4b41bba6fe56216a5d2f73|accessToken| +|`    `expiresIn|Integer|2060|有效期限单位秒,accessToken在2060秒后过期| +|`    `tokenType|String|bearer|token类型| +**请求示例** + +**Http方式** + + + +POST /auth-service-api/login/password HTTP/1.1 + +Host:test.shjiuze.cn + +Content-Type:application/json + +{ + +` `"username" : "zeyi", + +` `"password" : "test1111" + +} + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `ZYTokenRequestDto zyTokenRequest = new ZYTokenRequestDto(); + +`        `zyTokenRequest.setUsername("zeyi"); + +`        `zyTokenRequest.setPassword("test1111"); + +`        `String body = gson.toJson(zyTokenRequest); + +`        `HttpResponseData httpResponseData = zyClient.doPost(Constants.TEST\_HOST + Constants.TOKEN\_PATH, body); + +`        `if(httpResponseData == null) { + +`            `throw new TokenException("则一Token请求失败,返回为空!"); + +`       `} + +`        `ZYResponse zyResponse = gson.fromJson(httpResponseData.getBody(), new      TypeToken>(){}.getType()); + +`        `if(!Boolean.TRUE.equals(zyResponse.isSuccess())) {     + +`            `throw new TokenException("则一Token请求返回失败!" + zyResponse.getMessage()); + +`       `} + +`        `if(zyResponse.getResult() == null) {     + +`            `throw new TokenException("则一Token请求返回失败,返回结果为空!" + zyResponse.getMessage()); + +`       `} + +`        `if(StringUtils.isBlank(zyResponse.getResult().getAccessToken())) {     + +`            `throw new TokenException("则一Token请求返回数据异常,AccessToken为空!" + zyResponse.getMessage()); + +`       `} + +`        `// 结果 zyResponse.getResult(); + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"accessToken": "64d7f367-609b-4f7d-a84d-a3d2a0b5ad85", + +`        `"expiresIn": 602105, + +`        `"tokenType": "bearer" + +`   `} + +} + +**下单** + +**接口信息** + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Headers参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|Authorization|String|是    |Bearer a2c5680001|调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。| +|appKey|String|是|0867ef5f23ef6483749e19e1692b|则一提供| +|timestamp|String|是|1643251533306|当前时间戳毫秒值| +|nonce|String|是|gdst9t|6位小写字母数字组合随机串| +|sign|String|是|fa3ed338d6dfe18e7273c8692234ee70|签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成| +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|customerSn|String|否|220101000001|客户委托单号| +|placeOrderTime|Number|是|1643251533306|下单时间,时间戳毫秒值| +|loadTime|Number|是|1643251533306|装货时间,时间戳毫秒值| +|expectArrivalTime|Number|否|1643251533306|期望送达时间,时间戳毫秒值| +|receiptType|String|否|ELECTRON\_TYPE|回单类型:ELECTRON\_TYPE/电子回单,PAPER\_TYPE/纸质回单,NONE/无| +|receiptNumber|Number|否|1|回单张数| +|receiptCode|String|否|A2022012602278|回单号| +|payType|String|否|PAY\_IN\_CASH|付款方式:PAY\_IN\_CASH/现付,PAY\_ON\_DELIVERY/到付,PAY\_ARREARS/欠付,PAY\_MONTH/月结,PAY\_BACK/回付,PAY\_MULTIPLE/多笔付,PAY\_FREE/免费| +|lineName|String|否|上海-天津-北京|线路名称| +|remark|String|否|需要雨布和尾板|订单备注| +|station|OrderStation[]|是| |订单经停点| +|`    `stationId|String|否|123abc|站点id| +|`    `stationName|String|否|上海顺丰青浦站点|站点名称| +|`    `provinceCode|String|否|310000|省份编号| +|`    `provinceName|String|是|上海|省份名称| +|`    `cityCode|String|否|310100|城市编号| +|`    `cityName|String|是|上海市|城市名称| +|`    `areaCode|String|否|310118|区域编号| +|`    `areaName|String|是|青浦区|区域名称| +|`    `address|String|是|纪鹤公路1988号|详细地址| +|`    `lat|String|是|36.221825|纬度| +|`    `lng|String|是|120.632908|经度| +|`    `contactName|String|否|张三|联系人| +|`    `contactMobile|String|否|18801000001|联系人电话| +|`    `loadFlag|String|是|true|装货标识| +|`    `unloadFlag|String|是|false|卸货标识| +|`    `expectArrivalTime|Number|否|1643251533306|预计到达时间,时间戳毫秒值| +|`    `expectDepartTime|Number|否|1643251533306|预计发车时间,时间戳毫秒值| +|`    `sort|Number|否|1|经停点顺序,如果不传则默认按数组顺序| +|goods|OrderGoods[]|否| |订单货物信息| +|`    `barCode|String|否|21616162626|商品条码| +|`    `skuId|String|否|1223233536436|商品sku\_id| +|`    `name|String|是|鞋子|货物名称| +|`    `packageType|String|否| |包装规格| +|`    `piece|Number|否|200|件数| +|`    `weight|Number|否|200000|重量| +|`    `volume|Number|否|50|体积| +|addService|OrderAddService[]|否| |增值服务| +|`    `serviceName|String|是|包装服务|服务名称| +|tags|OrderTag[]|否| |订单标签| +|`  `tagName|String|是|易碎物品|标签名称| +|vehicleDemands|OrderVehicleDemand[]|否| |车辆需求| +|`  `demandVanType|String|是|MOTOR\_VAN|需求厢型:MOTOR\_VAN/厢车,GAOLAN\_VAN/高栏,SLAB\_VAN/平板,REFRIGERATOR\_CAR/冷藏,IVECO/依维柯,JINBEI/金杯,MINI\_VAN/小面包,ELSE\_VAN/其他| +|demandSpecification|String|是|9.6|需求车型:2.7/3.8/4.2/6.8/7.6/9.6/11/12.5/13.5/15/16.5/17.5/19/21| +|`  `demandNumber|Number|否|1|为空则默认1| +|`  `vehicleDemand|String|否|车辆需要带雨布|车辆要求描述| +**请求示例** + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `String jsonData = "下单Body参数JSON数据"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `HttpResponseData httpResponseData = + +zyClient.doPost(Constants.TEST\_HOST + "/oms-service-api/order/add", "accessToken", jsonData); + +`        `if(httpResponseData == null) {     + +`            `throw new BusinessException("则一请求失败,返回结果为空!"); + +`         `} + +`        `if(httpResponseData.getStatus() == HttpURLConnection.HTTP\_UNAUTHORIZED) {   + +`        `//重新获取token再次请求     + +`        `httpResponseData = zyClient.doPost(Constants.TEST\_HOST + + +`        `"/oms-service-api/order/add", "accessToken", jsonData); + +`       `} + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + +**确认中标** + +**接口信息** + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Headers参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|Authorization|String|是    |Bearer a2c5680001|调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。| +|appKey|String|是|0867ef5f23ef6483749e19e1692b|则一提供| +|timestamp|String|是|1643251533306|当前时间戳毫秒值| +|nonce|String|是|gdst9t|6位小写字母数字组合随机串| +|sign|String|是|fa3ed338d6dfe18e7273c8692234ee70|签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成| +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|否|220101000001|则一订单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|confirmId|String|是|220101000001|中标报价id| +|quotePrice|Number|是|10000|中标价格| +**请求示例** + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `String jsonData = "确认中标Body参数JSON数据"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `HttpResponseData httpResponseData = + +zyClient.doPost(Constants.TEST\_HOST + "/oms-service-api/order/confirmBid", "accessToken", jsonData); + +`        `if(httpResponseData == null) {     + +`            `throw new BusinessException("则一请求失败,返回结果为空!"); + +`         `} + +`        `if(httpResponseData.getStatus() == HttpURLConnection.HTTP\_UNAUTHORIZED) {   + +`        `//重新获取token再次请求     + +`        `httpResponseData = zyClient.doPost(Constants.TEST\_HOST + + +`        `"/oms-service-api/order/confirmBid", "accessToken", jsonData); + +`       `} + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号", + +`        `"confirmId": "中标报价id", + +`        `"quotePrice": "中标价格" + +`   `} + +} + +**取消订单** + +**接口信息** + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Headers参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|Authorization|String|是    |Bearer a2c5680001|调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。| +|appKey|String|是|0867ef5f23ef6483749e19e1692b|则一提供| +|timestamp|String|是|1643251533306|当前时间戳毫秒值| +|nonce|String|是|gdst9t|6位小写字母数字组合随机串| +|sign|String|是|fa3ed338d6dfe18e7273c8692234ee70|签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成| +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|否|220101000001|则一订单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|cancelRemark|String|否|货量不足|取消原因| +**请求示例** + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `String jsonData = "取消订单Body参数JSON数据"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `HttpResponseData httpResponseData = + +zyClient.doPost(Constants.TEST\_HOST + "/oms-service-api/order/cancel", "accessToken", jsonData); + +`        `if(httpResponseData == null) {     + +`            `throw new BusinessException("则一请求失败,返回结果为空!"); + +`         `} + +`        `if(httpResponseData.getStatus() == HttpURLConnection.HTTP\_UNAUTHORIZED) {   + +`        `//重新获取token再次请求     + +`        `httpResponseData = zyClient.doPost(Constants.TEST\_HOST + + +`        `"/oms-service-api/order/cancel", "accessToken", jsonData); + +`       `} + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + +**查询车辆定位** + +**接口信息** + +**概述** + +可以通过该接口查询车辆当前位置,该接口为收费接口。 + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Headers参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|Authorization|String|是    |Bearer a2c5680001|调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。| +|appKey|String|是|0867ef5f23ef6483749e19e1692b|则一提供| +|timestamp|String|是|1643251533306|当前时间戳毫秒值| +|nonce|String|是|gdst9t|6位小写字母数字组合随机串| +|sign|String|是|fa3ed338d6dfe18e7273c8692234ee70|签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成| +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|D220101000001|则一订单号| +|waybillCode|String|是|Y220101000001|则一运单号| +|customerOrderCode|String|是|220101000001|客户订单号,订单唯一标识| +|licenseNumber|String|是|沪DP2312|车牌号| +**请求示例** + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `String jsonData = "车辆位置查询Body参数JSON数据"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `HttpResponseData httpResponseData = + +zyClient.doPost(Constants.TEST\_HOST + "/oms-service-api/vehicle/location", "accessToken", jsonData); + +`        `if(httpResponseData == null) {     + +`            `throw new BusinessException("则一请求失败,返回结果为空!"); + +`         `} + +`        `if(httpResponseData.getStatus() == HttpURLConnection.HTTP\_UNAUTHORIZED) {   + +`        `//重新获取token再次请求     + +`        `httpResponseData = zyClient.doPost(Constants.TEST\_HOST + + +`        `"/oms-service-api/vehicle/location", "accessToken", jsonData); + +`       `} + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success":true, + +`    `"businessException":false, + +`    `"result":{ + +`        `"lng":"106.1722328011559", //经度 + +`        `"lat":"37.94834927106783", //纬度 + +`        `"speed":0, //速度,km/h + +`        `"time":"2022-02-07 19:33:19", //定位时间 + +`        `"address":"宁夏回族自治区吴忠市利通区清二沟,东方向,296.5米" //定位地点 + +`   `} + +} + +**查询车辆历史轨迹** + +**接口信息** + +**概述** + +可以通过该接口查询车辆历史运行轨迹数据,该接口为收费接口。 + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Headers参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|Authorization|String|是    |Bearer a2c5680001|调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。| +|appKey|String|是|0867ef5f23ef6483749e19e1692b|则一提供| +|timestamp|String|是|1643251533306|当前时间戳毫秒值| +|nonce|String|是|gdst9t|6位小写字母数字组合随机串| +|sign|String|是|fa3ed338d6dfe18e7273c8692234ee70|签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成| +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|D220101000001|则一订单号| +|waybillCode|String|是|Y220101000001|则一运单号| +|customerOrderCode|String|是|220101000001|客户订单号,订单唯一标识| +|licenseNumber|String|是|沪DP2312|车牌号| +|startTime|Number|是|1643251533306|开始时间| +|endTime|Number|是|1643251533308|结束时间| +**请求示例** + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `String jsonData = "车辆轨迹查询Body参数JSON数据"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `HttpResponseData httpResponseData = + +zyClient.doPost(Constants.TEST\_HOST + "/oms-service-api/vehicle/track", "accessToken", jsonData); + +`        `if(httpResponseData == null) {     + +`            `throw new BusinessException("则一请求失败,返回结果为空!"); + +`         `} + +`        `if(httpResponseData.getStatus() == HttpURLConnection.HTTP\_UNAUTHORIZED) {   + +`        `//重新获取token再次请求     + +`        `httpResponseData = zyClient.doPost(Constants.TEST\_HOST + + +`        `"/oms-service-api/vehicle/track", "accessToken", jsonData); + +`       `} + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success":true, + +`    `"businessException":false, + +`    `"result":[ + +`       `{ + +`            `"lon":"116.6709722499687", //经度 + +`            `"lat":"39.64092201495669", //纬度 + +`            `"gtm":"2022-02-07 18:55:13", //gps时间 + +`            `"spd":"249", //速度 除以10为km/h + +`            `"hgt":"4", //海拔m + +`            `"agl":"257" //正北方向夹角 + +`       `}, + +`       `{ + +`            `"lon":"116.66919560752942", + +`            `"lat":"39.64070361333219", + +`            `"gtm":"2022-02-07 18:55:33", + +`            `"spd":"272", + +`            `"hgt":"6", + +`            `"agl":"260" + +`       `} + +`   `] + +} + +**查询订单操作记录** + +**接口信息** + +**概述** + +可以通过该接口查询订单的操作记录。 + +**请求方式:** + +post + +**请求地址:** + +- 生产: +- 测试: + +**Headers参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|Authorization|String|是    |Bearer a2c5680001|调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。| +|appKey|String|是|0867ef5f23ef6483749e19e1692b|则一提供| +|timestamp|String|是|1643251533306|当前时间戳毫秒值| +|nonce|String|是|gdst9t|6位小写字母数字组合随机串| +|sign|String|是|fa3ed338d6dfe18e7273c8692234ee70|签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成| +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|否|220101000001|则一订单号| +|customerOrderCode|String|是|220101000001|客户订单号,订单唯一标识| +**请求示例** + +**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** + + + +public class Sample { + +`    `public static void main(String[] args\_) { + +`        `String appKey = "appkey"; + +`        `String appSecret = "appSecret"; + +`        `String jsonData = "订单操作记录Body参数JSON数据"; + +`        `ZYClient zyClient = new ZYClient(appKey, appSecret); + +`        `HttpResponseData httpResponseData = + +zyClient.doPost(Constants.TEST\_HOST + "/oms-service-api/orderOperateRecord/getList", "accessToken", jsonData); + +`        `if(httpResponseData == null) {     + +`            `throw new BusinessException("则一请求失败,返回结果为空!"); + +`         `} + +`        `if(httpResponseData.getStatus() == HttpURLConnection.HTTP\_UNAUTHORIZED) {   + +`        `//重新获取token再次请求     + +`        `httpResponseData = zyClient.doPost(Constants.TEST\_HOST + + +`        `"/oms-service-api/orderOperateRecord/getList", "accessToken", jsonData); + +`       `} + +`   `} + +} + +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": [ + +`       `{ + +`            `"orderCode": "220101000001", + +`            `"operateType": "ORDER\_XXX", + +`            `"operateContent": "操作详情XXXX1", + +`            `"operateTime": "2022-02-10 18:23:30", + +`            `"operateUser": "张三" + +`       `}, + +`       `{ + +`            `"orderCode": "220101000001", + +`            `"operateType": "ORDER\_XXX", + +`            `"operateContent": "操作详情XXXX2", + +`            `"operateTime": "2022-02-08 12:43:30", + +`            `"operateUser": "李四" + +`       `} + +`   `] + +} + + + +**以下接口需要对接方提供** + +**报价接口** + +**接口信息** + +**概述** + +则一调用该接口进行报价,可以进行多次报价。 + +**请求方式:** + +post + +**请求路径:** + +/quotePrice + +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|220101000001|则一订单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|quoteId|String|是|1a2111bacd56|报价id,报价唯一标识| +|quotePrice|Number|是|10000|报价金额| +|contactName|String|否|张三|报价联系人| +|contactMobile|String|否|18801000000|报价联系电话| +|quoteInvalidTime|Number|否|1643251533306|报价有效期,时间戳毫秒值| +|operateTime|Number|是|1643251533306|操作时间戳| +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + +**接单接口** + +**接口信息** + +**概述** + +则一调用该接口推送运单号及参考运费范围。 + +**请求方式:** + +post + +**请求路径:** + +/receiveOrder + +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|220101000001|则一订单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|startTotalPrice|Number|是|18100|参考总金额起始值| +|endTotalPrice|Number|是|21000|参考总金额结束值| +|WaybillList|Waybill[]|是| |运单集合| +|`    `waybillCode|String|是|Y220101000001|则一运单号| +|`    `startPrice|Number|是|18100|参考金额起始值| +|`    `endPrice|Number|是|21000|参考金额结束值| +|`    `vanType|String|是|MOTOR\_VAN|厢型| +|`    `specification|String|是|9.6|车型| +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + + + +**推送司机车辆信息** + +**接口信息** + +**概述** + +则一调用该接口推送订单司机和车辆信息,可以进行多次推送,以操作时间戳最新一次推送的司机车辆信息为准。 + +**请求方式:** + +post + +**请求路径:** + +/assignVehicle + +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|220101000001|则一订单号| +|waybillCode|String|是|Y220101000001|则一运单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|driverName|String|是|张三|司机姓名| +|driverMobile|String|是|18801000000|司机手机号| +|licenseNumber|String|是|沪DP2312|车牌号| +|trailerLicenseNumber|String|否|陕K7C72挂|挂车车牌号| +|operateTime|Number|是|1643251533306|操作时间戳| +|weight|Number|否|200000|重量| +|volume|Number|否|16|体积| +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + + + +**推送发车信息** + +**接口信息** + +**概述** + +则一调用该接口推送发车运输数据。 + +**请求方式:** + +post + +**请求路径:** + +/departVehicle + +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|220101000001|则一订单号| +|waybillCode|String|是|Y220101000001|则一运单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|departTime|Number|是|1643251533306|发车时间戳| +|operateTime|Number|是|1643251533306|操作时间戳| +|weight|Number|否|200000|重量| +|volume|Number|否|16|体积| +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + +**推送到车信息** + +**接口信息** + +**概述** + +则一调用该接口推送到达数据。 + +**请求方式:** + +post + +**请求路径:** + +/arriveVehicle + +**Body参数** + +|**名称**|**类型**|**必填**|**示例值**|**描述**| +| :- | :- | :- | :- | :- | +|code|String|是|220101000001|则一订单号| +|waybillCode|String|是|Y220101000001|则一运单号| +|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| +|arriveTime|Number|是|1643251533306|到车时间戳| +|operateTime|Number|是|1643251533306|操作时间戳| +**返回示例** + + + +{ + +`    `"success": true, + +`    `"businessException": false, + +`    `"errorCode": null, + +`    `"message": null, + +`    `"result": { + +`        `"code": "则一订单号", + +`        `"customerOrderCode": "客户订单号" + +`   `} + +} + +**Java-sdk下载** + +[zy-java-sdk](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar) + + + +**2022-03-09更新日志** + +为了保证接口的通用性,本次涉及到改动的信息如下 + +1. [下单](#下单): 接口返回值移除子单集合,通过接单接口推送。 +1. [接单接口](#接单接口):由推送参考价改为接单接口,推送运单集合及每个运单的参考价格。 +1. 对接接口中子单号subCode参数命名更改为运单号waybillCode。 + + -- libgit2 0.21.0