From 7f03dbab1ecdfa391487e8be78001e272173fcb2 Mon Sep 17 00:00:00 2001 From: wuzhifei Date: Thu, 16 Feb 2023 18:49:25 +0800 Subject: [PATCH] feat: 上传则一订单对接API.md --- order/order.md | 1695 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 614 insertions(+), 1081 deletions(-) diff --git a/order/order.md b/order/order.md index bd00e01..1de32f4 100644 --- a/order/order.md +++ b/order/order.md @@ -1,1364 +1,897 @@ - -[则一订单对接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示例,供开发者参考。 -**白名单** +#### 白名单 则一服务端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。 +* accessToken的有效期默认为30天,有效期内重复获取会返回相同结果,过期后获取会返回新的accessToken。 +* 开发者需要缓存accessToken,用于后续接口的调用。不能频繁调用获取accessToken接口,否则会受到频率拦截。 +* 当调用业务API时,如果返回状态码为401,则说明accessToken不正确或已过期,这时需要重新获取accessToken后再调用对应的API。 -**接口信息** +##### 接口信息 -**请求方式:** +###### 请求方式: post -**请求地址:** +###### 请求地址: -- 生产: -- 测试: +* 生产:https://gw.shjiuze.cn/auth-service-api/login/password +* 测试:https://test.shjiuze.cn/auth-service-api/login/password -**Body参数** +###### Body参数 -|**名称**|**类型**|**必填**|**示例值**|**描述**| -| :- | :- | :- | :- | :- | -|username|String|是|zhangsan|用户名,则一提供| -|password|String|是|password123|密码,则一提供| -**返回参数** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| -------- | ------ | ---- | ----------- | ---------------- | +| 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方式** +| 名称 | 类型 | 示例值 | 描述 | +| ------------------------------ | ---------- | -------------------------------- | -------------------------------------------------- | +| 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方式 +```http POST /auth-service-api/login/password HTTP/1.1 - Host:test.shjiuze.cn - Content-Type:application/json { - -` `"username" : "zeyi", - -` `"password" : "test1111" - + "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)** - - +###### Java-sdk方式 [下载SDK](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar) +```java 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(); - -`   `} - + 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(); + } } +``` -**返回示例** - - +##### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"accessToken": "64d7f367-609b-4f7d-a84d-a3d2a0b5ad85", - -`        `"expiresIn": 602105, - -`        `"tokenType": "bearer" - -`   `} - + "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)** - - - +###### 请求地址: + +* 生产:https://gw.shjiuze.cn/oms-service-api/order/add +* 测试:https://test.shjiuze.cn/oms-service-api/order/add + +###### 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[] | 否 | | 增值服务 | +|     serviceType | String | 否 | | 服务类型 | +|     serviceName | String | 是 | 包装服务 | 服务名称 | +|     serviceDemand | 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) + +```java 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); - -`       `} - -`   `} - + 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); + } + } } +``` -**返回示例** - - +##### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"code": "则一订单号", - -`        `"customerOrderCode": "客户订单号" - -`   `} - + "success": true, + "businessException": false, + "errorCode": null, + "message": null, + "result": { + "code": "则一订单号", + "customerOrderCode": "客户订单号" + } } +``` -**确认中标** +#### 确认中标 -**接口信息** +##### 接口信息 -**请求方式:** +###### 请求方式: post -**请求地址:** +###### 请求地址: -- 生产: -- 测试: +* 生产:https://gw.shjiuze.cn/oms-service-api/order/confirmBid +* 测试:https://test.shjiuze.cn/oms-service-api/order/confirmBid -**Headers参数** +###### 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参数** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ------------- | ------ | -------------------------- | -------------------------------- | ------------------------------------------------------------ | +| 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位小写)算法生成 | -|**名称**|**类型**|**必填**|**示例值**|**描述**| -| :- | :- | :- | :- | :- | -|code|String|否|220101000001|则一订单号| -|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| -|confirmId|String|是|220101000001|中标报价id| -|quotePrice|Number|是|10000|中标价格| -**请求示例** +###### Body参数 -**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | -------------------------- | ------------ | ------------------------ | +| 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) +```java 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); - -`       `} - -`   `} - + 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); + } + } } +``` -**返回示例** - - +##### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"code": "则一订单号", - -`        `"customerOrderCode": "客户订单号", - -`        `"confirmId": "中标报价id", - -`        `"quotePrice": "中标价格" - -`   `} - + "success": true, + "businessException": false, + "errorCode": null, + "message": null, + "result": { + "code": "则一订单号", + "customerOrderCode": "客户订单号", + "confirmId": "中标报价id", + "quotePrice": "中标价格" + } } +``` -**取消订单** +#### 取消订单 -**接口信息** +##### 接口信息 -**请求方式:** +###### 请求方式: post -**请求地址:** +###### 请求地址: -- 生产: -- 测试: +* 生产:https://gw.shjiuze.cn/oms-service-api/order/cancel +* 测试:https://test.shjiuze.cn/oms-service-api/order/cancel -**Headers参数** +###### 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参数** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ------------- | ------ | -------------------------- | -------------------------------- | ------------------------------------------------------------ | +| 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位小写)算法生成 | -|**名称**|**类型**|**必填**|**示例值**|**描述**| -| :- | :- | :- | :- | :- | -|code|String|否|220101000001|则一订单号| -|customerOrderCode|String|是    |220101000001|客户订单号,订单唯一标识| -|cancelRemark|String|否|货量不足|取消原因| -**请求示例** +###### Body参数 -**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | -------------------------- | ------------ | ------------------------ | +| 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) +```java 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); - -`       `} - -`   `} - + 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); + } + } } +``` -**返回示例** - - +##### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"code": "则一订单号", - -`        `"customerOrderCode": "客户订单号" - -`   `} - + "success": true, + "businessException": false, + "errorCode": null, + "message": null, + "result": { + "code": "则一订单号", + "customerOrderCode": "客户订单号" + } } +``` -**查询车辆定位** +#### 查询车辆定位 -**接口信息** +##### 接口信息 -**概述** +###### 概述 可以通过该接口查询车辆当前位置,该接口为收费接口。 -**请求方式:** +###### 请求方式: post -**请求地址:** +###### 请求地址: -- 生产: -- 测试: +* 生产:https://gw.shjiuze.cn/oms-service-api/vehicle/location +* 测试:https://test.shjiuze.cn/oms-service-api/vehicle/location -**Headers参数** +###### 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参数** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ------------- | ------ | -------------------------- | -------------------------------- | ------------------------------------------------------------ | +| 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位小写)算法生成 | -|**名称**|**类型**|**必填**|**示例值**|**描述**| -| :- | :- | :- | :- | :- | -|code|String|是|D220101000001|则一订单号| -|waybillCode|String|是|Y220101000001|则一运单号| -|customerOrderCode|String|是|220101000001|客户订单号,订单唯一标识| -|licenseNumber|String|是|沪DP2312|车牌号| -**请求示例** +###### Body参数 -**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | ---- | ------------- | ------------------------ | +| 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) +```java 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); - -`       `} - -`   `} - + 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); + } + } } +``` -**返回示例** - - +##### 返回示例 +```json { - -`    `"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米" //定位地点 - -`   `} - + "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 -**请求地址:** +###### 请求地址: -- 生产: -- 测试: +* 生产:https://gw.shjiuze.cn/oms-service-api/vehicle/track +* 测试:https://test.shjiuze.cn/oms-service-api/vehicle/track -**Headers参数** +###### 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参数** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ------------- | ------ | -------------------------- | -------------------------------- | ------------------------------------------------------------ | +| 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位小写)算法生成 | -|**名称**|**类型**|**必填**|**示例值**|**描述**| -| :- | :- | :- | :- | :- | -|code|String|是|D220101000001|则一订单号| -|waybillCode|String|是|Y220101000001|则一运单号| -|customerOrderCode|String|是|220101000001|客户订单号,订单唯一标识| -|licenseNumber|String|是|沪DP2312|车牌号| -|startTime|Number|是|1643251533306|开始时间| -|endTime|Number|是|1643251533308|结束时间| -**请求示例** +###### Body参数 -**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | ---- | ------------- | ------------------------ | +| 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) +```java 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); - -`       `} - -`   `} - + 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); + } + } } +``` -**返回示例** - - +##### 返回示例 +```json { + "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" + } + ] +} +``` -`    `"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 -**请求地址:** +###### 请求地址: -- 生产: -- 测试: +* 生产:https://gw.shjiuze.cn/oms-service-api/order/getOperateList +* 测试:https://test.shjiuze.cn/oms-service-api/order/getOperateList -**Headers参数** +###### 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参数** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ------------- | ------ | -------------------------- | -------------------------------- | ------------------------------------------------------------ | +| 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位小写)算法生成 | -|**名称**|**类型**|**必填**|**示例值**|**描述**| -| :- | :- | :- | :- | :- | -|code|String|否|220101000001|则一订单号| -|customerOrderCode|String|是|220101000001|客户订单号,订单唯一标识| -**请求示例** +###### Body参数 -**Java-sdk方式 [下载SDK**](https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/jar/java-sdk/zy-java-sdk-1.0.0.jar)** +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | ---- | ------------ | ------------------------ | +| 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) +```java 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); - -`       `} - -`   `} - + 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); + } + } } +``` -**返回示例** - - +##### 返回示例 +```json { + "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": "李四" + } + ] +} +``` -`    `"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|操作时间戳| -**返回示例** +###### 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 | 操作时间戳 | +###### 返回示例 +```json { + "success": true, + "businessException": false, + "errorCode": null, + "message": null, + "result": { + "code": "则一订单号", + "customerOrderCode": "客户订单号" + } +} +``` -`    `"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|车型| -**返回示例** +###### 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 | 车型 | +###### 返回示例 +```json { + "success": true, + "businessException": false, + "errorCode": null, + "message": null, + "result": { + "code": "则一订单号", + "customerOrderCode": "客户订单号" + } +} +``` -`    `"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|体积| -**返回示例** +###### 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 | 体积 | +###### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"code": "则一订单号", - -`        `"customerOrderCode": "客户订单号" - -`   `} - + "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|体积| -**返回示例** +###### Body参数 +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | -------------------------- | ------------- | ------------------------ | +| code | String | 是 | 220101000001 | 则一订单号 | +| waybillCode | String | 是   | Y220101000001 | 则一运单号 | +| customerOrderCode | String | 是     | 220101000001 | 客户订单号,订单唯一标识 | +| departTime | Number | 是 | 1643251533306 | 发车时间戳 | +| operateTime | Number | 是 | 1643251533306 | 操作时间戳 | +| weight | Number | 否 | 200000 | 重量 | +| volume | Number | 否 | 16 | 体积 | +###### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"code": "则一订单号", - -`        `"customerOrderCode": "客户订单号" - -`   `} - + "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|操作时间戳| -**返回示例** +###### Body参数 +| 名称 | 类型 | 必填 | 示例值 | 描述 | +| ----------------- | ------ | -------------------------- | ------------- | ------------------------ | +| code | String | 是 | 220101000001 | 则一订单号 | +| waybillCode | String | 是    | Y220101000001 | 则一运单号 | +| customerOrderCode | String | 是     | 220101000001 | 客户订单号,订单唯一标识 | +| arriveTime | Number | 是 | 1643251533306 | 到车时间戳 | +| operateTime | Number | 是 | 1643251533306 | 操作时间戳 | +###### 返回示例 +```json { - -`    `"success": true, - -`    `"businessException": false, - -`    `"errorCode": null, - -`    `"message": null, - -`    `"result": { - -`        `"code": "则一订单号", - -`        `"customerOrderCode": "客户订单号" - -`   `} - + "success": true, + "businessException": false, + "errorCode": null, + "message": null, + "result": { + "code": "则一订单号", + "customerOrderCode": "客户订单号" + } } +``` -**Java-sdk下载** +### 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更新日志** +### 2022-03-09更新日志 为了保证接口的通用性,本次涉及到改动的信息如下 -1. [下单](#下单): 接口返回值移除子单集合,通过接单接口推送。 -1. [接单接口](#接单接口):由推送参考价改为接单接口,推送运单集合及每个运单的参考价格。 -1. 对接接口中子单号subCode参数命名更改为运单号waybillCode。 - - +1. [下单](http://open-doc.shjiuze.cn/order.html#下单): 接口返回值移除子单集合,通过接单接口推送。 +2. [接单接口](http://open-doc.shjiuze.cn/order.html#接单接口):由推送参考价改为接单接口,推送运单集合及每个运单的参考价格。 +3. 对接接口中子单号subCode参数命名更改为运单号waybillCode。 \ No newline at end of file -- libgit2 0.21.0