oTMS logo 开放平台
Documentation Help

订单分配司机

通过该接口,外部系统能够在oTMS系统中将订单直接分配给司机和卡车。

版本号 文档 说明
0.1 当前版本文档

配置说明

oTMS同时在生产环境和测试环境中提供Web Service接口,其中测试环境用于集成测试。两种环境下都需要由oTMS系统管理员分配API帐号密码后方可使用。

注意: 请合理地调用公共接口。如果发现存在异常调用或者对我们系统性能造成影响等情况,会对API账号的调用进行限制,甚至停用。

目前对该接口的调用限制为每个公司每秒最多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其他错误。

API工具