订单分配司机
通过该接口,外部系统能够在oTMS系统中将订单直接分配给司机和卡车。
版本号 | 文档 | 说明 |
---|---|---|
0.1 | 当前版本文档 |
oTMS同时在生产环境和测试环境中提供Web Service接口,其中测试环境用于集成测试。两种环境下都需要由oTMS系统管理员分配API帐号密码后方可使用。
注意: 请合理地调用公共接口。如果发现存在异常调用或者对我们系统性能造成影响等情况,会对API账号的调用进行限制,甚至停用。
目前对该接口的调用限制为每个公司每秒最多10个请求
注意: 请合理地调用公共接口。如果发现存在异常调用或者对我们系统性能造成影响等情况,会对API账号的调用进行限制,甚至停用。
目前对该接口的调用限制为每个公司每秒最多10个请求
目前对该接口的调用限制为每个公司每秒最多10个请求
公共参数
环境 | HTTP请求方法 | HTTPS请求地址 | 请求主体MIME类型 | 响应主体MIME类型 |
---|---|---|---|---|
正式环境 | POST | https://login.otms.cn/ws/assignDriver | application/xml | application/xml |
沙箱环境 | POST | https://demo.otms.cn/ws/assignDriver | application/xml | application/xml |
请求参数
字段名 | 位置 | 是否必填 | 描述 | Schema |
---|---|---|---|---|
body | body | 是 | 订单分配司机请求 | AssignDriverRequest |
Authorization | header | Basic Authorization。如果不为空,则优先使用该值作身份认证。否则使用请求报文中的用户名与密码 | string |
响应参数
状态码 | 描述 | 响应模型 |
---|---|---|
200 | successful operation | AssignDriverResponse |
AssignDriverRequest
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
version | string | 是 | 请求的版本号。当前版本号为0.1 | |
login | string | 否 | 用户名。用于 API 调用者身份认证。如果请求头中的Authorization不为空,则该值会被忽略。 | |
password | string | 否 | 密码。用于 API 调用者身份认证。如果请求头中的Authorization不为空,则该值会被忽略。 | |
driverAssignments | array[DriverAssignment] | 否 | 订单分配司机列表 |
AssignDriverResponse
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
version | string | 是 | 响应版本号 | |
responseCode | string | 否 | 全局的反馈代码 | |
successfulAssignments | integer (int32) | 是 | 成功的分配操作数量 | |
assignResults | array[AssignResult] | 否 | 分配操作列表 |
AssignResult
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
sequence | integer (int32) | 否 | 序列数 | |
assignStatus | string | 否 | 分配操作的结果,可以取下列两个值: DISPATCHED - 分配成功,未发生错误 FAILED - 分配失败 |
|
assignedOrders | integer (int32) | 否 | 该次分配操作中分配给该司机的订单数量。 | |
orderNumbers | array[string] | 否 | oTMS 订单号的列表,代表分配操作中分配给司机的所有订单。 | |
responseInfos | array[ResponseInfo] | 否 | 司机卡车以及响应码信息列表 | |
responseCodes | array[string] | 否 | - |
DriverAssignment
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
sequence | integer (int32) | 否 | 序列数 | |
clientCode | string | 否 | 订单的客户代码。仅适用于供应商账户。 | |
orderNumber | string | 否 | 订单的oTMS订单号。该字段与erpNumber字段至少提供一项。 | |
erpNumber | string | 否 | 订单的ERP单号。该字段与orderNumber字段至少提供一项。 | |
branch | string | 否 | 订单的分支名称。 | |
ignoreOrderMatch | boolean | 否 | 是否忽略车辆类型是否与订单匹配,默认为否 | |
driverTruckInfos | array[DriverTruckInfo] | 否 | 司机卡车信息列表 | |
matchTariff | boolean | 否 | 是否匹配价格文件 | |
tariffSelectionMode | string | 否 | 价格文件匹配规则 |
DriverTruckInfo
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
truckPlate | string | 否 | 卡车的车牌号。该字段与driverName、driverMobile字段至少提供一项。 | |
driverName | string | 否 | 司机的姓名。该字段与truckPlate、driverMobile字段至少提供一项。 | |
driverMobile | string | 否 | 司机的手机号。该字段与truckPlate、driverName字段至少提供一项。 | |
ignoreTransitCheck | boolean | 否 | 是否忽略在途校验,默认为否 |
ResponseInfo
字段名 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
truckPlate | string | 否 | 订单分配给的卡车车牌号。 | |
driverName | string | 否 | 订单分配给的司机姓名。 | |
driverMobile | string | 否 | 订单分配给的司机手机号。 | |
responseCodes | array[string] | 否 | 返回码列表,描述了详细的分配结果。 |
请求示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assignDriverRequest version="0.1" login="username" password="password">
<driverAssignments>
<driverAssignment sequence="1">
<clientCode>TestClient</clientCode>
<erpNumber>ERP001</erpNumber>
<branch>Shanghai DC</branch>
<driverTruckInfos>
<driverTruckInfo>
<truckPlate>沪A12345</truckPlate>
<driverName>张三</driverName>
<driverMobile>12345678901</driverMobile>
</driverTruckInfo>
<driverTruckInfo>
<truckPlate>沪K22222</truckPlate>
<driverName>Jason04</driverName>
<driverMobile>52345678905</driverMobile>
</driverTruckInfo>
</driverTruckInfos>
</driverAssignment>
<driverAssignment sequence="2">
<orderNumber>TEST000002</orderNumber>
<driverTruckInfos>
<driverTruckInfo>
<truckPlate>沪K12221</truckPlate>
<driverName>Jason04</driverName>
<driverMobile>52345678905</driverMobile>
</driverTruckInfo>
</driverTruckInfos>
</driverAssignment>
</driverAssignments>
</assignDriverRequest>
响应示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assignDriverResponse version="0.1">
<responseCode/>
<successfulAssignments>1</successfulAssignments>
<assignResults>
<assignResult sequence="1">
<assignStatus>DISPATCHED</assignStatus>
<assignedOrders>1</assignedOrders>
<orderNumbers>
<orderNumber>TEST000001-1</orderNumber>
</orderNumbers>
<responseInfos>
<responseInfo>
<truckPlate>沪A12345</truckPlate>
<driverName>张三</driverName>
<driverMobile>12345678901</driverMobile>
</responseInfo>
<responseInfo>
<truckPlate>沪K22222</truckPlate>
<driverName>Jason04</driverName>
<driverMobile>52345678905</driverMobile>
</responseInfo>
</responseInfos>
</assignResult>
<assignResult sequence="2">
<assignStatus>FAILED</assignStatus>
<responseInfos>
<responseInfo>
<truckPlate>沪K12221</truckPlate>
<driverName>Jason04</driverName>
<driverMobile>52345678905</driverMobile>
<responseCodes>
<responseCode>1133</responseCode>
</responseCodes>
</responseInfo>
</responseInfos>
</assignResult>
</assignResults>
</assignDriverResponse>
全局反馈代码
反馈代码 | 说明 |
0 | 客户验证失败。 |
1 | 不支持的请求版本。 |
单个请求反馈代码
反馈代码 | 说明 |
1101 | 请求数据未通过检查。 |
1102 | 客户代码不存在(仅适用于供应商账户)。 |
1103 | 客户代码与订单不匹配(仅适用于供应商账户)。 |
1105 | 调用者没有该地区的权限(适用于地区用户)。 |
1106 | 未找到地区。 |
1110 | 未提供订单信息。 |
1111 | 未找到订单。 |
1112 | 匹配到多条订单。 |
1113 | 提供的oTMS订单号与ERP单号不匹配。 |
1115 | 地区与订单地区不匹配。 |
1116 | 订单不在待分配状态(收件箱,已释放,或者确认分配)。 |
1120 | 未匹配到拆分后的子订单。可以是无法通过地区名匹配到,或订单已经被分配了。 |
1130 | 未提供卡车与司机信息。 |
1131 | 未找到司机。 |
1132 | 找到多个司机。 |
1133 | 未找到卡车。 |
1139 | 卡车或司机未与其他司机/卡车连 接,或匹配到的卡车和司机未连接。 |
1140 | 卡车不适用于订单。 |
1141 | 匹配到的司机已在途,且绑定的卡车不匹配。 |
1148 | 订单已在运单中,不能单独分配司机给该订单,只能分配给整个运单。 |
1200 | 其他错误。 |