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工具