# 打车
- 打车
- 一、通用说明
- 二、运力接入
- 2.1 通用说明
- 2.2 运力商接口
- 2.2.1 基础
- 2.2.2 计价
- 2.2.3 订单
- 2.2.3.1 创建订单
- 2.2.3.2 订单详情
- 2.2.3.3 决策通知
- 2.2.3.4 取消订单
- 2.2.3.5 查询取消费
- 2.2.3.6 支付通知
- 2.2.3.7 行程轨迹
- 2.2.3.8 修改上车点下单
- 2.2.3.9 修改目的地下单
- 2.2.3.10 确认修改订单行程
- 2.2.3.11 查询取消规则
- 2.2.3.12 订单评价
- 2.2.3.13 拼车行程信息
- 2.2.3.14 事件通知
- 2.2.3.15 行中修改手机号
- 2.2.3.16 支付账单通知接口(腾讯to运力对账用)
- 2.2.3.17 通知加急举手确认
- 2.2.3.18 查询车辆支持的控制指令
- 2.2.3.19 执行车辆控制指令
- 2.2.3.20 查询车辆控制指令的执行结果
- 2.2.3.21 司机换单推荐接口
- 2.2.3.22 接机航班时间变动
- 2.2.3.23 订单取消原因
- 2.2.4 司乘
- 2.2.5 im
- 2.2.6 发票
- 2.2.7 工单
- 2.2.8 判责
- 2.3 腾讯出行服务接口
- 2.4 聚合平台模式接入
- 三、渠道接入
- 四、附录
# 一、通用说明
# 1.1 接口基本信息
- 接口传输协议 :采用
HTTPS(超文本传输安全协议) - 字符编码 :字符编码统一为
UTF-8 - 请求方法 :请求方法统一为
POST - 数据格式 :请求及返回内容类型(
Content-Type)统一为application/json; charset=utf-8,请求及返回数据格式采用JSON格式
# 1.2 请求地址
# 1.2.1 腾讯出行服务
腾讯出行服务提供的接口地址,即文档中的tms_url_prefix,域名列表如下:
| 域名 | 环境 | 用途 | 备注 |
|---|---|---|---|
| sp-test.taxi.go.qq.com | 测试环境 | 运力接入 | |
| sp.taxi.go.qq.com | 正式环境 | 运力接入 | |
| open-test.taxi.go.qq.com | 测试环境 | 运力接入、渠道接入 | 服务外输 |
| open.taxi.go.qq.com | 正式环境 | 运力接入、渠道接入 | 服务外输 |
注意:请与腾讯出行服务研发确认使用的环境域名。
# 1.2.2 运力商 / 渠道方
运力商/渠道方提供的接口地址,可以自定义域名以及路径前缀,即文档中的sp_url_prefix(运力商)/tenant_url_prefix(渠道方)
# 1.3 公共请求参数
运力接入与渠道接入不同,详见2.1.1 公共请求参数(运力商) / 3.1.1 公共请求参数 (渠道方)
# 1.4 公共响应参数
运力接入与渠道接入不同,详见2.1.2 公共响应参数(运力商) / 3.1.2 公共响应参数 (渠道方)
# 1.5 接口鉴权
运力接入与渠道接入不同,详见2.1.4 接口鉴权(运力商) / 3.1.4 接口鉴权 (渠道方)
# 1.6 数据约定
- 坐标系 :地图坐标系采用 GCJ-02 坐标系
- 城市编码 :参考4.7
- 日期时间格式 : 参考4.8
- 消息通知 :微信服务通知、手机短信通知,全部由腾讯出行服务完成,无需接入方向用户发送
# 二、运力接入
# 2.1 通用说明
# 2.1.1 公共请求参数
| 参数名 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| version | string | 10 | Y | 接口版本,统一为 1.0.0 |
| appId | string | 32 | Y | 运力方标识,由腾讯出行提供 |
| timestamp | long | 20 | Y | 请求的 Unix时间戳(毫秒),有效期 1 分钟 |
| nonce | string | 32 | Y | 随机字符串,需保证 1 分钟内唯一 |
| sign | string | 40 | Y | 签名,采用 HMAC-SHA1算法 |
| data | object | N | 业务参数对象 |
# 2.1.2 公共响应参数
| 参数名 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| code | int | 10 | Y | 参考2.1.4 |
| message | string | 64 | N | 参考2.1.4 |
| data | object | N | 业务参数对象 | |
| requestId | string | 64 | N | 请求 ID |
# 2.1.3 响应状态编码(code)
成功
| 编码 | 说明 |
|---|---|
| 0 | 成功 |
10000 - 19999 请求错误或者签名验证失败
| 编码 | 说明 |
|---|---|
| 10001 | 请求 URL错误 |
| 10002 | 请求方法错误 |
| 10003 | appId 错误 |
| 10004 | 时间戳过期或者 nonce 重复 |
| 10005 | 签名验证失败 |
| 10009 | 请求频繁,请稍后重试 |
| - | - |
40000 - 49999 业务错误
| 编码 | 说明 |
|---|---|
| 40001 | 数据不存在(订单号不存在,发票不存在) |
| 40002 | 出发时间错误,超过允许范围 |
| 40003 | 该城市未开通 |
| 40004 | 该城市临时关闭 |
| 40005 | 命中电子围栏,该区域不能下单 |
| 40006 | 航班信息错误 |
| 40007 | 不支持的运力类型 |
| 40008 | 预估价格 ID不存在或者已经失效,请重新获取预估价格 |
| 40009 | 预估价格 ID同订单数据不一致,请重新获取预估价格 |
| 40010 | 该手机号码有进行中的订单,不能再创建订单 |
| 40011 | 腾讯出行订单号已经存在,不能再创建订单 |
| 40012 | 不支持的服务类型 |
| 40013 | 订单取消失败,比如服务已经开始,不能取消订单 |
| 40014 | 参数错误 |
| 40015 | 该订单无司机信息(查询司机位置) |
| 40016 | 订单已经取消,比如确认接单时运力商已经取消订单 |
| 40020 | 支付费用不一致 |
| 40021 | 退款费用不一致 |
| 40030 | 订单已经开票 |
| 40040 | 司机即将到达上车点,无法修改 |
| 40041 | 高峰期运力紧张,暂无法修改 |
| 49001 | 该用户健康码异常 |
| 49002 | 取消次数过多,不能再下单 |
| 49005 | 不支持途经点 |
| 49006 | 附近无司机/无自动驾驶站点信息 |
| 49007 | 平台一口价过低 |
50000 - 59999 服务端错误
| 50000 | 系统错误,服务端存在未处理的异常 |
|---|---|
| 50001 | 创建订单失败 |
| 50002 | 开票失败 |
| 50003 | 查询发票失败 |
回调事件错误代码
| 0 | 成功 |
|---|---|
| 10001 | 请求 URL错误 |
| 10002 | 请求方法错误 |
| 10003 | appId 错误 |
| 10004 | 时间戳过期或者 nonce 重复 |
| 10005 | 签名验证失败 |
| 10009 | 请求频繁,请稍后重试 |
| 40001 | 数据不存在(订单号不存在,发票不存在) |
| 40002 | 订单回调:事件无效 |
| 40003 | 订单回调:取消事件取消类型不能为空 |
| 40004 | 订单回调:接单改派事件司机车辆信息不能为空 |
| 40005 | 订单回调:当前事件通知司机位置信息不能为空 |
| 40006 | 订单回调:当前事件通知账单信息不能为空 |
| 40007 | 订单回调:当前事件通知行程里程时长不能为空 |
| 50000 | 系统错误,服务端存在未处理的异常 |
# 2.1.4 接口鉴权
- 签名算法 :使用
HMAC-SHA1
- 将 appId,timestamp,nonce,version 以及 data 中的所有参数(不包括 object、list、 及值为 null 的参数)按照字母顺序升序排列。
- 依次将升序排列后的 key, value 使用 "=" 和 "&" 符号连接起来,生成新的字符串 key1=value1&key2=value2&key3=value3....&keyn=valuen。
- 使用 appSecret 作为 key,计算 2 中生成字符串的HMAC-SHA1散列值,转换为 16 进制小写字符串,作为 sign。
- 将 sign 作为参数加入到入参中,访问接口。
- 签名算法示例 :
假如访问订单详情接口,appSecret 为 test_123456,请求体为:
{
"version": "1.0.0",
"appId": "test",
"timestamp": 1658973463326,
"nonce": "toUPcjOB6+tLwQ",
"data": {
"orderId": "123456789",
"spOrderId": "987654321"
}
}
则 sign 计算方法如下:
- 将 data 中的参数以及 version,appId,timestamp,nonce 按照字母顺序升序排列,使 用“=”,“&”符号连接起来生成新的字符串(data 中的 object, array 及值为 null 的 参数不参与签名):
appId=test&nonce=toUPcjOB6+tLwQ&orderId=123456789&spOrderId=987654321 &tƒimestamp=1658973463326&version=1.0.0
- 将 appSecret 作为 key,计算如上字符串的 HMAC-SHA1值,转换为 16 进制小写字符串,作为 sign
sign = HMAC-SHA1("appId=test&nonce=toUPcjOB6+tLwQ&orderId=123456789&spOrderId=987654321×tamp=1658973463326&version=1.0.0", "test_123456")
结果为:
curl -XPOST \
-H "Content-Type: application/json; charset=utf-8" <sp_url_prefix>/api/order/detail
-d '{
"version": "1.0.0",
"appId": "test",
"timestamp": 1658973463326,
"nonce": "toUPcjOB6+tLwQ",
"sign": "143f2a38bdf192524b916a73bd48c96e5a200b12",
"data": {
"orderId": "123456789",
"spOrderId": "987654321"
}
}'
# 2.1.5 业务流程

# 2.2 运力商接口
注意:以下接口中的请求参数均指2.1.1 公共请求参数中的data字段,返回数据均指2.1.2 公共响应参数中的data字段。
# 2.2.1 基础
# 2.2.1.1 开城列表
接口说明 : 运力商提供(腾讯出行服务向运力商调用):获取开城列表及每个城市支持的运力类型、服务类型
请求地址 :
<sp_url_prefix>/api/city/open请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cities | array object | Y | ||
| cities.cityCode | string | 10 | Y | 城市编码,参考4.7 |
| cities.cityName | string | 30 | Y | 城市名称,参考4.7 |
| cities.rideTypes | array object | Y | ||
| cities.rideTypes.id | int | Y | 参考4.3 | |
| cities.rideTypes.name | string | 10 | Y | |
| cities.rideTypes.serviceTypes | array int | Y | 支持的服务类型,参考4.2 |
# 2.2.1.2 附近空车
接口说明 : 运力商提供(腾讯出行服务向运力商调用):获取附近的空车信息
请求地址 :
<sp_url_prefix>/api/vehicle/nearby请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cityCode | string | - | Y | 城市编码,参考4.7 |
| lat | double | - | Y | 中心点纬度 |
| lng | double | - | Y | 中心点经度 |
| radius | int | - | Y | 范围半径【单位:米】 |
| limit | int | - | N | 最多返回空车数量,一般设置为10 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| vehicles | array object | Y | ||
| vehicles.lat | double | - | Y | 车辆位置(纬度) |
| vehicles.lng | double | - | Y | 车辆位置(经度) |
| vehicles.direction | double | - | Y | 车头方向 0-360 |
| vehicles.rideType | int | - | N | 车型,参考4.3 |
# 2.2.2 计价
# 2.2.2.1 预估价格
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):获取预估价格
- 请求地址 :
<sp_url_prefix>/api/estimate/price - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cityCode | string | 10 | Y | 出发地城市编码,参考4.7 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发地详细地址 |
| waypoints | string | 1000 | N | 途经点信息json数组字符串,最多支持两个途经点 |
| destCityCode | string | 10 | Y | 目的地城市编码(接送机新增),参考4.7 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的地详细地址 |
| serviceType | int | Y | 服务类型,参考4.2 | |
| rideType | string | 100 | N | 运力类型,多个运力类型使用逗号分隔, 参考4.3 |
| departureTime | string | 20 | N | 出发时间(用车时间),日期时间格式, 如: 2022-08-01 15:00:00, 默认为当前时间,参考4.8 |
| latestDepartureTime | string | 20 | N | (拼车单用车时间片)最晚乘车时间,日期时间格式同上 |
| flightNo | string | 10 | N | (接送机)航班号,接机必传 |
| departDelayTime | int | N | (接送机)落地后多长时间出发,接机必传 | |
| airportCode | string | 10 | N | (接送机)机场IATA三字码 |
| distance | int | N | (接送机)行驶距离,单位:米(注:用于校准不同运力商的报价) | |
| duration | int | N | (接送机)预计行驶时间,单位:秒(注:用于校准不同运力商的报价) |
途经点waypoints信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lat | double | Y | 途经点纬度 | |
| lng | double | Y | 途经点经度 | |
| name | string | 50 | Y | 途经点名称 |
| address | string | 100 | Y | 途经点详细地址 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| distance | int | Y | 行驶距离,单位:米 | |
| duration | int | Y | 预计行驶时间,单位:秒 | |
| prices | array object | Y | ||
| prices.rideType | int | Y | 运力车型 | |
| prices.estimateId | string | 40 | Y | 预估价格标识,创建订单时, 腾讯出行需提供该参数,由运力商 进行校验,过期则下单失败,如果estimateId过期 或行程有变化,必须重新预估价格 |
| prices.estimatePrice | int | Y | 预估价格,单位:分(拼车车型非必填) | |
| prices.dynamicRate(弃用) | double | N | 动态调价倍率 | |
| prices.chargeType(弃用) | int | N | 计价类型,默认为 1-普通计费,参考4.4 | |
| prices.platformDiscount | int | N | 普通呼反,单位分 | |
| prices.details | array object | Y | 价格明细(拼车车型非必填) | |
| prices.details.name | string | 30 | Y | 明细项名称 |
| prices.details.amount | int | Y | 明细项金额,单位:分 | |
| prices.minDynamicRate | float | N | (动态呼返)最小折扣系数,折扣系数越小优惠金额越大,例:0.67 | |
| prices.maxDynamicRate | float | N | (动态呼返)最大折扣系数,不传默认不打折,折扣系数越大优惠金额越小,例:0.99 | |
| prices.dynamicRateBase | int | N | (动态呼返)折扣基数,不传默认取询价金额 | |
| prices.maxDynamicRatePrice | int | N | (动态呼返)最小折扣系数优惠的金额上限,单位分,例:200 | |
| prices.maxDynamicPrice | int | N | (动态呼返)最大优惠金额,单位分,例:200 | |
| prices.minDynamicPrice | int | N | (动态呼返)最小优惠金额,不传默认为0,单位分,例:100 | |
| prices.dynamicTarget | int | N | (动态呼返)目标,空为进入默勾;非空为排名 | |
| prices.isFailPreferential | boolean | N | (动态呼返)true:失败是否按最大优惠执行。false:按最小优惠执行。不传默认为false。 | |
| prices.carpoolEstimatePrices | array object | N | (拼车)车型预估价格 | |
| prices.optionalServices | array objest | N | (接送机)可选服务 | |
| prices.optionalServices.code | string | 32 | Y | (接送机)可选服务code,参考4.16 |
| prices.optionalServices.count | int | Y | (接送机)可选服务总数量 | |
| prices.optionalServices.freeCount | int | Y | (接送机)可选服务免费数量 | |
| prices.optionalServices.price | int | Y | (接送机)可选服务单价,单位分 | |
| station | object | N | (自动驾驶)匹配的站点信息 | |
| station.startLat | double | Y | (自动驾驶)出发站点纬度 | |
| station.startLng | double | Y | (自动驾驶)出发站点经度 | |
| station.startName | string | 50 | Y | (自动驾驶)出发站点名称 |
| station.startAddress | string | 100 | Y | (自动驾驶)出发站点详细地址 |
| station.endLat | double | Y | (自动驾驶)目的站点纬度 | |
| station.endLng | double | Y | (自动驾驶)目的站点经度 | |
| station.endName | string | 50 | Y | (自动驾驶)目的站点名称 |
| station.endAddress | string | 100 | Y | (自动驾驶)目的站点详细地址 |
拼车车型预估价格carpoolEstimatePrice信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| seatNum | int | Y | 人数 | |
| priceInfo | array object | Y | 价格信息list,包含拼成和未拼成价格 | |
| priceInfo.carpoolSuccess | boolean | Y | 是否拼成 | |
| priceInfo.poolNum | int | N | 拼友数量 | |
| priceInfo.estimatePrice | int | Y | 预估价格,单位:分 | |
| priceInfo.platformDiscount | int | Y | 普通呼反,单位分 | |
| priceInfo.economyAmount | int | N | 比快车优惠,单位分 |
# 2.2.2.2 修改上车点询价
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):修改上车点询价
- 请求地址 :
<sp_url_prefix>/api/estimate/price/start/modify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| spOrderId | string | Y | 运力商订单id | |
| OrderId | string | Y | 腾讯出行侧订单id | |
| startLng | double | Y | 新上车点经度 | |
| startLat | double | Y | 新上车点纬度 | |
| startName | string | 50 | Y | 新上车点名称 |
| startAddress | string | 100 | Y | 新上车点地址 |
- 返回参数
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| distance | int | Y | 预估行程距离 | |
| duration | int | Y | 预估行程时间 | |
| rideType | int | Y | 运力车型 | |
| originPrice | int | Y | 预估原始价格,单位:分 | |
| price | int | Y | 预估价格,单位:分 | |
| estimateId | string | 40 | Y | 预估价格标识,修改上车点下单时腾讯 出行需提供该参数,由运力商进行校验, 过期则下单失败,如果estimateId过期或 行程有变化,必须重新预估价格 |
| details | list | Y | 价格明细 | |
| details.code | string | N | 明细的唯一标志,见4.10 | |
| details.name | string | 30 | Y | 明细项名称 |
| details.amount | int | Y | 明细项金额,单位:分 |
# 2.2.2.3 修改目的地询价
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):修改目的地询价
- 请求地址 :
<sp_url_prefix>/api/estimate/price/modify - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| spOrderId | string | Y | 运力商订单id |
| OrderId | string | Y | 腾讯出行侧订单id |
| toLng | double | Y | 目的地经度 |
| toLat | double | Y | 目的地纬度 |
| toAddress | string | Y | 目的地地址详细信息 |
| currentLng | double | Y | 乘客当前位置经度(乘客当前位置不一定合适,建议运力侧直接使用司机当前位置) |
| currentLat | double | Y | 乘客当前位置纬度(乘客当前位置不一定合适,建议运力侧直接使用司机当前位置) |
| waypoints | string | N | 途经点信息json数组字符串,只传未到达的途经点 |
途经点waypoints信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lat | double | Y | 途经点纬度 | |
| lng | double | Y | 途经点经度 | |
| name | string | 50 | Y | 途经点名称 |
| address | string | 100 | Y | 途经点详细地址 |
- 返回参数
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| data | List | Y | 预估价格 |
预估价EstimatePrice的格式如下
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| distance | int | Y | 预估行程距离 | |
| duration | int | Y | 预估行程时间 | |
| rideType | int | Y | 运力车型 | |
| originPrice | int | Y | 预估原始价格,单位:分 | |
| price | int | Y | 预估价格,单位:分 | |
| estimateId | string | 40 | Y | 预估价格标识,修改目的地创建订单时腾讯 出行需提供该参数,由运力商进行校验, 过期则下单失败,如果estimateId过期或 行程有变化,必须重新预估价格 |
| dynamicRate | double | N | 动态调价倍率 | |
| chargeType(弃用) | int | N | 计价类型,默认为1-普通计费,2-一口价 | |
| details | list | Y | 价格明细 | |
| details.code | string | N | 明细的唯一标志,见4.10 | |
| details.name | string | 30 | Y | 明细项名称 |
| details.amount | int | Y | 明细项金额,单位:分 | |
| station | object | N | 匹配的站点信息 | |
| station.endLat | double | Y | (自动驾驶)目的站点纬度 | |
| station.endLng | double | Y | (自动驾驶)目的站点经度 | |
| station.endName | String | Y | (自动驾驶)目的站点名称 | |
| station.endAddress | String | Y | (自动驾驶)目的站点详细地址 |
{
"code": 0,
"message": "成功",
"data": [
{
"distance": 2300,
"duration": 1800,
"rideType": 1,
"originPrice": 666,
"price": 666,
"estimateId": "abcdefg",
"dynamicRate": null,
"chargeType": 1,
"details": [
{
"name": "起步费(含2.60公里/8.00分钟)",
"amount": 200
},
{
"name": "里程费(4.0公里)",
"amount": 200
},
{
"name": "时长费(9.0分钟)",
"amount": 200
},
{
"name": "过路费",
"amount": 66
}
],
"station": {
"endLat": 22.7710151535,
"endLng": 113.5044077,
"endName": "青俊人才社区-江湾",
"endAddress": "广州市南沙区庙南路"
}
}
]
}
# 2.2.2.4 修改订单行程询价
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):修改订单行程(时间、起点、终点)信息
- 请求地址 :
<sp_url_prefix>/api/estimate/price/itinerary/modify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| cityCode | string | 10 | Y | 出发地城市编码,参考4.7 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发地详细地址 |
| destCityCode | string | 10 | Y | 目的地城市编码(接送机新增),参考4.7 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的地详细地址 |
| departureTime | string | 20 | N | 乘车时间,日期时间格式,如: 2022-08-01 14:00:00,默认为当前 时间,参考4.8 |
| flightNo | string | 10 | N | (接机)航班号,接机必传 |
| departDelayTime | int | N | (接机)落地后多长时间用车,单位:秒,接机必传 | |
| airportCode | string | 10 | N | (接送机)机场IATA三字码 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| distance | int | Y | 预估行程距离 | |
| duration | int | Y | 预估行程时间 | |
| rideType | int | Y | 运力车型 | |
| originPrice | int | Y | 预估原始价格,单位:分 | |
| price | int | Y | 预估价格,单位:分 | |
| estimateId | string | 40 | Y | 预估价格标识,确认修改订单时腾讯 出行需提供该参数,由运力商进行校验, 过期则下单失败,如果estimateId过期或 行程有变化,必须重新预估价格 |
| details | list | Y | 价格明细 | |
| details.code | string | N | 明细的唯一标志,见4.10 | |
| details.name | string | 30 | Y | 明细项名称 |
| details.amount | int | Y | 明细项金额,单位:分 |
# 2.2.2.5 计价规则
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询计价规则
计价规则接入分为两大场景,都需要实现:
- 实时计价规则,可以通过以下两种方式接入:
- 通过询价预估key查询实时计价规则(实时性较高,不同的询价可以对应不同的计价规则)
- 通过城市编码、服务车型和服务类型查询实时计价规则
- 查询某个订单的计价规则:通过订单号查询出对应订单的计价规则
- 请求地址 :
<sp_url_prefix>/api/price/rule - 请求参数 :
- 实时计价规则
- 通过询价预估Key查询实时计价规则(更推荐)
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| estimateId | string | Y | 预估key,由运力商进行校验, 如果estimateId过期或行程有变化, 必须重新预估价格 |
- 通过城市编码、服务车型和服务类型查询实时计价规则
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| cityCode | string | Y | 城市编码 |
| rideType | string | Y | 车型 |
| serviceType | int | Y | 服务类型,参考4.2 |
- 查询某个订单的计价规则
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| orderId | string | Y | 腾讯出行侧订单id |
| spOrderId | string | Y | 服务商订单id |
- 返回参数
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cityCode | string | Y | 城市编码 | |
| rideType | string | Y | 车型 | |
| configList | list | Y | 具体配置集合 | |
| configList.dateType | int | Y | 日期类型,0:休息日 1:工作日 2:节假日 | |
| configList.serviceType | int | Y | 服务类型,参考4.2 | |
| configList.feeList | list | Y | 具体配置 | |
| configList.feeList.key | string | 32 | Y | 费用项配置key,枚举值,与费用项配置描述一一对应,标识配置描述的key,具体类别运营商自己制定,与腾讯出行同步。key: name,取值如下: start_fee:订单起步价 travel_km_fee:里程费用 travel_minute_fee:时长费用 long_km_fee:长途费 long_km2_fee:超远长途费 night_fix:夜间起步费 night_fee:夜间行驶超长费用 festival_fee:节日服务费 peak_fee:高峰时段费 bridge_fee:路桥费 hight_speed_fee:高速费 ext_fee:其它费 |
| configList.feeList.name | string | 32 | Y | 费用项配置描述:上一栏中key对应的描述 |
| configList.feeList.feeSubList | list | Y | 费用子项集合 | |
| configList.feeList.feeSubList.name | string | 32 | Y | 子项描述名称,运力商按格式返回文本内容,见下面示例,仅作参考。比如: 起步价:普通时段、HH:mm~HH:mm 列表 里程费:普通时段、HH:mm~HH:mm 列表 时长费:普通时段、HH:mm~HH:mm 列表 长途费:%d公里~%d公里、%d公里及以上 夜间行驶超长费用:%d公里~%d公里、%d公里及以上 节日服务费:如有,运力商自己定义文本说明 路桥费:如有,运力商自己定义文本说明 高速费:如有,运力商自己定义文本说明 … 腾讯出行侧直接展示运力商返回的内容,不做其他转换处理 |
| configList.feeList.feeSubList.value | string | 32 | Y | 子项描述对应的值,运力商按格式返回文本内容,见下面示例,仅作参考。精确到小数点后两位,比如: 起步价:%.2f元 里程费:%.2f元/公里 时长费:%.2f元/分钟 长途费:%.2f元/公里 夜间行驶超长费:%.2f元/公里 节日服务费:%.2f元 路桥费:按实际产生费用收取 高速费:按实际产生费用收取 … 腾讯出行侧直接展示运力商返回的内容,不做其他转换处理 |
# 2.2.3 订单
# 2.2.3.1 创建订单
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):创建订单。
- 请求地址 :
<sp_url_prefix>/api/order/create - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单号,防止重复创建订单 |
| aheadFlag | bool | N | 预分单标识,true:是预分单 | |
| cityCode | string | 10 | Y | 出发地城市编码,参考4.7 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发地详细地址 |
| waypoints | string | 1000 | N | 途经点信息json数组字符串,最多支持两个途经点 |
| destCityCode | string | 10 | Y | 目的地城市编码(接送机新增),参考4.7 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的地详细地址 |
| serviceType | int | Y | 服务类型,参考4.2 | |
| estimateIds | string | 500 | Y | 预估价格标志,多个 estimateId 使用 逗号分隔,每个 estimateId 对应一个 车型,不再单独提供运力类型参数, 若 estimateId 过期(建议有效期: 10分钟)或者行程有变化则无法创建 订单,需重新预估价获取 estimateId |
| fixedPrice | string | N | 平台一口价,多个fixedPrice使用逗 号分隔,每个fixedPrice对应一个车 型,单位:分 | |
| departureTime | string | 20 | N | 乘车时间,日期时间格式,如: 2022-08-01 14:00:00,默认为当前 时间,参考4.8 |
| seatNum | string | N | (拼车)预定座位数(或人数),多个seatNum使用逗 号分隔,每个seatNum对应一个车 型,单位:分 | |
| latestDepartureTime | string | 20 | N | (城际拼车)最晚乘车时间,日期时间格式同上 |
| userId | string | 20 | Y | 叫车人用户 ID |
| userMobile | string | 20 | Y | 叫车人手机 |
| passengerMobile | string | 20 | Y | 乘车人手机 |
| passengerName | string | 20 | Y | 乘车人姓名(目前是写死的“乘客”) |
| message | string | 50 | N | 乘客给司机留言,最长 50 个字符 |
| relaySupport | int | N | 连环单开关,是否支持连环单,默认不支持。0 - 不支持,1 - 支持 | |
| dynamicRate | string | N | (动态呼返)折扣比例(多个英文,分隔)例: 0.88 或 0.88, 0.77 | |
| dynamicPrice | string | N | (动态呼返)优惠金额(多个英文逗号 分隔),单位分,例:200 | |
| dynamicTargetResult | string | N | (动态呼返)是否达成目标(多个英文逗号分隔): 1:达成;2:没达成 | |
| dynamicRank | string | N | (动态呼返)实际排名(多个英文,分隔) | |
| aheadDynamicDiscountAmounts | string | 100 | N | (动态呼返)预分单优惠金额,多个优惠金额 使用逗号分隔,每个优惠金额对应一个车 型,单位:分 |
| flightNo | string | 10 | N | (接机)航班号,接机必传 |
| departDelayTime | int | N | (接机)落地后多长时间用车,单位:秒,接机必传 | |
| airportCode | string | 10 | N | (接送机)机场IATA三字码 |
| optionalServices | array object | N | (接送机)可选服务 | |
| estimatedCouponAmount | int | 10 | N | (接送机)预计优惠券金额(不一定是最后核销的优惠券金额) |
途经点waypoints信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lat | double | Y | 途经点纬度 | |
| lng | double | Y | 途经点经度 | |
| name | string | 50 | Y | 途经点名称 |
| address | string | 100 | Y | 途经点详细地址 |
可选服务optionalServices信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| code | string | 32 | Y | 可选服务编码,参考4.16 |
| count | int | Y | 数量 | |
| totalPrice | int | Y | 该项服务的总价,单位分 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.2.3.2 订单详情
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询订单详情,任何订单状态都可能会发起查询。
- 请求地址 :
<sp_url_prefix>/api/order/detail - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| status | int | Y | 订单状态,参考4.5.1 | |
| serviceType | int | Y | 服务类型,参考4.2 服务类型 | |
| rideType | int | Y | 运力类型,参考4.3 运力类型 | |
| chargeType(弃用) | int | Y | 计价类型,参考4.4 计价类型 | |
| distance | int | N | 实际行程距离,单位为米, status=8,9 必选 | |
| duration | int | N | 实际行程时长,单位为秒, status=8,9 必选 | |
| estimatePrice | int | Y | 预估价格,单位为分 | |
| estimateDistance | int | N | 预估行驶里程,单位为米 | |
| estimateDuration | int | N | 预估行驶时长,单位为秒 | |
| acceptTime | string | 20 | N | 司机接单时间,参考 4.8 |
| setOutTime | string | 20 | N | 司机出发时间,参考 4.8 |
| arriveTime | string | 20 | N | 司机到达上车点时间 ,日期时间格式, 参考4.8 |
| startTime | string | 20 | N | 服务开始时间,开始计费时间,参考4.8 |
| endTime | string | 20 | N | 服务结束时间,结束计费时间,参考4.8 |
| cancelType | int | N | 取消编码,参考4.6 | |
| cancelTime | string | 20 | N | 取消时间,参考4.8 |
| checkTime | string | 20 | N | 账单确认的时间,status 为 8 时必填 |
| passenger | object | N | 乘客信息(详见下表) | |
| driver | object | N | 司机车辆信息(详见下表) | |
| vehicle | object | N | 车辆信息(详见下表) | |
| cost | object | N | 费用信息(详见下表) | |
| position | object | N | 位置信息(详见下表) | |
| relayOrderInfo | object | N | 连环单信息(详见下表),如果是连环单,必传 | |
| flightNo | string | 10 | N | (接送机)航班号 |
| delayTime | int | N | (接送机)落地后多长时间用车,单位为秒, 接机单必传 | |
| airportCode | string | 10 | N | (接送机)机场三字码,接机单必选 |
passenger
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| mobile | string | 20 | Y | 乘车人手机 |
| name | string | 20 | Y | 乘车人姓名 |
| message | string | 50 | N | 乘客给司机留言,最长 50 个字符 |
position
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发详细地址 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的详细地址 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| factStartLat | double | N | 实际上车纬度 | |
| factStartLng | double | N | 实际上车经度 | |
| factStartAddr | string | 100 | N | 实际出发详细地址 |
| factEndLat | double | N | 实际到达纬度 | |
| factEndLng | double | N | 实际到达经度 | |
| factEndAddr | string | 100 | N | 实际到达详细地址 |
driver
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| id | string | 32 | Y | 司机 ID |
| name | string | 32 | Y | 司机姓名 |
| avatar | string | 300 | N | 司机头像 URL |
| phone | string | 20 | N | 司机真实手机号码 |
| virtualPhone | string | 20 | Y | 司机虚拟手机号码 |
| rate | string | 10 | N | 司机评分 |
| acceptCount | int | N | 司机接单数 |
vehicle
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| plate | string | 10 | Y | 车牌号 |
| color | string | 10 | Y | 汽车颜色 |
| brand | string | 30 | Y | 汽车品牌 |
| model | string | 30 | Y | 汽车型号 |
| picture | string | 300 | Y | 汽车图片的 URL |
cost
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| totalAmount | int | Y | 实际总费用,单位:分 总费用由2部分组成:行程费+附加费 如果订单有责取消,totalAmount 应该等于取消费未支付改价, totalAmount 同步更新 | |
| orderAmount | int | Y | 行程费用,作为优惠计算、分佣的基数 未支付改价,orderAmount 同步更新 | |
| extraAmount | int | Y | 附加费用 如路桥、停车等非司机服务的费用 未支付改价,extraAmount 同步更新 | |
| details | array object | N | 明细 | |
| details.name | string | 30 | Y | 明细项名称 |
| details.amount | int | Y | 明细项金额,单位为分 | |
| details.code | string | N | 费用明细的唯一标志,见4.10 | |
| details.invoiceType | int | N | 默认0,不参与开票, -1 折扣 ,1 参与开票 | |
| refundAmount | int | N | 累计退款金额,支付后退款的金额 |
relayOrderInfo
| 参数名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| status | Integer | Y | 上一单状态,1 - 进行中,2 - 已结束 |
| prevEndLat | Double | Y | 上一单终点维度 |
| prevEndLng | Double | Y | 上一单终点经度 |
| prevAddress | String | N | 上一单终点名称 |
| remainDistance | Integer | N | 上一单剩余距离,单位:米 |
| remainDuration | Integer | N | 上一单剩余时间,单位:秒 |
| orderId | String | N | 若上一单为腾讯渠道订单,可传入订单号 |
# 2.2.3.3 决策通知
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):通知运力商选择该司机
- 请求地址 :
<sp_url_prefix>/api/order/confirm - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| rideType | int | - | Y | 确认接单车型ID |
| confirmTime | string | 20 | Y | 决策选用的时间,日期时间格式, 如:2022-08-01 15:27:03,参考4.8 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.3.4 取消订单
接口说明 : 运力商提供(腾讯出行服务向运力商调用):取消订单。
行程开始前(即订单状态在6之前),腾讯出行可以发起取消。 行程开始后,腾讯出行不会再发起取消。
请求地址 :
<sp_url_prefix>/api/order/cancel请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| cancelSource | int | Y | 取消来源,4.6 | |
| cancelType | int | Y | 取消原因,4.6 | |
| cancelReason | string | 100 | Y | 取消原因 |
| freeCancelFee | boolean | N | 是否豁免取消费(false否,true豁免) | |
| freeCancelReason | string | 100 | N | 豁免原因 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cancelAmount | int | Y | 取消费(默认为 0),单位:分 同时更新到订单详情的totalAmount |
# 2.2.3.5 查询取消费
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):用户取消前,腾讯出行调用运力商接口查询取消费
- 请求地址 :
<sp_url_prefix>/api/order/precancel - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cancelAmount | int | Y | 取消费,单位:分 |
# 2.2.3.6 支付通知
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):用户支付完成后,腾讯出行通知运力商
- 请求地址 :
<sp_url_prefix>/api/order/pay/notify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| payee | int | 32 | Y | 收款方,0-运力,1-出行 |
| totalAmount | int | Y | 订单总金额(单位:分) | |
| payAmount | int | Y | 订单应付金额(单位:分) | |
| paidAmount | int | Y | 用户已付金额(单位:分) | |
| couponId | string | 32 | N | 使用的优惠券 ID |
| couponAmount | int | N | 对应优惠券减免的优惠金额 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.3.7 行程轨迹
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):服务结束查询行程轨迹
- 请求地址 :
<sp_url_prefix>/api/order/tracks - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回参数
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| distance | int | Y | 行程距离,单位米 | |
| duration | int | Y | 行程时长,单位秒 | |
| tracks | array object | Y | 经纬度集合,建议采用道格拉斯普克算法压缩 | |
| tracks.lat | double | Y | 纬度,最多保留 6 位小数 | |
| tracks.lng | double | Y | 经度,最多保留 6 位小数 | |
| tracks.ts | int | N | Unix时间戳,单位秒 |
# 2.2.3.8 修改上车点下单
- 接口说明 : 运力商提供(腾讯出行向运力商调用):修改上车点下单
- 请求地址 :
<sp_url_prefix>/api/order/start/modify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| spOrderId | string | Y | 运力商订单id | |
| orderId | string | Y | 腾讯出行侧订单id | |
| startLng | double | Y | 新上车点经度 | |
| startLat | double | Y | 新上车点纬度 | |
| startName | string | 50 | Y | 新上车点名称 |
| startAddress | string | 100 | Y | 新上车点地址 |
| estimateId | string | Y | 修改上车点询价预估key |
- 返回参数
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.2.3.9 修改目的地下单
- 接口说明 : 运力商提供(腾讯出行向运力商调用):修改目的地下单
- 请求地址 :
<sp_url_prefix>/api/order/dest/modify - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| spOrderId | string | Y | 运力商订单id |
| orderId | string | Y | 腾讯出行侧订单id |
| toLng | double | Y | 目的地经度 |
| toLat | double | Y | 目的地纬度 |
| toAddress | string | Y | 目的地地址详细信息 |
| toName | string | Y | 目的地名称 |
| currentLng | double | Y | 乘客当前位置经度(乘客当前位置不一定合适,建议运力侧直接使用司机当前位置) |
| currentLat | double | Y | 乘客当前位置纬度(乘客当前位置不一定合适,建议运力侧直接使用司机当前位置) |
| estimateId | string | Y | 修改目的地询价预估key |
| waypoints | string | N | 途经点信息json数组字符串,只传未到达的途经点 |
途经点waypoints信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lat | double | Y | 途经点纬度 | |
| lng | double | Y | 途经点经度 | |
| name | string | 50 | Y | 途经点名称 |
| address | string | 100 | Y | 途经点详细地址 |
- 返回参数
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.2.3.10 确认修改订单行程
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):修改订单(时间、起点、终点)信息
- 请求地址 :
<sp_url_prefix>/api/order/itinerary/modify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| cityCode | string | 10 | Y | 出发地城市编码,参考4.7 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发地详细地址 |
| destCityCode | string | 10 | Y | 目的地城市编码,参考4.7 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的地详细地址 |
| departureTime | string | 20 | Y | 乘车时间,日期时间格式,如: 2022-08-01 14:00:00,默认为当前 时间,参考4.8 |
| flightNo | string | 10 | N | (接机)航班号 |
| departDelayTime | int | N | (接机)落地后多长时间用车,单位:秒 | |
| airportCode | string | 10 | Y | (接送机)机场IATA三字码 |
| estimateId | string | N | 修改接送机订单询价key |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.2.3.11 查询取消规则
- 接口说明 : 运力商提供(腾讯出行向运力商调用):查询取消规则
- 请求地址 :
<sp_url_prefix>/api/order/cancel/rule - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| orderId | string | Y | 腾讯出行订单ID |
| spOrderId | string | Y | 运力商订单ID |
| cityCode | string | Y | 城市编码 |
| serviceType | int | Y | 服务类型,参考4.2 |
| rideType | int | N | 运力类型,参考4.3 |
- 返回参数
| 参数名称 | 类型 | 必选 | 说明 | 备注 |
|---|---|---|---|---|
| freeCancelTime | Integer | Y | 接单后多长时间内可免费取消,单位:分钟,必填 | |
| freeCancelTimeBeforeUse | Integer | N | 行程开始前无责取消的时间,单位:分钟,预约单必填 | 如果订单7:00出发,无责取消时间为60分钟,用户在6:00以前可免费取消订单 |
| cancelFee | Integer | N | 取消费,单位:分 | 取消费和阶梯收费不能同时为空。1、若无阶梯收费,则取消费必填;2、若有阶梯收费,取消费可以为空; |
| interval | Object | N | 阶梯取消费区间 | 若有阶梯收费,可根据时间区间或距离区间填充相应参数 |
| interval.time | List Object | N | 按照时间段收取取消费 | 按照时间段收取取消费,使用见出参样例 eg2 |
| interval.time.start | Integer | Y | 区间开始时间 | |
| interval.time.end | Integer | N | 区间结束时间 | |
| interval.time.fee | Integer | 区间内取消费,单位:分 | ||
| interval.distance | List Object | N | 行驶距离阶梯取消费区间 | 按照司机行驶的距离区间收取取消费,使用见出参样例 eg3 |
| interval.distance.start | Integer | Y | 取消费开始行驶距离,单位:米 | |
| interval.distance.end | Integer | Y | 取消费结束行驶距离,单位:米 | |
| interval.distance.fee | Integer | Y | 间隔内取消费,单位:分 | |
| driverWait | Object | N | 司机等待费 | 如果取消时收取司机等待费,则返回相应规则,使用见出参样例 eg1 |
| driverWait.freeTime | Integer | N | 司机到达后免费等待时间,单位:分钟 | |
| driverWait.unit | Integer | N | 司机等待费产生周期时间,单位: 分钟 | |
| driverWait.fee | Integer | N | 司机周期时间内等待费,单位: 分 | 即司机等待超过免费时间后,unit时间会产生fee分的等待费 |
| driverWait.maxFee | Integer | N | 司机封顶等待费 | |
| cancelFeeRuleText | String | N | 取消费收费规则文本,预约单必填 | List String 格式的Json字符串,见出参示例eg5 |
| freeCancelFeeRuleText | String | N | 免取消费规则文本 | List String 格式的Json字符串,见出参示例eg5 |
| maxDriverWaitTime | Integer | N | 司机最大等待时长,单位:分钟 |
出参示例:
- eg1:实时单,接单后免费取消时间为5分钟,取消费为5元,司机可免费等待5分钟,超过5分钟每等1分钟收费1元,最大等待费为10元。
{
"code": 0,
"message": "成功",
"data": {
"freeCancelTime": 5,
"cancelFee": 500,
"driverWait": {
"freeTime": 5,
"unit": 1,
"fee": 100,
"maxFee": 1000
},
"maxDriverWaitTime": 5
}
}
- eg2:实时单,接单后免费取消时间为5分钟,取消费为5元,超过5分钟不足10分钟收费8元,超过10分钟不足15分钟收费12元。
{
"code": 0,
"message": "成功",
"data": {
"freeCancelTime": 5,
"cancelFee": 500,
"interval": {
"time": [
{
"start": 5,
"end": 10,
"fee": 800
},
{
"start": 10,
"end": 15,
"fee": 1200
}
]
}
}
}
- eg3:实时单,接单后免费取消时间为5分钟,取消费为5元,司机出发距离不超过1000米收费5元,超过1000米不足3000米收费12元。
{
"code": 0,
"message": "成功",
"data": {
"freeCancelTime": 5,
"cancelFee": 500,
"interval": {
"time": [
{
"start": 0,
"end": 1000,
"fee": 500
},
{
"start": 1000,
"end": 3000,
"fee": 1200
}
]
}
}
}
- eg4: 实时单,接单后免费取消时间为3分钟,取消费费5元。
{
"code": 0,
"message": "成功",
"data": {
"freeCancelTime": 3,
"cancelFee": 500,
"cancelFeeRuleText": "[\"你可在司机出发后3分钟内免费取消。\",\"取消时距离司机出发时间超出3分钟,取消费5元。\",\"若司机按时到达上车点,且等待超过分钟,司机可操作取消订单,你需支付取消费10元。\"]"
}
}
- eg5: 预约单,接单后免费取消时间为5分钟,行程开始前无责取消时间为60分钟,取消费费5元,司机可免费等待5分钟,超过5分钟每等1分钟收费1元,最大等待费为10元。
{
"code": 0,
"message": "成功",
"data": {
"freeCancelTime": 5,
"freeCancelTimeBeforeUse": 60,
"cancelFee": 500,
"driverWait": {
"freeTime": 5,
"unit": 1,
"fee": 100,
"maxFee": 1000
},
"cancelFeeRuleText": "[\"您在司机接单3分钟后且距离预约用车时间小于60分钟(不含60分钟)时,取消预约订单,您需支付司机取消费。\",\"距离用车时间小于30分钟,乘客进行取消,取消费为15.00元。\"]",
"freeCancelFeeRuleText": "[\"预约订单成功后,您在司机接单后3分钟内或距离预约用车时间超过60分钟(含60分钟)以上,可免责取消订单。\"]"
}
}
# 2.2.3.12 订单评价
接口说明 : 运力商提供(腾讯出行服务向运力商调用):推送用户对订单的评价
请求地址 :
<sp_url_prefix>/api/order/comment请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| commentTime | long | - | Y | 评价时间,时间戳 |
| commentScore | int | - | Y | 评价分数;10:很差劲,30:一般般,50:超级赞 |
| commentTags | string | 255 | N | 评价标签,多个标签之间逗号分隔 |
| commentContent | string | 500 | N | 评价内容 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.3.13 拼车行程信息
接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询拼车行程信息,行程信息只展示到当前用户下车即可,后续送其他乘客无需展示
请求地址 :
<sp_url_prefix>/api/order/carpool/info请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| carpoolSuccess | boolean | - | Y | 是否拼车成功 |
| seatNum | int | - | Y | 预定座位数(或人数) |
| poolNum | int | - | Y | 拼友数 |
| carpoolTrips | array object | - | Y | 拼车行程信息 |
| carpoolTrips.event | int | - | Y | 节点事件类型 1 接拼友 2 送拼友 3 接你 4 送你 |
| carpoolTrips.subject | string | 32 | Y | 司机接送的对象,如:你 或 拼友1362 |
| carpoolTrips.position | string | 128 | Y | 上下车点,如:北京西站-地下二层停车场-网约车上车点 |
| carpoolTrips.lat | double | - | Y | 上下车点-纬度 |
| carpoolTrips.lng | double | - | Y | 上下车点-经度 |
| carpoolTrips.eventTime | long | - | Y | 时间戳,预计时间或实际完成时间 |
| carpoolTrips.status | int | - | Y | 节点状态 0 未完成,1 进行中 2 已完成 |
# 2.2.3.14 事件通知
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):订单事件通知
- 请求地址 :
<sp_url_prefix>/api/order/event/notify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| event | int | Y | 回调事件 ID,参考4.5.6 | |
| eventTime | string | 20 | Y | 事件发生时间,日期时间格式,比如: 2022- 08-01 15:37:20,参考4.8 |
| licensePlate | string | 10 | N | 司机车牌号,event=1001时必传 |
| pickupLocation | string | 50 | N | 分配的接驾车位位置,event=1001时必传 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.3.15 行中修改手机号
接口说明 : 运力商提供(腾讯出行服务向运力商调用):司机接单后乘客发起修改手机号
请求地址 :
<sp_url_prefix>/api/order/phone/rebind请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| passengerPhone | string | 32 | Y | 乘客新手机号 |
# 2.2.3.16 支付账单通知接口(腾讯to运力对账用)
- 接口说明 : 腾讯向运力同步已支付的账单记录(预付款、尾款)
- 请求地址 :
<tmscx_url_prefix>/api/order/paidRecords - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| orderId | String | Y | 腾讯侧订单ID |
| spOrderId | String | Y | 合作方订单号 |
| payType | int | Y | 支付类型 0:尾款 1:预付 |
| paymentInfos | array object | Y | 支付信息 |
| paymentInfos.transactionId | String | Y | 微信支付交易单号 |
| paymentInfos.payTime | long | Y | 支付时间,时间戳 |
| paymentInfos.amount | int | Y | 支付金额(分) |
| paymentInfos.payType | int | Y | 支付单类型 0:尾款 1:预付 |
| refundInfos | array object | N | 退款信息 |
| refundInfos.transactionId | String | Y | 微信支付交易单号 |
| refundInfos.refundTime | long | Y | 发起呼叫时间,时间戳 |
| refundInfos.amount | int | Y | 退款金额(分) |
| refundInfos.outRefundNo | String | Y | 商户退款单号 |
- 请求数据示例 :
{
"orderId": "TXC8l3Do3ZXiUoorE6aELrKA",
"spOrderId": "2549Q4SGO4WTTGV",
"payType":1,
"paymentInfos":[
{ "transactionId": "4200002684202504103882593261",
"payTime":1743670096000,
"amount": 1304,
"payType":1
}],
"refundInfos":[
{ "transactionId": "4200002684202504103882593261",
"refundTime":1743670096500,
"amount": 191,
"outRefundNo": "849347933613623496"
}]
}
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|---|---|
| code | int | 服务响应状态 |
| message | String | 服务响应状态说明 |
- 返回数据示例 :
{
"code": 0,
"message": "成功"
}
# 2.2.3.17 通知加急举手确认
- 接口说明 : 腾讯通知运力加急举手确认
- 请求地址 :
<sp_url_prefix>/api/order/notify/highConfirm - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|
# 2.2.3.18 查询车辆支持的控制指令
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):查询订单车辆支持的控制指令信息
- 请求地址 :
<sp_url_prefix>/api/order/controlCommand/info - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|---|---|
| controlCommands | List | 车辆支持的控制指令,见4.15 |
- 返回数据示例 :
{
"controlCommands": ["UNLOCK_REAR_RIGHT_DOOR","OPEN_REAR_RIGHT_DOOR"]
}
# 2.2.3.19 执行车辆控制指令
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):执行订单车辆的控制指令
- 请求地址 :
<sp_url_prefix>/api/order/controlCommand/execute - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| controlCommand | string | 32 | Y | 车辆支持的控制指令,见4.15 |
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|---|---|
| status | int | 执行状态。枚举见4.17 |
| executionId | string | 执行唯一Id |
# 2.2.3.20 查询车辆控制指令的执行结果
- 接口说明 :查询车控指令的执行结果,当执行车控指令(见2.2.3.17)是异步操作时,提供该接口查询执行结果
- 请求地址 :
<sp_url_prefix>/api/order/controlCommand/query - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| executionId | string | 32 | Y | 命令执行的唯一Id,见2.2.3.17 |
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|---|---|
| status | int | 执行状态。枚举见4.17 |
# 2.2.3.21 司机换单推荐接口
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):发起司机换单推荐请求
- 请求地址 :
<sp_url_prefix>/api/order/driver/exchange/recommend - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 原有腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 原有运力商订单 ID |
| driverId | string | 32 | Y | 司机Id(司机唯一标识) |
| recommendOrderId | string | 32 | Y | 推荐的腾讯出行订单 ID |
| recommendSpOrderId | string | 32 | Y | 推荐运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| recommendOrderId | string | 32 | Y | 推荐的腾讯出行订单ID |
| recommendSpOrderId | string | 32 | Y | 推荐运力商订单ID |
# 2.2.3.22 接机航班时间变动
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):根据航班时间变动自动修改用车时间
- 请求地址 :
<sp_url_prefix>/api/order/flight/time/modify - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| departureTime | string | 20 | Y | 新的乘车时间,日期时间格式,如: 2022-08-01 14:00:00,默认为当前 时间,参考4.8 |
| flightNo | string | 10 | Y | (接机)航班号 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.2.3.23 订单取消原因
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):推送用户取消订单的原因
- 请求地址 :
<sp_url_prefix>/api/order/cancel/reason - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| cancelType | string | 32 | Y | 取消原因分类 |
| cancelReason | string | 64 | Y | 取消原因 |
返回数据 :
参数名称 类型 长度 必选 说明
# 2.2.4 司乘
# 2.2.4.1 查询司机位置
接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询司机当前位置,限订单服务中(司机接单到服务完成)
请求地址 :
<sp_url_prefix>/api/order/driver/location请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lng | double | Y | 经度 | |
| lat | double | Y | 纬度 | |
| pollingFrequency | int | N | 下一次定期拉取的秒数 | |
| direction | double | Y | 车头方向 0-360 | |
| interval | int | N | 频次 | |
| uniqueRouteId | string | N | 导航路线id | |
| driveRoutePath | object | N | 导航路线 | |
| distance | double | N | 导航路线总里程 | |
| duration | double | N | 导航路线总时长 | |
| polyline | string | N | 导航路线点坐标 | |
| routeId | int | N | 上次服务器下发的路线id(首次传0) | |
| trafficId | int | N | 路况版本id(唯一标识路况)。 路况变更,则需更新路况版本id | |
| traffic | array | N | 路况 | |
| startIndex | int | N | 对应路线起始索引 | |
| endIndex | int | N | 对应路线末端索引 | |
| status | int | N | 该路段路况等级:0:畅通 1:缓行 2:拥堵 3:无路况 4:严重拥堵 | |
| speed | float | N | 该路段平均车速,单位:公里/小时, 可以是小数 |
# 2.2.4.2 查询司机虚拟手机号码
接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询司机虚拟手机号码
接口地址 :
<sp_url_prefix>/api/order/driver/phone请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| passengerMobile | string | 32 | N | 乘客手机号 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| driverVirtualPhone | string | 20 | Y | 司机虚拟手机号码 |
# 2.2.5 im
# 2.2.5.1 乘客向司机发送im消息
接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询司机虚拟手机号码
接口地址 :
<sp_url_prefix>/api/im/passenger/send请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单ID |
| spOrderId | string | 32 | Y | 运力商订单ID |
| msgId | string | Y | 腾讯出行消息id | |
| msgType | int | Y | 消息类型 1-文本 2-图片 3-语音 (目前仅支持文字) | |
| text | object | N | ||
| text.text | string | 文本消息内容 | ||
| image | object | N | ||
| image.type | int | 图片格式, 1-webp, 2-png, 3-jpg, 4-gif | ||
| image.url | string | 图片链接 | ||
| audio | object | N | ||
| audio.url | string | 语音链接 | ||
| audio.duration | int | 语音持续时间,单位秒 | ||
| driverId | string | N | 司机id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| spMsgId | string | N | 运力侧消息id | |
| timestamp | long | 20 | N | 消息发送时间戳 |
# 2.2.5.2 乘客向司机发送im事件
接口说明 : 运力商提供(腾讯出行服务向运力商调用):乘客向司机发送im事件
接口地址 :
<sp_url_prefix>/api/im/passenger/event请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| eventType | int | Y | 事件类型,1: 消息已读,2: 消息撤回。 注:暂不支持消息撤回 | |
| orderId | string | 32 | Y | 腾讯出行订单ID |
| spOrderId | string | 32 | Y | 运力商订单ID |
| driverId | string | Y | 司机ID | |
| spMsgIdList | array string | Y | 运力侧消息id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.6 发票
# 2.2.6.1 开票
接口说明 : 运力商提供(腾讯出行服务向运力商调用):申请发票
发票由腾讯出行负责将发票发送给用户,如果合同有特殊约定的按照约定处理。 目前仅支持按照订单开票,发票仅支持电子发票,支持一年内的订单开具发票,附加费用不支持开具发票,每次最多 30 个订单。
注意:电子发票有纸电票(纸质发票电子化)、数电票(全面数字化的电子发票)两种(区别可参考上海市税务局相关说明 (opens new window))。申请开票时传入的
invoiceType=0仅表示申请开电子发票,并不限制具体开何种电子发票,运力商可根据自身情况开具纸电票或数电票。
- 请求地址 :
<sp_url_prefix>/api/invoice/create - 请求参数 :
| 参数名称 | 类型 | 长度 | 必 选 | 说明 |
|---|---|---|---|---|
| spOrders | array object | Y | 每次最多 30 个订单 | |
| spOrders.spOrderId | string | 32 | Y | 运力订单 ID |
| spOrders.amount | int | Y | 订单对应的开票金额,单位:分 | |
| invoiceAmount | int | Y | 订单总开票金额 | |
| buyerType | int | Y | 开票所属类型, 1-企业,2-个人 | |
| invoiceType | int | Y | 发票类型:0. 电子发票, 仅支持电子发票 | |
| invoiceTitle | string | 80 | N | 发票抬头,开票所属类型为 2 时必选 |
| taxNum | string | 20 | N | 纳税人识别号,开票所属类型 为 1 时必选 |
| sender | int | Y | 发送方,1-腾讯出行 2-运力方,需和 腾讯出行约定发送方,没有特殊约定的 应当由腾讯出行发送 | |
| receiverName | string | 20 | Y | 发票接收人姓名 |
| receiverPhone | string | 20 | Y | 发票接收人手机号 |
| receiverEmail | string | 50 | Y | 发票接收人邮箱 |
| bankName | String | 50 | N | 开户行 |
| bankAccount | String | 100 | N | 开户行帐号 |
| regAddress | String | 100 | N | 注册地址 |
| regTel | String | 20 | N | 注册电话 |
| remark | string | 50 | N | 备注 |
| travelerName | string | 20 | N | 出行人姓名 |
| idNumber | string | 50 | N | 出行人身份证号 |
- 返回数据
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| invoices | array object | |||
| invoices.invoiceId | string | 32 | Y | 发票 ID |
| invoices.amount | int | Y | 发票金额 | |
| invoices.invoiceSpOrderIds | array string | Y | 该发票 id 对应的运力商订单号 注:与上面 2 个同级 (invoiceId, amount) | |
| invalidSpOrderIds | array string | N | 全部无效的运力商订单号列表 |
# 2.2.6.2 开票状态查询
接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询开票状态
请求地址 :
<sp_url_prefix>/api/invoice/status请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| invoiceId | string | 32 | Y | 发票 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| invoiceId | string | 32 | Y | 发票ID |
| status | int | Y | 开票状态 1-开票中 2-已开票 3-开票失败 4-已取消 5-已作废 | |
| invoiceMaterialType | int | N | 发票材质类型,取值见4.11 默认为 0-纸电票 | |
| invoiceTitle | string | 80 | N | 发票抬头,status=2时必选 |
| invoiceContent | string | 50 | N | 发票内容,status=2时必选 |
| taxNum | string | 20 | N | 纳税人识别号,status=2时必选 |
| invoiceUrl | string | 300 | N | 发票下载地址,status=2时必选 |
| invoiceXmlUrl | string | 300 | N | 发票xml文件下载地址 若发票材质类型为数电票(invoiceMaterialType=2), 在status=2时必填 |
# 2.2.6.3 发票作废
接口说明 : 运力商提供(腾讯出行向运力商调用):用户/客服在进行发票作废时 ,同步运力进行发票作废处理
请求地址 :
<sp_url_prefix>/spapi/invoice/reddashed请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| invoiceId | string | 32 | Y | 作废的发票id |
| amount | string | 32 | Y | 作废的发票金额 |
| reason | string | 64 | Y | 发票作废原因 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.7 工单
# 2.2.7.1 创建工单
接口说明 : 运力商提供(腾讯出行服务向运力商调用):发起创建客服工单
请求地址 :
<sp_url_prefix>/spapi/work/create请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯工单号 |
| orderId | string | 32 | Y | 腾讯订单号 |
| spOrderId | string | 32 | Y | 运力商订单号 |
| workCategoryId | long | 20 | Y | 腾讯工单分类id(通常取到三级分类id) |
| workCategoryName | string | 255 | N | 腾讯工单分类(参考附录12.3 工单问题分类) |
| workTitle | string | 255 | N | 工单标题(如果无原始标题,推荐选择一二三级分类的文字组合传输) |
| description | string | 2048 | Y | 工单客诉内容描述,(更新客诉问题按累加描述,一般为工单发起方记录) |
| complaintPhone | string | 32 | N | 投诉手机号,仅做联系用户使用 |
| priority | int | - | Y | 工单优先级(参考4.12.4 工单优先级) |
| exInformation | string | 2048 | N | 附加信息(工单补充信息,双方协商,提前定义结构字段开发) |
| attachments | string | 2048 | N | 客诉时用户上传的附件(json数组字符串,内容为图片url, 示例:["fileUrl1","fileUrl2"]) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯出行工单号 |
| spWorkId | string | 32 | Y | 运力商工单号 |
# 2.2.7.2 更新工单
接口说明 : 运力商提供(腾讯出行服务向运力商调用):更新客服工单
请求地址 :
<sp_url_prefix>/spapi/work/update请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯工单号 |
| spWorkId | string | 32 | N | 运力商工单号 |
| optResult | string | 2048 | N | (腾讯或运力商)处理方客服处理结果内容 |
| status | int | - | Y | 工单状态(参考4.12.1 工单状态) |
| solution | int | - | N | 工单处理结果(参考4.12.2 工单处理结果类型) |
| description | string | 2048 | Y | 工单客诉内容描述,(更新客诉问题按累加描述,一般为工单发起方记录) |
| priority | int | - | Y | 工单优先级(参考4.12.4 工单优先级) |
| exInformation | string | 2048 | N | 附加信息(工单补充信息,双方协商,提前定义结构字段开发) |
| workOrderDetail | object | - | N | - |
| workOrderDetail.cancel | int | - | N | 取消状态码,solution=1取消订单时必填(参考4.12.2 工单处理结果类型说明) |
| workOrderDetail.refundType | int | - | N | 退款状态码,solution=2退款时必填(参考4.12.2 工单处理结果类型说明) |
| workOrderDetail.refundAmount | int | - | N | 退款金额,solution=2退款时必填(单位:分) |
| workOrderDetail.refundAboutExtraCharge | int | - | N | 退款是否为退附加费,solution=2退款时必填。(0-否,1-是) |
| workOrderDetail.isModifyFee | int | - | N | 改价状态码,solution=3改价时必填(参考4.12.2 工单处理结果类型说明) |
| workOrderDetail.isFreeOrder | int | - | N | 免单状态码,solution=5免单时必填(参考4.12.2 工单处理结果类型说明) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯出行工单号 |
| spWorkId | string | 32 | Y | 运力商工单号 |
# 2.2.7.3 查询工单详情
接口说明 : 运力商提供(腾讯出行服务向运力商调用):查询工单详情
请求地址 :
<sp_url_prefix>/spapi/work/progress请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯出行工单号 |
| spWorkId | string | 32 | Y | 运力商工单号 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| status | int | - | Y | 工单状态,参考4.12.1 工单状态 |
| solution | int | - | N | 工单处理结果,参考4.12.2 工单处理结果类型 |
| workId | string | 32 | Y | 腾讯工单号 |
| spWorkId | string | 32 | N | 运力商工单号 |
| optResult | string | 2048 | N | 腾讯或运力商,处理方客服处理结果内容。 |
| detail | object | - | N | - |
| detail.cancel | int | - | N | 取消状态码,solution=1取消订单时必填(参考4.12.2 工单处理结果类型说明) |
| detail.refundType | int | - | N | 退款状态码,solution=2退款时必填(参考4.12.2 工单处理结果类型说明) |
| detail.refundAmount | int | - | N | 退款金额,solution=2退款时必填(单位:分) |
| detail.refundAboutExtraCharge | int | - | N | 退款是否为退附加费,solution=2退款时必填。(0-否,1-是) |
| detail.isModifyFee | int | - | N | 改价状态码,solution=3改价时必填(参考4.12.2 工单处理结果类型说明) |
| detail.isFreeOrder | int | - | N | 免单状态码,solution=5免单时必填(参考4.12.2 工单处理结果类型说明) |
| detail.exInformation | string | 2048 | N | 附加信息(工单补充信息,双方协商,提前定义结构字段开发) |
# 2.2.7.4 工单催单
接口说明 : 运力商提供(腾讯出行服务向运力商调用):进行工单催单
请求地址 :
<sp_url_prefix>/spapi/work/reminder请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯工单号 |
| description | string | 2048 | Y | 催单客服内容描述(一般为催单发起方记录) |
| attachments | string | 2048 | N | 催单时客服上传的附件(json数组字符串, 内容为图片url,示例:["fileUrl1","fileUrl2"]) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯出行工单号 |
| spWorkId | string | 32 | Y | 运力商工单号 |
# 2.2.8 判责
# 2.2.8.1 同步判责处置(退改)信息(腾讯 to 运力)
接口说明 :腾讯向运力侧同步订单处置(退改)信息
请求地址 :
<tmscx_url_prefix>/api/imputation/order/dispose
请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| violationId | String | Y | 违规id,本次订单处置唯一标识 |
| orderId | String | Y | 订单Id |
| spOrderId | String | Y | 运力商订单号 |
| orderBlameType | Integer | Y | 订单判责类别 参见4.14 |
| responsibleParty | Integer | Y | 责任方 1:司机责任 2:乘客责任 3:无法判责 4:腾讯方责任 5:服务方责任 |
| disposeType | Integer | Y | 处置类型 1 部分退款 2 全额退款 3 改价 4 免单 |
| totalChangeFee | Integer | Y | 总退改金额 单位:分 |
| spUndertakeTotalAmount | Integer | Y | 运力承担成本金额 单位:分 |
| travelChangeFee | Integer | Y | 行程费退改金额 单位:分 |
| attachChangeFee | Integer | Y | 附加费退改金额 单位:分 |
| attachPriceChangeDetails | List | N | 附加费退改费项明细 |
| attachPriceChangeDetails.code | String | Y | 费用明细类型Code |
| attachPriceChangeDetails.name | String | Y | 费用明细名称 |
| attachPriceChangeDetails.originalAmount | Integer | Y | 退改前金额,分 |
| attachPriceChangeDetails.afterAmount | Integer | Y | 退改后金额,分 |
| appealable | Boolean | Y | 是否可申诉 |
| maxAppealCount | Integer | Y | 最大申诉次数 |
| appealCutoffTime | Long | Y | 申述最大截止时间 时间戳 秒级 |
| remark | String | N | 备注信息 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.2.8.2 同步申诉结果(腾讯 to 运力)
接口说明 :腾讯向运力侧同步司机申述的结果
请求地址 :
<tmscx_url_prefix>/api/imputation/appealResult请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| violationId | String | Y | 违规id |
| orderId | String | Y | 腾讯订单号 |
| spOrderId | String | Y | 运力商订单号 |
| appealId | String | Y | 申诉id(运力申诉唯一标识) |
| appealResult | Integer | Y | 申述结果 1.通过、2.驳回 |
| desc | String | N | 申述结果说明 |
| totalChangeFee | Integer | N | 退改总金额 单位分 |
| agentUndertakeTotalAmount | Integer | N | 申诉后腾讯承担总金额 单位分 |
- 请求数据示例
{
"violationId": "VIOLATION123456789",
"orderId": "ORDER20240324",
"spOrderId": "SPORDER20240324",
"appealId": "APPEAL20240324",
"appealResult": 2,
"desc": "根据客服审核,申述理由充分,予以通过。",
"totalChangeFee": 5000,
"agentUndertakeTotalAmount": 3000
}
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3 腾讯出行服务接口
注意:以下接口中的请求参数均指2.1.1 公共请求参数中的data字段,返回数据均指2.1.2 公共响应参数中的data字段。
# 2.3.1 订单
# 2.3.1.1 订单状态回调
- 接口说明 : 腾讯出行服务提供(运力商调用):通知腾讯出行订单状态的变更,包括司机接单、完结、改价、退款等。
- 请求地址 :
<tms_url_prefix>/spapi/order/callback - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| event | int | Y | 回调事件 ID,参考4.5.2 | |
| eventTime | string | 20 | Y | 事件发生时间,日期时间格式,比如: 2022- 08-01 15:37:20,参考4.8 |
| rideType | int | N | 运力类型,参考4.3 | |
| aheadDynamicDiscountAmount | int | N | 预分单动态优惠金额,单位:分 | |
| driver | object | N | 司机信息,event=3、31时必传 (3-司机接单、31-改派) | |
| vehicle | object | N | 车辆信息,event=3、31时必传 (3-司机接单、31-改派) | |
| driverLocation | object | N | 司机位置信息,event=3、31、 4、5、6、7 时必传 | |
| circleStatus | int | N | 绕圈状态,event=51时必传,1:开始绕圈;2:结束绕圈 | |
| position | object | N | 实际上下车地点信息,event=6、7 时必传 | |
| waypoint | object | N | 到达的途经点信息,event=62时必传 | |
| distance | int | N | 实际行程里程,event=8 时必传, 单位为米 | |
| duration | int | N | 实际行程时长,event=8 时必传, 单位为秒 | |
| cost | object | N | 账单信息,event=8,81,91 时必传 | |
| cancelType | int | N | event=12 时必传 ,参考4.6 | |
| haveCancelFee | boolean | N | 是否有取消费 | |
| relayOrderInfo | object | N | 连环单信息;若司机举手时传入连环单信息,后续事件回调必传 |
driver
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| id | string | 32 | Y | 司机 id(需要保证唯一即可) |
| name | string | 32 | Y | 司机姓名 |
| avatar | string | 300 | N | 司机头像 |
| phone | string | 20 | N | 司机真实手机号码 |
| virtualPhone | string | 20 | Y | 司机虚拟手机号码 |
| rate | string | 10 | N | 司机评级(例 5.0) |
| acceptCount | int | N | 司机接单数 | |
| supportRecommendExchange | int | 10 | N | 是否支持换单推荐 1-不支持 2-支持 |
| dispatcher | int | 10 | N | 是否调度员 1-否 2-是 |
vehicle
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| plate | string | 10 | Y | 车牌号 |
| color | string | 10 | Y | 汽车颜色 |
| brand | string | 20 | Y | 汽车品牌 |
| model | string | 20 | Y | 汽车型号 |
| picture | string | 300 | N | 汽车图片的 URL |
| wheelbase | int | - | N | 车辆轴距,单位mm |
| lightColor | string | 32 | N | 灯带颜色RGB码 |
| lightColorName | string | 32 | N | 灯带颜色名称,eg: "红",“黄”,“绿” |
| autonomousSign | string | 32 | N | 自动驾驶标识,自动驾驶车辆 |
driverLocation
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lat | double | Y | 纬度 | |
| lng | double | Y | 经度 | |
| address | string | N | 地址 |
position
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| startName | string | 50 | N | 预约出发地名称 |
| startAddress | string | 100 | N | 预约出发详细地址 |
| startLat | double | N | 预约出发地纬度 | |
| startLng | double | N | 预约出发地经度 | |
| endName | string | 50 | N | 预约目的地名称 |
| endAddress | string | 100 | N | 预约目的详细地址 |
| endLat | double | N | 预约目的地纬度 | |
| endLng | double | N | 预约目的地经度 | |
| factStartLat | double | N | 实际上车纬度,event=6时,必传 | |
| factStartLng | double | N | 实际上车经度,event=6时,必传 | |
| factStartAddr | string | 100 | N | 实际出发详细地址 |
| factEndLat | double | N | 实际到达纬度,event=7时,必传 | |
| factEndLng | double | N | 实际到达经度,event=7时,必传 | |
| factEndAddr | string | 100 | N | 实际到达详细地址 |
cost
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| totalAmount | int | Y | 实际总费用,单位:分 总费用由2部分组成:行程费+附加费 如果订单有责取消,totalAmount 应该等于取消费未支付改价, totalAmount 同步更新 | |
| orderAmount | int | Y | 行程费用,作为优惠计算、分佣的基数 未支付改价,orderAmount 同步更新 | |
| extraAmount | int | Y | 总费用中的附加费用 如路桥、停车等非司机服务的费用 未支付改价,extraAmount 同步更新 | |
| details | array object | N | 明细 | |
| details.name | string | 30 | Y | 明细项名称 |
| details.amount | int | Y | 明细项金额,单位为分 | |
| details.code | string | N | 费用明细的唯一标志,见4.10 | |
| details.invoiceType | int | N | 默认0,不参与开票, -1 折扣 ,1 参与开票 | |
| refundAmount | int | N | 累计退款金额,支付后退款的金额 |
途经点waypoint:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lat | double | Y | 途经点纬度 | |
| lng | double | Y | 途经点经度 | |
| name | string | 50 | Y | 途经点名称 |
| address | string | 100 | Y | 途经点详细地址 |
连环单信息 relayOrderInfo
| 参数名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| status | Integer | Y | 上一单状态,1 - 进行中,2 - 已结束 |
| prevEndLat | Double | Y | 上一单终点维度 |
| prevEndLng | Double | Y | 上一单终点经度 |
| prevAddress | String | N | 上一单终点名称 |
| remainDistance | Integer | N | 上一单剩余距离,单位:米 |
| remainDuration | Integer | N | 上一单剩余时间,单位:秒 |
| orderId | String | N | 若上一单为腾讯渠道订单,可传入订单号 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3.1.2 查询订单支付状态
- 接口说明 : 腾讯出行服务提供(运力商调用):查询腾讯出行的订单支付状态
- 请求地址 :
<tms_url_prefix>/spapi/order/status - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| status | int | Y | 订单状态,4.5.1 | |
| payStatus | int | Y | 支付状态,4.5.3 | |
| paidAmount | int | N | 用户已付的金额,单位为分 | |
| couponId | string | 32 | N | 使用的优惠券 |
| couponAmount | int | N | 优惠券减免的金额,单位为分 | |
| transactionId | string | 32 | N | 微信支付流水号 |
| payTime | string | 20 | N | 支付时间 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3.1.3 根据真实手机号查询用户订单列表
接口说明 : 腾讯出行提供(运力商调用):根据真实手机号查询订单列表。
请求地址 :
<tms_url_prefix>/spapi/order/list/phone请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| phone | string | 20 | Y | 真实手机号 |
| startTime | string | 20 | Y | 开始时间;日期时间格式,参考附录8,如:2024-04-19 19:16:03 |
| endTime | string | 20 | Y | 开始时间;日期时间格式,参考附录8,如:2024-04-19 19:16:03 时间跨度不超过15个自然日 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| list | array | N | 订单列表;最多返回30条数据 | |
| list.spOrderId | string | Y | 运力商订单号 | |
| list.createTime | string | 20 | Y | 下单时间,参考4.8, 如:2024-04-19 19:16:03 |
# 2.3.1.6 根据订单查询真实手机号
接口说明 : 腾讯出行提供(运力商调用):根据订单查询用户真实手机号。
请求地址 :
<tms_url_prefix>/spapi/order/getPhone请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| phone | string | Y | 用户真实手机号 |
# 2.3.1.7 司机换单推荐结果通知回调
接口说明 : 腾讯出行提供(运力商调用):司机换单推荐结果通知回调。
请求地址 :
<tms_url_prefix>/spapi/driver/exchange/recommend/callback请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 原有腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 原有运力商订单 ID |
| driverId | string | 32 | Y | 司机信息(司机唯一标识) |
| recommendOrderId | string | 32 | Y | 推荐的腾讯出行订单 ID |
| recommendSpOrderId | string | 32 | Y | 推荐运力商订单 ID |
| recommendExchangeStatus | int | 10 | Y | 换单结果(1-成功 2-失败) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3.2 司乘
# 2.3.2.1 司机位置上报
- 接口说明 : 腾讯出行服务提供(运力商调用):订单状态更新为“司机已出发”之后,运力商应当以每10秒1次的频率向腾讯出行服务出行推送司机位置信息。
注:如果不提供订单轨迹接口,需要回调腾讯出行司机位置数据。
请求地址 :
<tms_url_prefix>/spapi/driver/location请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| lat | double | Y | 纬度 | |
| lng | double | Y | 经度 | |
| direction | double | Y | 车头方向 | |
| time | string | 20 | Y | 更新位置时间,日期时间格式, 如:2022-08-01 15:27:32,参考4.8 |
| status | int | Y | 订单状态,参考4.5.1 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3.2.2 查询乘客虚拟号码(接入前联系平台配置)
- 接口说明 : 腾讯出行服务提供(运力商调用):运力商查询用户虚拟号。 在“决策通知”后,可以进行查询。行程结束后虚拟号会解绑。 使用乘客虚拟号码后,下单接口将只传乘客手机后 4 位。
注:如接入此接口,请提前联系平台进行配置。
请求地址 :
<tms_url_prefix>/spapi/order/passenger/phone请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.3.2.3 路线规划回调
接口说明 : 腾讯出行服务提供(运力商调用):成单后,当接(送)驾路线规划发生变化时,运力商向腾讯出行服务出行推送新的路线规划信息
请求地址 :
<tms_url_prefix>/spapi/order/direction/callback请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| mapEngine | int | - | Y | 地图导航类型,1 腾讯地图 2 高德地图 3 百度地图 |
| eventTime | long | - | Y | 司机侧生成路线时间戳 |
| routeType | int | - | Y | 接送驾标识,1-接驾,2-送驾 |
| routeId | string | 32 | Y | 路线id(唯一标识一条路线)。路线变更,则需更新路线id。 |
| routeDuration | int | - | Y | eta预估时间(秒)。默认值0 |
| routeDistance | int | - | Y | 预估距离(米),默认值0 |
| routePoints | object | - | Y | 路径点串拆分坐标 |
| routePoints.base | object | - | Y | 基准坐标 |
| routePoints.base.lat | double | - | Y | 纬度 |
| routePoints.base.lng | double | - | Y | 经度 |
| routePoints.dlats | List | - | Y | 纬度拆分 |
| routePoints.dlngs | List | - | Y | 经度拆分 |
| viaPoints | array object | - | N | 关键途经点 |
| viaPoints.lat | double | - | Y | 途经点纬度 |
| viaPoints.lng | double | - | Y | 途经点经度 |
| viaPoints.type | int | - | Y | 途经点类型,1:拼车单、2:接力单 |
| viaPoints.status | int | - | Y | 途经点状态,0:已路过、1:进行中 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
- 普通经纬度坐标转换为基点+偏移量示例 :
public static DiffGeoPoints encodeDiffGeoPoints(List<Point> points) {
if (points == null || points.isEmpty()) {
return null;
}
// 基点坐标
Point firstPoint = points.get(0); // 第一个点坐标
double baseLng = firstPoint.getLng() * 100000;
double baseLat = firstPoint.getLat() * 100000;
DiffGeoPoints geo = new DiffGeoPoints();
geo.setBase(new Point(baseLng, baseLat));
// 偏移量
List<Integer> dLngs = new ArrayList<>();
geo.setDLngs(dLngs);
List<Integer> dLats = new ArrayList<>();
geo.setDLats(dLats);
for (int i = 1; i < points.size(); i++) {
Point point = points.get(i);
double curLng = point.getLng() * 100000;
double lng = (curLng - baseLng) * 100;
double curLat = point.getLat() * 100000;
double lat = (curLat - baseLat) * 100;
dLngs.add((int) lng);
dLats.add((int) lat);
}
return geo;
}
# 2.3.3 im
# 2.3.3.1 司机向乘客发送im消息
接口说明 : 腾讯出行提供(运力商调用):司机向乘客发送im消息
请求地址 :
<tms_url_prefix>/spapi/im/driver/send请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单ID |
| spOrderId | string | 32 | Y | 运力商订单ID |
| spMsgId | string | Y | 运力侧消息id | |
| msgType | integer | Y | 消息类型 1-文本 2-图片 3-语音 (目前仅支持文字) | |
| text | object | |||
| text.text | string | 文本消息内容 | ||
| image | object | |||
| image.type | integer | 图片格式, 1-webp, 2-png, 3-jpg, 4-gif | ||
| image.url | string | 图片链接 | ||
| audio | object | |||
| audio.url | string | 语音链接 | ||
| audio.duration | integer | 语音持续时间,单位秒 | ||
| driverId | string | 司机id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| msgId | string | N | 腾讯出行消息id | |
| timestamp | long | 消息发送时间戳 |
# 2.3.3.2 司机向乘客发送im事件
接口说明 : 腾讯出行提供(运力商调用):司机已读乘客im消息
请求地址 :
<tms_url_prefix>/spapi/im/driver/event请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| eventType | int | Y | 事件类型,1: 消息已读,2: 消息撤回。 注:暂不支持消息撤回 | |
| orderId | string | 32 | Y | 腾讯出行订单ID |
| spOrderId | string | 32 | Y | 运力商订单ID |
| driverId | string | Y | 司机ID | |
| msgIdList | array | Y | 腾讯出行消息id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3.4 发票
# 2.3.4.1 发票状态回调
接口状态 : 开发中
请求地址 :
<tms_url_prefix>/spapi/invoice/callback请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| invoiceId | string | 50 | Y | 发票 ID |
| event | int | Y | 发票回调事件,参考4.9 | |
| eventTime | string | 20 | Y | 发票回调事件发生时间,日期时间格式, 比如:2022-08-01 15:27:03, 参考4. 8 |
| eventMessage | string | 100 | N | 事件说明, event=2、4 时,说明失败原因 |
| invoiceMaterialType | int | 100 | N | 发票材质类型,取值见4.11,默认为 0-纸电票 |
| invoiceAmount | int | N | 发票金额,event=1 必选,单位分 | |
| invoiceTitle | string | 80 | N | 发票抬头,event=1 必选 |
| taxNum | string | 20 | N | 纳税人识别号,event=1 必选 |
| invoiceContent | string | 50 | N | 发票内容,event=1 必选 |
| invoiceUrl | string | 300 | N | 发票下载地址,event=1 必选 |
| invoiceXmlUrl | string | 300 | N | 发票xml文件下载地址,若发票材质类型为数电票(invoiceMaterialType=2),在event=1时必填 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.3.5 工单
# 2.3.5.1 工单回调
- 接口说明 : 腾讯出行提供(运力商调用):运力商工单处理结果变更时通知腾讯出行
说明:工单回调主要做运力商发起创建工单、进行中工单流转和通知,取消、退款、改价、补偿优惠券等操作以订单系统的实际操作为准。
请求地址 :
<tms_url_prefix>/spapi/work/callback请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | N | 腾讯工单号。如果进行中 工单回调,需填写;如果是 运力商发起创建工单,则为空。 |
| spWorkId | string | 32 | Y | 运力商工单号 |
| orderId | string | 32 | Y | 腾讯订单号 |
| spOrderId | string | 32 | Y | 运力商订单号 |
| workCategoryId | Long | 20 | Y | 腾讯工单分类id(通常取到 三级分类id) |
| workCategoryName | string | 255 | N | 腾讯工单分类(参考4.12.3 工单问题分类) |
| workTitle | string | 255 | N | 工单标题(如果无原始标题, 推荐选择一二三级分类的 文字组合传输) |
| description | string | 2048 | Y | 工单客诉内容描述,(更新 客诉问题按累加描述,一般为 工单发起方记录) |
| complaintPhone | string | 32 | N | 投诉手机号(仅做联系用户使用) |
| optResult | string | 2048 | N | (腾讯或运力商)处理方客服处理 结果内容 |
| priority | int | Y | 工单优先级(参考4.12.4 工单 优先级) | |
| status | int | Y | 工单状态(参考4.12.1 工单状态) | |
| solution | int | N | 工单处理结果类型(参考4.12.2 工单处理结果类型) | |
| exInformation | string | 2048 | N | 附加信息(工单补充信息, 双方协商,提前定义结构字段开发) |
| attachments | string | 2048 | N | 运力处理完返回结果的附件 (json数组字符串,内容为 图片url ,示例:["fileUrl1","fileUrl2"]) |
| detail | object | N | ||
| detail.cancel | int | N | 取消状态码,solution=1取消 订单时必填(参考4.12.2 工单处理结果类型说明) | |
| detail.refundType | int | N | 退款状态码,solution=2退款 时必填(参考4.12.2 工单处理结果类型说明) | |
| detail.refundAmount | int | N | 退款金额,solution=2退款 时必填(单位:分) | |
| detail.refundAboutExtraCharge | int | N | 退款是否为退附加费, solution=2退款时必填。 (0-否,1-是) | |
| detail.isModifyFee | int | N | 改价状态码,solution=3 改价时必填(参考4.12.2 工单 处理结果类型说明) | |
| detail.isFreeOrder | int | N | 免单状态码,solution=5 免单时必填(参考4.12.2 工单 处理结果类型说明) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workId | string | 32 | Y | 腾讯工单号 |
| spWorkId | string | 32 | N | 运力商工单号 |
# 2.3.6 判责
# 2.3.6.1 (复核账单)推送账单给腾讯 ( 运力 to 腾讯)
接口说明 : 运力正式推送账单前,提前预先向腾讯侧推送司机账单,腾讯侧根据推送的司机账单进行判责
请求参数 :
<tmscx_url_prefix>/spapi/imputation/billRecheck请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| tencentOrderId | String | Y | 腾讯侧订单ID |
| spOrderId | String | Y | 合作方订单号 |
| orderAmount | Integer | Y | 订单金额 |
| mileage | Integer | Y | 实际里程(米) |
| duration | Integer | Y | 实际时长(秒) |
| driverPenalty | Object | Y | 司机相关信息 |
| driverPenalty.driverId | String | Y | 司机Id |
| driverPenalty.licensePlate | String | Y | 车牌号 |
| orderAmountDetail | Object(OrderAmountDetail) | Y | 费用详情 |
| estimateId | String | Y | 预估Id |
OrderAmountDetail
| 参数名称 | 类型 | 描述 | 必填 |
|---|---|---|---|
| extraFee | Object | 附加费 如高速费,路桥费,停车费等 | Y |
| extraFee.amount | Integer | 附加费总金额 | Y |
| extraFee.detail | Object(FeeDetail) | 附加费分项明细 | Y |
| tripFee | Object | 行程费 如里程费,时长费 等 | Y |
| tripFee.amount | Integer | 行程费总金额 | Y |
| tripFee.detail | Object(FeeDetail) | 行程费分项明细 | Y |
FeeDetail
| 参数名称 | 类型 | 描述 | 必填 |
|---|---|---|---|
| amount | Integer | 费用金额 | Y |
| description | String | 描述 | Y |
| code | String | 费用类型Code | Y |
- 请求数据示例 :
{
"tencentOrderId": "2024110400000001",
"spOrderId": "CO1234567890",
"orderAmount": 5000,
"mileage": 15000,
"duration": 3600,
"driverPenalty": {
"driverId": "DR123456789",
"licensePlate": "京A12345"
},
"orderAmountDetail": {
"extraFee": {
"amount": 500,
"detail": {
"amount": 500,
"description": "高速费",
"code": "HIGHWAY_FEE"
}
},
"tripFee": {
"amount": 4500,
"detail": {
"amount": 4500,
"description": "里程费",
"code": "MILEAGE_FEE"
}
}
},
"estimateId": "ES1234567890"
}
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|---|---|
| code | Integer | 服务响应状态 |
| message | String | 服务响应状态说明 |
| data | Object | 响应结构体 |
| data.hitOrderBlame | Boolean | 是否命中判责 |
| data.tencentOrderId | String | 腾讯订单ID |
| data.spOrderId | String | 服务商订单ID |
| data.orderBlameInfo | Object(OrderBlameInfo) | 判责数据,当hitOrderBlame 为true 时,返回该字段 |
OrderBlameInfo:
| 参数名称 | 类型 | 说明 |
|---|---|---|
| violationId | String | 违规Id 唯一标识当前订单判责 |
| orderBlameType | Integer | 判责分类ID,参见4.14 |
| orderBlameMsg | String | 判责分类描述 |
| sugDisposeMsg | String | 建议处置调整账单方案描述 |
| maxRecheckTime | Integer | 复核最大截止时间 秒级时间戳 |
| isSupportAppealId | Boolean | 是否支持申述 |
| driverPenalty | Object | 司机相关信息 |
| driverPenalty.driverId | String | 司机Id |
| driverPenalty.licensePlate | String | 车牌号 |
| originalOrderAmount | Integer | 判责前订单金额 单位分 |
| afterOrderAmount | Integer | 判责后订单金额 单位分 |
| originalAmountDetail | Object(OrderAmountDetail) | 判责前费用明细 |
| afterAmountDetail | Object(OrderAmountDetail) | 判责后费用明细 |
OrderAmountDetail
| 参数名称 | 类型 | 描述 |
|---|---|---|
| extraFee | Object | 附加费 如高速费,路桥费,停车费等 |
| extraFee.amount | Integer | 附加费总金额 |
| extraFee.detail | Object(FeeDetail) | 附加费分项明细 |
| tripFee | Object | 行程费 如里程费,时长费 等 |
| tripFee.amount | Integer | 行程费总金额 |
| tripFee.detail | Object(FeeDetail) | 行程费分项明细 |
FeeDetail
| 参数名称 | 类型 | 描述 |
|---|---|---|
| amount | Integer | 费用金额 |
| description | String | 描述 |
| code | String | 费用类型Code |
| isRisk | Boolean | 该费用是否有风险 |
- 返回数据示例 :
{
"code": 200,
"message": "请求成功",
"data": {
"hitOrderBlame": true,
"tencentOrderId": "2024110400000001",
"spOrderId": "CO1234567890",
"orderBlameInfo": {
"violationId": "VIOLATION123456",
"orderBlameType": 3,
"orderBlameMsg": "多收通行费",
"sugDisposeMsg": "建议调整账单,退还多收的通行费用",
"maxRecheckTime": 1670000000,
"isSupportAppealId": true,
"driverPenalty": {
"driverId": "DR123456789",
"licensePlate": "京A12345"
},
"originalOrderAmount": 5000,
"afterOrderAmount": 4500,
"originalAmountDetail": {
"extraFee": {
"amount": 500,
"detail": {
"amount": 500,
"description": "高速费",
"code": "HIGHWAY_FEE",
"isRisk": true
}
},
"tripFee": {
"amount": 4500,
"detail": {
"amount": 4500,
"description": "里程费",
"code": "MILEAGE_FEE",
"isRisk": false
}
}
},
"afterAmountDetail": {
"extraFee": {
"amount": 0,
"detail": {
"amount": 0,
"description": "高速费",
"code": "HIGHWAY_FEE",
"isRisk": true
}
},
"tripFee": {
"amount": 4500,
"detail": {
"amount": 4500,
"description": "里程费",
"code": "MILEAGE_FEE",
"isRisk": false
}
}
}
}
}
}
# 2.3.6.2 (复核账单)同步司机复核账单结果(运力 to 腾讯)
- 接口说明 : 运力向腾讯同步司机复核账单的结果
- 请求地址 :
<tmscx_url_prefix>/spapi/imputation/confirmBillRecheck - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| orderId | String | Y | 腾讯侧订单ID |
| spOrderId | String | Y | 合作方订单号 |
| violationId | String | Y | 违规Id |
| driverRecheckResult | String | Y | 司机复核结果 |
| driverRecheckResultType | RecheckResultTypeEnum | Y | 司机复核结果类型 |
| driverRemarkMsg | String | Y | 司机备注数据 |
| proofFileInfos | List | N | 其他证明文件 |
| proofFileInfos.fileType | Integer | Y | 证明文件类型 1.文本、2. 图片、3.音频、4.视频 |
| proofFileInfos.fileUrl | String | Y | 证明文件Url |
| proofFileInfos.fileDesc | String | Y | 证明文件描述 |
RecheckResultTypeEnum 枚举
| 字段值 | 字段描述 |
|---|---|
| 1 | 认可判责 |
| 2 | 否认判责 |
- 请求数据示例 :
{
"orderId": "tencent_order_20240324",
"spOrderId": "partner_order_20240324",
"violationId": "V838827373832993",
"driverRecheckResult": "通过",
"driverRecheckResultType": 2,
"driverRemarkMsg": "司机在规定时间内完成了所有操作,无违规行为。",
"proofFileInfos": [
{
"fileType": 2,
"fileUrl": "http://example.com/evidence/image1.jpg",
"fileDesc": "司机行驶路线截图"
},
{
"fileType": 3,
"fileUrl": "http://example.com/evidence/audio1.mp3",
"fileDesc": "司机与乘客的通话录音"
}
]
}
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|---|---|
| code | int | 服务响应状态 |
| message | String | 服务响应状态说明 |
| data | Object | 响应结构体 |
| data.violationId | String | 违规Id |
| data.recheckStatus | Integer | 复核状态 1 复核成功 2 复核失败 |
| data.recheckFailMsg | String | 申述失败原因, 当申述失败时,返回此字段,表明失败原因 |
- 返回数据示例 :
{
"code": 200,
"message": "操作成功",
"data": {
"violationId": "V638872773728333993382",
"recheckStatus": 2,
"recheckFailMsg": "复核失败,超过复核截止时间。"
}
}
# 2.3.6.3 向腾讯发起退改申诉(运力 to 腾讯)
- 接口说明 : 运力司机向腾讯侧发起对违规的申述
- 请求地址 :
<tmscx_url_prefix>/spapi/imputation/appeal - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| violationId | String | Y | 违规id |
| orderId | String | Y | 腾讯订单号 |
| spOrderId | String | Y | 运力商订单号 |
| appealId | String | Y | 申诉id(申诉唯一标识) |
| applicantInfo | Object | Y | 申诉人信息 |
| applicantInfo.applicantType | Integer | Y | 申请人类型,1 System 2 司机 3 客服 |
| applicantInfo.applicantId | String | Y | 申请人id |
| applicantInfo.applicantName | String | Y | 申请人姓名 |
| applicantInfo.appealNote | String | Y | 申述说明 |
| applicantInfo.appealAmount | Integer | Y | 申诉金额(单位分) |
| appealEvidence | object | Y | 申诉证明信息 |
| appealEvidence.pictureUrls | String | N | 申诉证明文件-图片,多个之间逗号分隔 |
| appealEvidence.tripRecordingUrls | String | N | 申诉证明文件-行程录音,多个之间逗号分隔 |
| appealEvidence.callRecordingUrls | String | N | 申诉证明文件-通话录音,多个之间逗号分隔 |
| appealEvidence.otherProofFileInfos | array object | N | 其他申诉证明文件 |
| appealEvidence.otherProofFileInfos.fileType | Integer | N | 文件类型,1.文本、2. 图片、3.音频、4.视频 |
| appealEvidence.otherProofFileInfos.fileUrl | String | N | 文件Url |
| appealEvidence.otherProofFileInfos.fileDesc | String | N | 文件描述 |
- 请求数据示例 :
{
"violationId": "VIOLATION12345",
"orderId": "ORDER12345678",
"spOrderId": "SPORDER12345",
"appealId": "AppealIdTSHS",
"applicantInfo": {
"applicantType": 1,
"applicantId": "APPLICANT123",
"applicantName": "张三",
"appealNote": "我对此次违规判决有异议",
"appealAmount": 200
},
"appealEvidence": {
"pictureUrls": "picture_1.jpg,picture_2.jpg",
"tripRecordingUrls": "trip_record_1.mp3,trip_record_2.mp3",
"callRecordingUrls": "call_record_1.mp3,call_evidence_2.mp3",
"otherProofFileInfos": [
{
"fileType": 2,
"fileUrl": "http://example.com/image.jpg",
"fileDesc": "相关图片证据"
}
]
}
}
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|
# 2.3.6.4 运力同步司乘通话记录
- 接口说明 : 运力向腾讯同步司乘通话记录
- 请求地址 :
<tmscx_url_prefix>/spapi/order/callRecord - 请求参数 :
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| orderId | String | Y | 腾讯侧订单ID |
| spOrderId | String | Y | 合作方订单号 |
| callId | String | Y | 通话记录ID,一次通话记录唯一标识 |
| caller | int | Y | 主叫方 1:乘客拨打 2:司机拨打 |
| hangupType | int | N | 挂断方 0:平台结束 1:主叫结束,2:被叫结束 |
| callNo | String | Y | 主叫号码 |
| dstVirtualNum | String | Y | 中间虚拟号 |
| peerNo | String | Y | 被叫号码 |
| startCallTime | long | Y | 发起呼叫时间,时间戳 |
| startRingTime | long | N | 响铃时间,时间戳 |
| acceptCallTime | long | N | 通话开始时间,时间戳 |
| endCallTime | long | Y | 通话结束时间,时间戳 |
| callEndStatus | int | Y | 通话最后状态:0:未知状态 1:正常通话 2:未接通 |
| callEndStatusDetail | int | Y | 通话识别状态:1:通话成功 2:被叫空号 3:被叫停机 4:被叫关机 5:被叫忙 6:被叫拒接 7:被叫无应答 8:主叫提前挂断 9:主叫挂机 10:被叫挂机 11:被叫不可及 12:其他错误 |
| recordUrl | String | N | 录音文件 |
- 请求数据示例 :
{
"orderId": "844364640512410856",
"spOrderId": "SPORDER20240324",
"callId": "xxxxx",
"caller": 1,
"hangupType": 2,
"callNo": "13297937786",
"dstVirtualNum": "12345666",
"peerNo": "13487876766",
"startCallTime":1743670096000,
"startRingTime":1743670096000,
"acceptCallTime":1743670096000,
"endCallTime":1743670097000,
"callEndStatus":0,
"callEndStatusDetail":0,
"recordUrl":"xxxx"
}
- 返回数据 :
| 参数名称 | 类型 | 说明 |
|---|
# 2.3.7 优惠券
# 2.3.7.1 运力客服发券
- 接口说明 : 腾讯出行服务提供(运力商调用):运力客服针对某一订单发放优惠券。
- 请求地址 :
<tms_url_prefix>/spapi/coupon/sendByStaff - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| seqId | string | Y | 运力商seqId | |
| grantNo | string | Y | 运力商发劵请求id,每次发券请求不得重复 | |
| orderId | string | Y | 出行订单id(如: TXBjxxxxxxxxxx) | |
| couponSendList | array object | Y | 券发放信息列表 | |
| couponSendList.activityId | long | Y | 券活动id | |
| couponSendList.couponAmount | int | 1~10 | Y | 券数量 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| couponSendList | array object | Y | 券发放结果list | |
| couponSendList.activityId | long | Y | 券活动id | |
| couponSendList.couponAmount | int | 1~10 | Y | 券数量 |
# 2.3.7.2 运力请求活动列表
- 接口说明 : 腾讯出行服务提供(运力商调用):运力请求活动列表。
- 请求地址 :
<tms_url_prefix>/spapi/coupon/listActivity - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| site | string | N | 发券位置 ,7-客服定向发券 | |
| pageNum | int | Y | ⻚码 | |
| pageSize | string | Y | ⻚⻓ | |
| activityId | string | N | 活动id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| id | long | 活动id | ||
| tencentCode | string | 腾讯出行批次号 | ||
| source | int | 优惠券来源0、微信支付1、腾讯出行 | ||
| activityName | string | 活动名称 | ||
| activityStatus | int | 活动状态 | ||
| instructions | string | 使用说明 | ||
| beginTime | date | 发放开始时间 | ||
| sendTime | date | 发放结束时间 | ||
| maxUserTimes | int | 活动可领人数 | ||
| maxUserTimesPerDay | int | 单日最大可领人数 | ||
| isNewUser | int | 新客使用限制 0 不限新客使用,1 限新客使用 | ||
| maxCouponsPerUser | int | 单个用户可领个数 | ||
| receivedUserTimes | int | 已领取的券数量 | ||
| site | string | 活动位置 | ||
| receiveIntervalType | int | 用户领取次数时间间隔限制类型 0:不限制、1:按领取时间间隔限制、2:按领取时间间隔+已领取优惠券状态限制 | ||
| receiveInterval | int | 用户领取次数时间间隔-小时 | ||
| createTime | date | 创建时间 | ||
| updateTime | date | 修改时间 | ||
| creator | string | 创建人 | ||
| updator | string | 更新人 | ||
| tabExperimentId | string | 实验ID | ||
| experimentType | string | 实验类别 | ||
| stock | object | 券详情 | ||
| stock.id | long | 券产品ID | ||
| stock.estimatedPriceLabel | string | 预估价标签 | ||
| stock.instructions | string | 使用说明 | ||
| stock.ruleInstructions | string | 优惠券规则 | ||
| stock.couponName | string | 券名称 | ||
| stock.couponDesc | string | 券说明 | ||
| stock.couponType | int | 优惠券类型 | ||
| stock.platformType | int | 规则类型 | ||
| stock.overlayUse | int | 叠加使用:0=否,1=是 | ||
| stock.entityCouponCodeCount | long | 实体券码的数量 | ||
| stock.cityList | string | 城市简码列表 | ||
| stock.platformList | String | 运力商ID,逗号分隔,默认不限制 | ||
| stock.rideTypeList | String | 运力类型,逗号分隔,默认不限制 | ||
| stock.validityPeriodType | int | 有效期类型,1:固定有效期、2:相对有效期、3:相对延期有效期 | ||
| stock.availableTimeType | int | 可用时间段:0:全天可用、1:按星期、2:按日期 | ||
| stock.isDisableProxyCall | int | 是否限制代叫车单使用 1:是 0:否 | ||
| stock.isDisableLongDistance | int | 是否限制远距离(用户位置与下单位置距离)单使用 1:是 0:否 | ||
| stock.availableBeginTime | date | 可用开始时间 | ||
| stock.availableEndTime | date | 可用结束时间 | ||
| stock.availableDayAfterReceive | int | 生效后N天内有效 | ||
| stock.waitDaysAfterReceive | int | 领取后N天开始生效 | ||
| stock.availableWeekDay | string | 可用星期数,逗号分隔,0代表周日,1代表周一,以此类推 | ||
| stock.availableDayTime | string | 当天可用时间段 json [{"begin_time":"11:00","end_time":"12:00"}] | ||
| stock.irregularyAvaliableTime | string | 当天可用时间段 json [{"begin_time":"yyyy-MM-DD HH:mm:ss","end_time":"yyyy-MM-DD HH:mm:ss"}] | ||
| stock.stockStatus | int | 批次状态 1:未激活 2:审核中 3:运行中 4:已停止 5:暂停发放 -1:删除 | ||
| stock.couponAmount | long | 优惠券面额 | ||
| stock.transactionMinimum | long | 优惠券使用门槛 | ||
| stock.discountAmountMax | long | 最高折扣金额 | ||
| stock.discountPercent | int | 折扣券比例 | ||
| stock.isNewUser | int | 新客使用限制 0 不限新客使用,1 限新客使用 | ||
| stock.isArticialGift | int | 是否可以客服人工赠送 0 不可以,1 可以 | ||
| stock.costBearingParty | int | 成本承担方 0 腾讯出行服务、 2 运力方、3 腾讯出行服务承担部分 | ||
| stock.costBearingType | int | 腾讯出行服务部分承担 1:按比例 2:固定金额 | ||
| stock.costAmount | int | 承担数值 | ||
| stock.createTime | date | 创建时间 | ||
| stock.updateTime | date | 修改时间 | ||
| stock.creator | string | 创建人 | ||
| stock.updator | string | 更新人 | ||
| stock.tenantId | int | 租户ID | ||
| stock.platformOverlayUse | int | 叠加使用:0=否,1=是 | ||
| stock.limitStartEndDistance | int | 长远单-上下车点距离多远时可使用 | ||
| stock.destinationRange | int | 下单终点距离目的地范围多少米内可核销 | ||
| stock.departurePlaceRange | int | 下单起点距离出发地范围多少米内可核销 |
# 2.3.7.3 运力活动发劵详情
- 接口说明 :腾讯出行服务提供(运力商调用):查询运力grantNo对应的发券详情。
- 请求地址 :
<tms_url_prefix>/spapi/coupon/getStaffSendCouponDetail - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| grantNo | string | Y | 运力商发劵请求id 每次发券请求不得重复 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| couponSendList | array object | Y | 券发放信息列表 | |
| couponSendList.activityId | long | Y | 券活动id | |
| couponSendList.couponAmount | int | 1~10 | Y | 券数量 |
# 2.4 聚合平台模式接入
运力商采用聚合平台的方式接入时,以下5个接口(开城列表、询价、下单、决策通知、司机举手回调)需要按下述接口协议接入,其他接口协议同上
# 2.4.1 开城列表
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):获取开城列表及每个城市支持的运力类型、服务类型
- 请求地址 :
<sp_url_prefix>/api/msp/city/open - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| spCode | string | 255 | N | 用于查询选定运力的开城数据,参考4.13 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cities | array object | Y | ||
| cities.cityCode | string | 10 | Y | 城市编码,参考4.7 |
| cities.cityName | string | 30 | Y | 城市名称,参考4.7 |
| cities.rideTypes | array object | Y | ||
| cities.rideTypes.id | int | Y | 参考4.3 | |
| cities.rideTypes.name | string | 10 | Y | |
| cities.rideTypes.serviceTypes | array int | Y | 支持的服务类型,参考4.2 |
# 2.4.2 预估价格
- 接口说明 :运力商提供(腾讯出行服务向运力商调用):获取预估价格
- 请求地址 :
<sp_url_prefix>/api/msp/estimate/price - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cityCode | string | 10 | Y | 出发地城市编码,参考4.7 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发地详细地址 |
| waypoints | string | 1000 | N | 途经点信息json数组字符串,最多支持两个途经点 |
| destCityCode | string | 10 | Y | 目的地城市编码(接送机新增),参考4.7 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的地详细地址 |
| serviceType | int | Y | 服务类型,参考4.2 | |
| spRides | string | 1000 | N | (json数组字符串格式)用于查询选定运力+车型的询价数据,不指定时查全量数据 |
| spRides.spCode | string | 10 | Y | 运力标识,参考4.13 |
| spRides.rideTypes | string | 100 | Y | 运力车型,多个运力类型使用逗号分隔, 参考4.3 |
| departureTime | string | 20 | N | 出发时间,日期时间格式, 如: 2022-08-01 15:00:00, 默认为当前时间,参考4.8 |
| flightNo | string | 10 | N | (接送机)航班号,比如:CA1564,接机必传 |
| departDelayTime | int | N | (接送机)落地后多长时间出发,单位为秒,接机必传 | |
| airportCode | string | 10 | N | (接送机)机场IATA三字码 |
| distance | int | N | (接送机)行驶距离,单位:米(注:用于校准不同运力商的报价) | |
| duration | int | N | (接送机)预计行驶时间,单位:秒(注:用于校准不同运力商的报价) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| estimateResults | array object | Y | 询价结果对象数组 | |
| estimateResults.spCode | string | 10 | Y | 运力标识,参考4.13 |
| estimateResults.distance | int | Y | 行驶距离,单位:米 | |
| estimateResults.duration | int | Y | 预计行驶时间,单位:秒 | |
| estimateResults.prices | array object | Y | 同单运力接入模式返回数据prices | |
| estimateResults.prices.rideType | int | Y | 运力类型 | |
| estimateResults.prices.estimatePrice | int | Y | 预估价格,单位:分 | |
| estimateResults.prices.estimateId | string | 40 | Y | 预估价格标识,创建订单时, 腾讯出行需提供该参数,由运力商 进行校验,过期则下单失败,如果estimateId过期 或行程有变化,必须重新预估价格 |
| estimateResults.prices.platformDiscount | int | N | 普通呼反,单位分 | |
| estimateResults.prices.details | array object | N | 价格明细 | |
| estimateResults.prices.details.name | string | 30 | Y | 明细项名称 |
| estimateResults.prices.details.amount | int | Y | 明细项金额,单位:分 | |
| estimateResults.prices.minDynamicRate | float | N | (动态呼返)最小折扣系数,折扣系数越小优惠金额越大,例:0.67 | |
| estimateResults.prices.maxDynamicRate | float | N | (动态呼返)最大折扣系数,不传默认不打折,折扣系数越大优惠金额越小,例:0.99 | |
| estimateResults.prices.dynamicRateBase | int | N | (动态呼返)动态呼返折扣基数,不传默认取询价金额 | |
| estimateResults.prices.maxDynamicRatePrice | int | N | (动态呼返)最小折扣系数优惠的金额上限,单位分,例:200 | |
| estimateResults.prices.maxDynamicPrice | int | N | (动态呼返)最大优惠金额,单位分,例:200 | |
| estimateResults.prices.minDynamicPrice | int | N | (动态呼返)最小优惠金额,不传默认为0,单位分,例:100 | |
| estimateResults.prices.dynamicTarget | int | N | (动态呼返)目标,空为进入默勾;非空为排名 | |
| estimateResults.prices.isFailPreferential | boolean | N | (动态呼返)true:失败是否按最大优惠执行。false:按最小优惠执行。不传默认为false。 | |
| estimateResults.prices.optionalServices | array objest | N | (接送机)可选服务 | |
| estimateResults.prices.optionalServices.code | string | 32 | Y | (接送机)可选服务code,参考4.16 |
| estimateResults.prices.optionalServices.count | int | Y | (接送机)可选服务总数量 | |
| estimateResults.prices.optionalServices.freeCount | int | Y | (接送机)可选服务免费数量 | |
| estimateResults.prices.optionalServices.price | int | Y | (接送机)可选服务单价,单位分 |
# 2.4.3 创建订单
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):创建订单。
- 请求地址 :
<sp_url_prefix>/api/msp/order/create - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单号,防止重复创建订单 |
| cityCode | string | 10 | Y | 出发地城市编码,参考4.7 |
| startLat | double | Y | 出发地纬度 | |
| startLng | double | Y | 出发地经度 | |
| startName | string | 50 | Y | 出发地名称 |
| startAddress | string | 100 | Y | 出发地详细地址 |
| waypoints | string | 1000 | N | 途经点信息json数组字符串,最多支持两个途经点 |
| destCityCode | string | 10 | Y | 目的地城市编码(接送机新增),参考4.7 |
| endLat | double | Y | 目的地纬度 | |
| endLng | double | Y | 目的地经度 | |
| endName | string | 50 | Y | 目的地名称 |
| endAddress | string | 100 | Y | 目的地详细地址 |
| serviceType | int | Y | 服务类型,参考4.2 | |
| departureTime | string | 20 | N | 乘车时间,日期时间格式,如: 2022-08-01 14:00:00,默认为当前 时间,参考4.8 |
| userId | string | 20 | Y | 叫车人用户 ID |
| userMobile | string | 20 | Y | 叫车人手机 |
| passengerMobile | string | 20 | Y | 乘车人手机 |
| passengerName | string | 20 | Y | 乘车人姓名 |
| message | string | 50 | N | 乘客给司机留言,最长 50 个字符 |
| product | string | 1000 | Y | (json数组字符串格式)运力订单标识 |
| product.spCode | string | 10 | Y | 运力标识,参考4.13 |
| product.associateOrderTag | string | 100 | N | 关联的订单tag。聚合平台模式接入时,存在出行直接向运力下单、通过聚合平台向运力下单等多条下单路径,运力可基于此标识判定,用户临近时刻的多笔订单,为用户的同一次下单行为,从而进行更优的选单决策 |
| product.estimateIds | string | 500 | Y | 预估价格标志,多个 estimateId 使用 逗号分隔,每个 estimateId 对应一个 车型,不再单独提供运力类型参数, 若 estimateId 过期(建议有效期: 10分钟)或者行程有变化则无法创建 订单,需重新预估价获取 estimateId |
| product.fixedPrice | string | 100 | N | 平台一口价,多个fixedPrice使用逗 号分隔,每个fixedPrice对应一个车 型,单位:分 |
| product.dynamicRate | string | 100 | N | (动态呼返)折扣比例(多个英文,分隔)例: 0.88 或 0.88, 0.77 |
| product.dynamicPrice | string | 100 | N | (动态呼返)动态呼返优惠金额(多个英文逗号 分隔),单位分,例:200 |
| product.dynamicTargetResult | string | 100 | N | (动态呼返)是否达成目标(多个英文逗号分隔): 1:达成;2:没达成 |
| product.dynamicRank | string | 100 | N | (动态呼返)实际排名(多个英文,分隔) |
| product.relaySupport | int | N | 连环单开关,是否支持连环单,默认不支持。0 - 不支持,1 - 支持 | |
| flightNo | string | 10 | N | (接送机)航班号,接机单必传 |
| departDelayTime | int | N | (接送机)落地后多长时间用车,单位:秒,接机单必传 | |
| airportCode | string | 10 | N | (接送机)机场IATA三字码 |
| optionalServices | array object | N | (接送机)可选服务 |
可选服务optionalServices信息格式:
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| code | string | 32 | Y | 可选服务编码,参考4.16 |
| count | int | Y | 数量 | |
| totalPrice | int | Y | 该项服务的总价,单位分 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
# 2.4.4 决策通知
- 接口说明 : 运力商提供(腾讯出行服务向运力商调用):通知运力商选择该司机
- 请求地址 :
<sp_url_prefix>/api/msp/order/confirm - 请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| spCode | string | 10 | Y | 运力标识,参考4.13 |
| rideType | int | - | Y | 确认接单车型ID |
| driverId | string | 32 | Y | 司机id |
| confirmTime | string | 20 | Y | 决策选用的时间,日期时间格式, 如:2022-08-01 15:27:03,参考4.8 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 2.4.5 订单状态回调(司机举手)
- 接口说明 : 腾讯出行服务提供(运力商调用):通知腾讯出行订单状态的变更,包括司机接单、完结、改价、退款等。
- 请求地址 :
<tms_url_prefix>/spapi/msp/order/callback - 请求参数 :
请求参数与[2.3.1.1 订单状态回调]相同,只新增了字段spCode
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| orderId | string | 32 | Y | 腾讯出行订单 ID |
| spOrderId | string | 32 | Y | 运力商订单 ID |
| spCode | string | 10 | Y | 运力标识,参考4.13 |
| event | int | Y | 回调事件 ID,参考4.5.2 | |
| eventTime | string | 20 | Y | 事件发生时间,日期时间格式,比如: 2022- 08-01 15:37:20,参考4.8 |
| rideType | int | N | 运力类型,参考4.3 | |
| aheadDynamicDiscountAmount | int | N | 预分单动态优惠金额,单位:分 | |
| driver | object | N | 司机信息,event=3、31时必传 (3-司机接单、31-改派) | |
| vehicle | object | N | 车辆信息,event=3、31时必传 (3-司机接单、31-改派) | |
| driverLocation | object | N | 司机位置信息,event=3、31、 4、5、6、7 时必传 | |
| circleStatus | int | N | 绕圈状态,event=51时必传,1:开始绕圈;2:结束绕圈 | |
| position | object | N | 实际上下车地点信息,event=6、7 时必传 | |
| waypoint | object | N | 到达的途经点信息,event=62时必传 | |
| distance | int | N | 实际行程里程,event=8 时必传, 单位为米 | |
| duration | int | N | 实际行程时长,event=8 时必传, 单位为秒 | |
| cost | object | N | 账单信息,event=8,81,91 时必传 | |
| cancelType | int | N | event=12 时必传 ,参考4.6 | |
| haveCancelFee | boolean | N | 是否有取消费 | |
| relayOrderInfo | object | N | 连环单信息;若司机举手时传入连环单信息,后续事件回调必传 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 三、渠道接入
# 3.1 通用说明
# 3.1.1 公共请求参数
| 参数名称 | 类型 | 最大长度 | 必选 | 描述 |
|---|---|---|---|---|
| api_key | string | 32 | 是 | 腾讯出行服务分配给服务商的应用标识 |
| nonce | string | 32 | 是 | 随机字符串,数字与字母组合,区分大小写 |
| seq_id | string | 36 | 是 | 请求流水号,调用方自动生成一个随机ID,建议使用uuid |
| timestamp | long | 13 | 是 | 请求时间,Unix Timestamp单位 毫秒 |
| sign | string | 32 | 是 | 验证签名参数 |
| data | object | N | 业务参数对象 |
# 3.1.2 公共响应参数
| 参数名 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| code | int | 10 | Y | 参考3.1.3 |
| message | string | 64 | N | 参考3.1.3 |
| data | object | N | 业务参数对象 |
# 3.1.3 响应状态编码(code)
- 号段分布 :
| 大号段 | 小号段 | 错误说明 |
|---|---|---|
| 0 | 0 | 成功 |
| 10000 - 19999 公共错误 | 10000 - 10999 | 请求错误或者签名验证失败 |
| 11000 - 11999 | 常规通用错误码 | |
| 40000 - 99999 业务错误 | 40000 - 40999 | 询价错误码 |
| 41000 - 45999 | 订单错误码 | |
| 46000 - 46999 | 发票错误码 | |
| 47000 - 47999 | 工单错误码 | |
| 48000 - 99999 | 待分配 |
- 成功 :
| 编码 | 说明 |
|---|---|
| 0 | 成功 |
- 公共错误 :
| 编码 | 说明 |
|---|---|
| 10000 | 服务器异常 |
| 10001 | 请求URL错误 |
| 10002 | 请求方法错误 |
| 10003 | appId错误 |
| 10004 | 时间戳过期或者nonce重复 |
| 10005 | 签名验证失败 |
| 10009 | 请求频繁,请稍后重试 |
| 11000 | 参数错误 |
- 询价错误码 :
| 编码 | 说明 |
|---|---|
| 40000 - 40999 | 询价错误 |
- 订单错误码 :
| 编码 | 说明 |
|---|---|
| 41000 | 订单状态错误 |
| 41100 | 下单价格校验不通过 |
| 41101 | 该手机号码有进行中的订单,不能再创建订单 |
| 41102 | 腾讯出行订单号已经存在,不能再创建订单 |
| 41103 | 出发时间错误,超过允许范围 |
| 41104 | 不支持的服务类型 |
| 41200 | 订单取消失败,比如服务已经开始,不能取消订单 |
| 41300 | 订单已经取消,比如确认接单时运力商已经取消订单 |
| 41400 | 支付确认明细异常,如两次确认相同paid_id对应的金额不一致 |
| 41401 | 支付费用不一致 |
| 41500 | 退款确认明细异常,如两次退款相同refund_id对应的金额不一致 |
| 41501 | 退款费用不一致 |
| 41600 | 该订单无司机信息(查询司机位置) |
- 发票错误码 :
| 编码 | 说明 |
|---|---|
| 46000 - 46999 | 发票错误 |
- 工单错误码 :
| 编码 | 说明 |
|---|---|
| 47000 - 47999 | 工单错误 |
- 待确认 :
以下状态码待确认,若需要关注以下错误类型,请联系腾讯出行服务进行确认。
| 编码 | 说明 |
|---|---|
| 40003 | 该城市未开通 |
| 40004 | 该城市临时关闭 |
| 40005 | 命中电子围栏,该区域不能下单 |
| 40006 | 航班信息错误 |
| 40007 | 不支持的运力类型 |
| 40008 | 预估价格ID不存在或者已经失效,请重新获取预估价格 |
| 40009 | 预估价格ID同订单数据不一致,请重新获取预估价格 |
| 40030 | 订单已经开票 |
| 40031 | 不支持多次修改目的地 |
| 49001 | 该用户健康码异常 |
| 49002 | 取消次数过多,不能再下单 |
| 50001 | 工单分类异常 |
| 50002 | 工单参数异常(新增、变更) |
| 50003 | 工单信息不存在 |
| 50003 | 工单已经处于结束状态,不能更改状态 |
- 回调事件错误代码 :
| 编码 | 说明 |
|---|---|
| 0 | 成功 |
| 10001 | 请求URL错误 |
| 10002 | 请求方法错误 |
| 10003 | appId错误 |
| 10004 | 时间戳过期或者nonce重复 |
| 10005 | 签名验证失败 |
| 10009 | 请求频繁,请稍后重试 |
| 40001 | 数据不存在(订单号不存在,发票不存在,工单不存在) |
| 40002 | 订单回调:事件无效(适用订单、发票、工单) |
| 40003 | 订单回调:取消事件取消类型不能为空 |
| 40004 | 订单回调:接单改派事件司机车辆信息不能为空 |
| 40005 | 订单回调:当前事件通知司机位置信息不能为空 |
| 40006 | 订单回调:当前事件通知账单信息不能为空 |
| 40007 | 订单回调:当前事件通知行程里程时长不能为空 |
| 40100 | 工单回调:工单变更状态异常 |
| 50000 | 系统错误,服务端存在未处理的异常 |
# 3.1.4 接口鉴权
- 签名算法 :使用
MD5
从请求串中获得 api_key、seq_id、timestamp、nonce 通用字段以及其他的业务段和鉴权结果字段 sign。
根据签名算法,对参与签名的内容进行签名; 按照除 sign 外参数名称排序(字典升序排列)成
“key1=value1&key2=value2&....”的原始字符串 src1;请求报文中不存在的参数不参与签名。 将原始字符串+分配给调用方的 api_sercret 形成字符串 src2; 将 src2 进行MD5加密后转成大写形成签名内容 dest。将步骤 2 中得到的签名内容 dest 与请求中的 sign 字段内容做比较,如果相同则验证成功,否则判定请求非法。
签名算法示例 :
- 假设/xx/xx 接口文档中业务字段为[slon, slat],分配的
api_sercret= DZaslH9B9ycqRrE77laCPB2Om,请求参数如下:api_key=PSUBZLHOKUO6HV52A5CAUSSE5KSB6Y, seq_id=b8b4f0b8-01fb-4c06-80b9-3ab895a8c616, timestamp=1554695343, slat=39.998299, slon=116.285561,则需要签名的内容:api_key=PSUBZLHOKUO6HV52A5CAUSSE5KSB6Y&seq_id=b8b4f0b8-01fb-4c06-80b9-3ab895a8c616&slat=39.998299&slon=116.285561×tamp=1554695343DZaslH9B9ycqRrE77laCPB2Om - 计算MD5值为
8a983278e5366eb93feb0d4143e1c522,大写值为8A983278E5366EB93FEB0D4143E1C522。 - 将MD5值与请求中 sign 字段的值比较。两者相同请求合法。
- 假设/xx/xx 接口文档中业务字段为[slon, slat],分配的
Java算法示例 :
// OBJECT_MAPPER.readTree(is); //request.getInputStream()
//通过jackson转map,提取json中原始对象value的字符串
public static Map<String, String> extractJsonNodeParams(JsonNode node) {
Iterator<String> fields = node.fieldNames();
Map<String, String> params = Maps.newHashMap();
while (fields.hasNext()) {
String key = fields.next();
JsonNode value = node.get(key);
if (value.isTextual()) {
params.put(key, value.asText());
} else {
params.put(key, value.toString());
}
}
return params;
}
//对转换的map进行签名
public static String sign(Map<String, String> params, String secretKey) {
if (MapUtil.isEmpty(params)) {
return null;
}
String signatureVerify = null;
TreeMap<String, String> signMap = Maps.newTreeMap();//只提取报文中携带的参数
for (Map.Entry<String, String> entry : params.entrySet()) {
if (StrUtil.equals(entry.getKey(), SIGN_KEY)) {
signatureVerify = entry.getValue();
continue;
}
String key = entry.getKey();
String value = entry.getValue();
signMap.put(key, value);
}
String signatureParam = MapUtil.join(signMap, "&", "=", true) + secretKey;
return SecureUtil.md5(signatureParam).toUpperCase();
}
- GO算法示例 :
import "github.com/tidwall/gjson"
func Verify(params map[string]interface{},apiSecretKey string) (bool, error) {
var keys []string
for key, _ := range params {
if key == signKey {
continue
}
keys = append(keys, key)
}
sort.Strings(keys)
sb := strings.Builder{}
lastKeyIndex := len(keys) - 1
for index, key := range keys {
sb.WriteString(key)
sb.WriteString(splitKey1)
value := gjson.Get(body, key)
sb.WriteString(value.String())
if index < lastKeyIndex {
sb.WriteString(splitKey2)
}
}
sb.WriteString(apiSecretKey)
signStr := sb.String()
m := md5.New()
_, _ = io.WriteString(m, signStr)
signVerify := fmt.Sprintf("%x", m.Sum(nil))
signParam, _ := params[signKey]
return signVerify == signParam, nil
}
# 3.1.5 业务流程
- 订单流程时序图 :

- 发票流程时序图 :

- 其它流程时序图 :

# 3.2 渠道方接口
注意:以下接口中的请求参数均指3.1.1 公共请求参数中的data字段,返回数据均指3.1.2 公共响应参数中的data字段。
# 3.2.1 订单
# 3.2.1.1 订单状态回调
接口说明 : 渠道方提供(腾讯出行服务向渠道方调用):通知订单状态变更
请求地址 :
<tenant_url_prefix>/spi/order/notify请求参数 :
| 参数名 | 类型 | 最大长度 | 必选 | 描述 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单号 |
| oid | string | 32 | Y | 接入方订单号 |
| uid | string | 128 | Y | 接入方用户标识,乘客标识 |
| event | int | 11 | Y | 订单状态变化事件,参考4.5.2 |
| event_time | long | 13 | Y | 订单事件时间,Unix Timestamp单位 毫秒,区别于请求时间 timestamp |
| data | string | 200 | N | 不同事件回调时,携带部分核心字段,json结构 |
data :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| service_provider | int | 10 | N | 运力方标识,服务商举手开始必传,见附录 |
| open_driver_id | string | 500 | N | 司机标识,司机举手时回传,event=2时必传(2-派单中) |
| ride_type | int | 10 | Y | 运力信息,司机举手时回传,event=2、3、31时必传(2-派单中、3-司机已接单、31-改派成功) |
| cancel_type | int | 10 | N | event=11、12时必传,参考附录 |
| driver | object | - | N | 司机信息,event=2、3、31时必传(2-派单中、3-司机已接单、31-改派成功) |
| vehicle | object | - | N | 车辆信息,event=2、3、31时必传(2-派单中、3-司机已接单、31-改派成功) |
| bill | object | - | N | 账单信息,event=8时必传 |
| refund | object | - | N | 退款信息,event=91时必传 |
| refund.batch_id | int | 10 | Y | 退款批次,取值1,2,3,4… 以此类推 |
| refund.amount | int | 10 | Y | 退款金额,仅代表本次退款金额,非总金额(单位:分) |
| serial_order_info | object | - | N | |
| serial_order_info.is_serial | bool | - | N | 是否连环派单 |
| serial_order_info.last_order_lng | double | - | N | 上一单结束经度 |
| serial_order_info.last_order_lat | double | - | N | 上一单结束纬度 |
driver
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| name | string | 32 | Y | 司机姓名 |
| avatar | string | 300 | N | 司机头像 URL |
| phone | string | 20 | N | 司机真实手机号码 |
| virtual_phone | string | 20 | Y | 司机虚拟手机号码 |
| rate | string | 10 | N | 司机评分 |
| accept_count | int | N | 司机接单数 | |
| accepted_lat | double | N | 司机接单纬度 | |
| accepted_lng | double | N | 司机接单经度 |
vehicle
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| plate | string | 32 | Y | 车牌号 |
| color | string | 32 | N | 车辆颜色 |
| brand | string | 32 | N | 车辆品牌 |
| model | string | 32 | N | 车辆型号 |
| picture | string | 128 | N | 车辆图片 |
bill
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| total_amount | int | Y | 总金额,分 | |
| order_amount | int | Y | 行程费,分 | |
| extra_amount | int | N | 附加费,分 | |
| pay_amount | int | Y | 应付金额,分 | |
| discount_amount | int | N | 腾讯平台优惠金额,分 | |
| cancel_amount | int | N | 取消费,分 | |
| refund_amount | int | N | 累计退款金额,分 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.2.1.2 查询订单手机号
接口说明 : 渠道方提供(腾讯出行服务向渠道方调用):根据订单号查询用户手机号
请求地址 :
<tenant_url_prefix>/spi/order/phone请求参数 :
| 参数名 | 类型 | 最大长度 | 必选 | 描述 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单号 |
| service_provider | int | 10 | N | 运力商标识,参考4.1 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| phone | string | 10 | Y | 用户真实手机号 |
# 3.2.1.3 根据手机号查询订单列表
接口说明 : 渠道方提供(腾讯出行服务向渠道方调用):根据真实手机号查询订单列表
请求地址 :
<tenant_url_prefix>/spi/order/list/phone请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| phone | string | 20 | Y | 用户真实手机号 |
| service_provider | int | 10 | Y | 运力方标识,见附录 |
| start_time | string | 20 | Y | 开始时间;日期时间格式,参考4.8,如:2024-04-19 19:16:03 |
| end_time | string | 20 | Y | 结束时间;日期时间格式,参考4.8,如:2024-04-19 19:16:03 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| total | int | Y | 数据总量 | |
| list | array object | Y | 订单列表 | |
| list.tms_oid | string | 32 | Y | 腾讯订单号 |
| list.oid | string | 32 | Y | 接入方订单ID |
| list.create_time | string | 20 | Y | 下单时间;日期时间格式,参考4.8,如:2024-04-19 19:16:03 |
# 3.2.1.4 规划路线回调(暂无)
接口说明 : 腾讯出行服务提供(渠道方调用):查询司机接送驾路线
请求地址 :
<tms_url_prefix>/spi/order/route/plan请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| route_id | string | 32 | Y | 路线id |
| route_type | int | - | Y | 路线类型,1:接驾,2:送驾 |
| distance | int | - | N | 路线距离,单位米 |
| duration | int | - | N | 路线预估时间,单位分钟 |
| points | list | - | Y | 坐标点列表 |
| points.lat | double | - | Y | 坐标点纬度 |
| points.lng | double | - | Y | 坐标点经度 |
| create_time | long | - | Y | 路线的创建时间,单位毫秒 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.2.2 发票
# 3.2.2.1 发票状态回调(可选)
接口说明 : 渠道方提供(腾讯出行服务向渠道方调用):通知发票状态变更
请求地址 :
<tenant_url_prefix>/spi/invoice/notify请求参数 :
| 参数名 | 类型 | 最大长度 | 必选 | 描述 |
|---|---|---|---|---|
| tms_invoice_id | string | 50 | Y | 发票id |
| uid | string | 128 | Y | 接入方用户标识,乘客标识 |
| event | int | Y | 发票回调事件,参考4.5.5 | |
| event_time | string | 20 | Y | 订单事件时间,Unix Timestamp单位 毫秒,区别于请求时间 timestamp |
| data | string | 200 | N | 不同事件回调时,携带部分核心字段,json结构 |
| data.invoice_content | string | 50 | N | 发票内容,event=1必选 |
| data.invoice_url | string | 300 | N | 发票下载地址,event=1必选 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.2.3 工单
# 3.2.3.1 工单状态回调
接口说明 : 渠道方提供(腾讯出行服务向渠道方调用):通知工单状态变更,调用方获取通知后可以进行工单详情查询
请求地址 :
<tenant_url_prefix>/spi/workorder/notify请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_workorder_id | string | 50 | Y | 腾讯工单号 |
| workorder_id | string | 32 | Y | 接入方工单号 |
| uid | string | 128 | 是 | 接入方用户标识,乘客标识 |
| event_time | string | 20 | Y | 工单事件时间,Unix Timestamp单位 毫秒,区别于请求时间 timestamp |
| data | string | 200 | 否 | 不同事件回调时,携带部分核心字段,json结构 |
| data.solution_source | int | 10 | N | 处理方,1 腾讯 2 运力商 |
| data.status | int | 10 | Y | 工单状态,参考4.12.1 工单状态 |
| data.solution | int | 10 | N | 工单处理结果,参考4.12.2 工单处理结果类型 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.2.4 IM消息回调
# 3.2.4.1 司机发送消息
接口说明 : 腾讯出行服务提供(渠道方调用):司机发送IM消息
请求地址 :
<tms_url_prefix>/spi/im/driver/send请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| open_driver_id | string | 500 | Y | 司机标识(腾讯内部发生司机改派时,用于区分会话) |
| tms_msg_id | string | 32 | Y | 腾讯侧消息id |
| msg_type | int | - | Y | 消息类型,0:文字,1:图片(图片链接) |
| msg_content | string | - | Y | 消息内容 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| msg_id | string | 32 | Y | 接入方msg的唯一标识 |
# 3.2.4.2 司机消息事件
接口说明 : 腾讯出行服务提供(渠道方调用):司机IM消息事件
请求地址 :
<tms_url_prefix>/spi/im/driver/event请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| open_driver_id | string | 500 | Y | 司机标识(腾讯内部发生司机改派时,用于区分会话) |
| event_type | int | - | Y | 事件类型,0:已读 |
| tms_msg_ids | List | - | Y | 腾讯侧消息id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.3 腾讯出行服务接口
注意:以下接口中的请求参数均指3.1.1 公共请求参数中的data字段,返回数据均指3.1.2 公共响应参数中的data字段。
# 3.3.1 订单
# 3.3.1.1 预估价格
接口说明 : 腾讯出行服务提供(渠道方调用):获取预估价格
请求地址 :
<tms_url_prefix>/api/estimate/price请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| city_code | string | 10 | Y | 出发地城市编码 |
| start_lat | double | 8 | Y | 出发地纬度 |
| start_lng | double | 8 | Y | 出发地经度 |
| start_name | string | 50 | Y | 出发地名称 |
| start_address | string | 100 | Y | 出发地详细地址 |
| end_lat | double | 8 | Y | 目的地纬度 |
| end_lng | double | 8 | Y | 目的地经度 |
| end_name | string | 50 | Y | 目的地名称 |
| end_address | string | 100 | Y | 目的地详细地址 |
| service_type | int | 10 | Y | 服务类型,参考附录 |
| departure_time | int | 10 | N | 出发时间(秒),默认为当前时间 |
| uid | string | 64 | N | 接入方用户标识 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| estimate_id | string | 32 | Y | 总的预估id,发单时需要传入 |
| prices | array object | Y | 价格集合 | |
| prices.duration | int | 10 | Y | 预计行驶时间,单位:秒 |
| prices.distance | int | 10 | Y | 行驶距离,单位:米 |
| prices.service_provider | int | 10 | Y | 运力商标识,见4.1 |
| prices.service_provider_name | string | 10 | Y | 运力方名称 |
| prices.ride_type | int | 10 | Y | 运力类型,见4.3 |
| prices.ride_type_name | string | 10 | Y | 运力类型名称 |
| prices.sub_estimate_id | string | 32 | Y | 子预估价格标识,创建订单时要传,过期(10分钟)则下单失败,如果过期或行程有变化,必须重新预估价格 |
| prices.estimate_price | int | 10 | Y | 预估价格,单位:分(扣减调优惠后的价格) |
| prices.discount | int | 10 | N | 优惠金额(合计) |
| prices.charge_type | int | 1 | N | 计价类型,默认为1-普通计费,参考4.4 |
| prices.details | List object | N | 价格明细 | |
| prices.details.name | string | 30 | Y | 明细项名称 |
| prices.details.amount | int | 10 | Y | 明细项金额,单位:分 |
# 3.3.1.2 创建订单
接口说明 : 腾讯出行服务提供(渠道方调用):创建订单
请求地址 :
<tms_url_prefix>/api/order/create请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| oid | string | 32 | Y | 接入方订单号,防止重复创建订单 |
| uid | string | 32 | Y | 叫车人用户ID |
| city_code | string | 10 | Y | 城市编码,参考附录7 |
| start_lat | double | Y | 出发地纬度 | |
| start_lng | double | Y | 出发地经度 | |
| start_name | string | 50 | Y | 出发地名称 |
| start_address | string | 100 | Y | 出发地详细地址 |
| end_lat | double | Y | 目的地纬度 | |
| end_lng | double | Y | 目的地经度 | |
| end_name | string | 50 | Y | 目的地名称 |
| end_address | string | 100 | Y | 目的地详细地址 |
| service_type | int | Y | 服务类型,参考附录 | |
| estimate_id | string | 32 | Y | 总的预估id |
| products | string | 500 | Y | json结构,商品信息 product_create_order 集合 |
| departure_time | int | 10 | N | 出发时间(秒),默认为当前时间 |
| user_mobile | string | 20 | Y | 叫车人手机 |
| passenger_mobile | string | 20 | Y | 乘车人真实手机号,明文,可脱敏,后四位必须真实可见 |
| passenger_virtual_mobile | string | 20 | N | 乘车人虚拟手机号,明文 |
| passenger_name | string | 20 | Y | 乘车人姓名 |
| message | string | 50 | N | 乘客给司机留言,最长50个字符 |
| support_serial_order | bool | - | N | 是否支持连环单,默认false |
product_create_order :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| service_provider | int | 10 | Y | 运力方标识,见附录 |
| ride_type | int | 10 | Y | 运力类型,见附录 |
| sub_estimate_id | string | 32 | Y | 子预估价格标识格 |
| estimate_price | int | 10 | Y | 预估价格,单位:分 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
# 3.3.1.3 追加车型预估
接口说明 : 腾讯出行服务提供(渠道方调用):获取追加车型的预估价格
请求地址 :
<tms_url_prefix>/api/estimate/price/addition请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| estimate_id | string | 32 | Y | 总的预估id,发单时需要传入 |
| prices | array object | Y | 价格集合 | |
| prices.duration | int | 10 | Y | 预计行驶时间,单位:秒 |
| prices.distance | int | 10 | Y | 行驶距离,单位:米 |
| prices.service_provider | int | 10 | Y | 运力方标识,见4.1 |
| prices.service_provider_name | string | 10 | Y | 运力方名称 |
| prices.ride_type | int | 10 | Y | 运力类型,见4.3 |
| prices.ride_type_name | string | 10 | Y | 运力类型名称 |
| prices.sub_estimate_id | string | 32 | Y | 子预估价格标识,创建订单时要传,过期(10分钟)则下单失败,如果过期或行程有变化,必须重新预估价格 |
| prices.estimate_price | int | 10 | Y | 预估价格,单位:分 |
| prices.discount | int | 10 | N | 优惠金额(合计) |
| prices.charge_type | int | 1 | N | 计价类型,默认为1-普通计费,参考4.4 |
| prices.details | list object | N | 价格明细 | |
| prices.details.name | string | 30 | Y | 明细项名称 |
| prices.details.amount | int | 10 | Y | 明细项金额,单位:分 |
# 3.3.1.4 追加车型下单
接口说明 : 腾讯出行服务提供(渠道方调用):追加车型的下单
请求地址 :
<tms_url_prefix>/api/order/addition请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| oid | string | 32 | Y | 接入方订单号,防止重复创建订单 |
| tms_oid | string | 32 | Y | 腾讯订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| estimate_id | string | 32 | Y | 总的预估id |
| products | string | 500 | Y | JSON结构,商品信息 product_create_order 集合 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单号 |
| oid | string | 32 | Y | 接入方订单号 |
# 3.3.1.5 司机确认
接口说明 : 腾讯出行服务提供(渠道方调用):通知腾讯选择指定运力商下的选定司机
请求地址 :
<tms_url_prefix>/api/order/confirm请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| open_driver_id | string | 500 | Y | 司机举手时回传,司机标识 |
| confirm_time | long | 15 | Y | 决策选用的时间(毫秒) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.3.1.6 判断订单是否支持修改目的地
接口说明 : 腾讯出行服务提供(渠道方调用):获取预估价格
请求地址 :
<tms_url_prefix>/api/order/destination/modify/check请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单id |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 64 | Y | 接入方用户标识 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| support_modify_dest | boolean | - | Y | 是否支持修改目的地,这里返回true也可能会修改目的地失败,目前只有首汽对接了前置判断能力 |
# 3.3.1.7 修改目的地预估价格
接口说明 : 腾讯出行服务提供(渠道方调用):获取预估价格
请求地址 :
<tms_url_prefix>/api/estimate/price/destination/modify请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单id |
| oid | string | 32 | Y | 接入方订单ID |
| current_lat | double | 8 | Y | 乘客当前位置维度 |
| current_lng | double | 8 | Y | 乘客当前位置经度 |
| current_name | string | 50 | Y | 乘客当前位置名称 |
| current_address | string | 100 | Y | 乘客当前位置详细地址 |
| dest_lat | double | 8 | Y | 目的地纬度 |
| dest_lng | double | 8 | Y | 目的地经度 |
| dest_name | string | 50 | Y | 目的地名称 |
| dest_address | string | 100 | Y | 目的地详细地址 |
| uid | string | 64 | Y | 接入方用户标识 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| apply_modify_dest_id | string | 32 | Y | 修改目的地申请id,确认修改目的地时使用 |
| estimate_price | int | 10 | Y | 预估价格,单位:分(扣减调优惠后的价格) |
# 3.3.1.8 确认修改目的地
接口说明 : 腾讯出行服务提供(渠道方调用):修改订单目的地
请求地址 :
<tms_url_prefix>/api/order/destination/modify
请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| apply_modify_dest_id | string | 32 | Y | 修改目的地申请id |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 : 无
# 3.3.1.9 查询订单状态
接口说明 : 腾讯出行服务提供(渠道方调用):查询订单状态,相比较于订单详情,字段属性较少,功耗低
请求地址 :
<tms_url_prefix>/api/order/status请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| status | int | Y | 订单状态,参考附录 | |
| update_time | string | 20 | N | 订单状态变更时间,日期时间格式,参考附录 |
# 3.3.1.10 查询订单详情
接口说明 : 腾讯出行服务提供(渠道方调用):查询订单详情,任何订单状态都可能会发起查询
请求地址 :
<tms_url_prefix>/api/order/detail请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| status | int | Y | 订单状态,参考附录 | |
| cancel_type | int | N | 取消编码,参考附录 | |
| service_type | int | Y | 服务类型,参考附录 | |
| ride_type | int | Y | 运力类型,参考附录 | |
| charge_type | int | Y | 计价类型,参考附录 | |
| distance | int | N | 实际行程距离,单位为米,行程结束后提供 | |
| duration | int | N | 实际行程时长,单位为秒,行程结束后提供 | |
| estimate_price | int | Y | 预估价格,单位为分 | |
| estimate_distance | int | N | 预估行驶里程,单位为米 | |
| estimate_duration | int | N | 预估行驶时长,单位为秒 | |
| create_time | string | 20 | N | 创建订单时间,日期时间格式,参考附录 |
| accept_time | string | 20 | N | 司机接单时间,日期时间格式,参考附录 |
| set_out_time | string | 20 | N | 司机出发时间,日期时间格式,参考附录 |
| arrive_time | string | 20 | N | 司机到达上车点时间,日期时间格式,参考附录 |
| start_time | string | 20 | N | 服务开始时间,开始计费时间,日期时间格式,参考附录 |
| end_time | string | 20 | N | 服务结束时间,结束计费时间,日期时间格式,参考附录 |
| cancel_time | string | 20 | N | 取消时间,日期时间格式,参考附录 |
| check_time | string | 20 | Y | 账单确认时间,status为行程结束时 |
| driver | object | N | 司机车辆信息(抢单后显示) | |
| vehicle | object | N | 车辆信息(抢单后显示) | |
| position | object | N | 位置信息 | |
| product | object | N | 接单车型 product 信息(抢单后显示) | |
| order_product | array object | Y | 下单时传入的呼单车型 product 信息 | |
| bill | object | N | 账单信息(出账后显示) | |
| serial_order_info | object | N | 连环单信息 | |
| support_im_info | object | N | 支持im消息 |
driver
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| name | string | 32 | Y | 司机姓名 |
| avatar | string | 300 | N | 司机头像 URL |
| phone | string | 20 | N | 司机真实手机号码 |
| virtual_phone | string | 20 | Y | 司机虚拟手机号码 |
| rate | string | 10 | N | 司机评分 |
| accept_count | int | N | 司机接单数 |
vehicle
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| plate | string | 10 | Y | 车牌号 |
| color | string | 10 | Y | 汽车颜色 |
| brand | string | 30 | Y | 汽车品牌 |
| model | string | 30 | Y | 汽车型号 |
| picture | string | 300 | Y | 汽车图片的 URL |
position
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| start_name | string | 50 | Y | 出发地名称 |
| start_address | string | 100 | Y | 出发详细地址 |
| start_lat | double | Y | 出发地纬度 | |
| start_lng | double | Y | 出发地经度 | |
| end_name | string | 50 | Y | 目的地名称 |
| end_address | string | 100 | Y | 目的详细地址 |
| end_lat | double | Y | 目的地纬度 | |
| end_lng | double | Y | 目的地经度 | |
| fact_start_lat | double | N | 实际上车纬度 | |
| fact_start_lng | double | N | 实际上车经度 | |
| fact_start_addr | string | 100 | N | 实际出发详细地址 |
| fact_end_lat | double | N | 实际到达纬度 | |
| fact_end_lng | double | N | 实际到达经度 | |
| fact_end_addr | string | 100 | N | 实际到达详细地址 |
product
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| service_provider | int | 10 | Y | 运力方标识,见附录 |
| sp_oid | string | 50 | N | 服务商订单Id,确认接单后可见,可用于交通部数据上报等 |
| ride_type | int | 10 | Y | 运力类型,见4.3 |
bill :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| total_amount | int | 10 | Y | 实际总费用,单位为分 |
| order_amount | int | 10 | Y | 行程费用 |
| extra_amount | int | 10 | Y | 总费用中的附加费用 |
| pay_amount | int | 10 | Y | 渠道应付金额 |
| discount_amount | int | 10 | N | 腾讯平台优惠金额 |
| refund_amount | int | 10 | N | 累计退款金额,支付后退款的金额 |
| cancel_amount | int | 10 | N | 取消费用 |
serial_order_info :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| serial | bool | - | Y | 是否是连环单 |
| processing | bool | - | N | 上一单是否进行中 |
| prev_end_lng | BigDecimal | - | N | 上单终点经度 |
| prev_end_lat | BigDecimal | - | N | 上单终点纬度 |
support_im_info :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| support_im | bool | - | Y | 是否支持IM |
| support_msg_types | string | - | N | 支持消息类型,多个之间逗号分隔;0:文字,1:图片(图片链接) |
| support_msg_event_types | string | - | N | 支持消息事件类型,多个之间逗号分隔;0:已读 |
# 3.3.1.11 查询取消费
接口说明 : 腾讯出行服务提供(渠道方调用):用户取消前,接入方调用腾讯接口查询取消费
请求地址 :
<tms_url_prefix>/api/order/precancel请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cancel_amount | int | 10 | Y | 取消费(默认为0),单位:分 同时更新到订单详情的total_amount |
# 3.3.1.12 取消订单
- 接口说明 : 腾讯出行服务提供(渠道方调用):取消订单
注:行程开始前接入方可以发起取消,行程开始后,接入方无法再发起取消。
请求地址 :
<tms_url_prefix>/api/order/cancel请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| oid | string | 32 | Y | 接入方订单ID |
| cancel_source | int | 10 | Y | 取消来源,见4.6 |
| cancel_type | int | 10 | Y | 取消原因,见4.6 |
| cancel_reason | string | 100 | Y | 取消原因描述,见4.6 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| cancel_amount | int | 10 | Y | 取消费(默认为0),单位:分 同时更新到订单详情的total_amount |
# 3.3.1.13 查询司机位置(及当前实时规划路线)
接口说明 : 腾讯出行服务提供(渠道方调用):查询司机当前位置,限订单服务中(司机接单到服务完成); 查询路线时携带上一次的路线id,当路线发生变更时才会返回新的路线数据
请求地址 :
<tms_url_prefix>/api/order/driver/location请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| pre_route_id | string | 32 | N | 上一次路线id(查询路线时必传) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lng | double | Y | 经度 | |
| lat | double | Y | 纬度 | |
| direction | double | Y | 车头方向 0-360 | |
| time | string | 20 | Y | 司机位置时间,日期时间格式,比如:2022-08-01 15:27:03 |
| driveRoutePath | object | - | N | 导航路线 |
| driveRoutePath.route_id | string | 32 | Y | 路线id |
| driveRoutePath.route_type | int | - | Y | 路线类型,1-接驾,2-送驾 |
| driveRoutePath.distance | int | - | Y | 实时剩余距离,单位米 |
| driveRoutePath.duration | int | - | Y | 实时剩余时间,单位分钟 |
| driveRoutePath.polyline | string | N | 导航路线点坐标,例: 121.364970,31.123355;-0.2,0 |
# 3.3.1.14 查询司机虚拟号
接口说明 : 腾讯出行服务提供(渠道方调用):查询司机当前位置,限订单服务中(司机接单到服务完成)
请求地址 :
<tms_url_prefix>/api/order/driver/phone请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| phone | string | 20 | Y | 乘客手机号,不填时使用订单中的手机号 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| driver_virtual_phone | string | 20 | Y | 司机虚拟手机号码 |
# 3.3.1.15 查询账单
接口说明 : 腾讯出行服务提供(渠道方调用):查询订单账单明细
请求地址 :
<tms_url_prefix>/api/order/bill请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| cost | object | - | N | 费用信息(内置取消费、退款等信息) |
cost
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| total_amount | int | 10 | Y | 实际总费用,单位为分。总费用由2部分组成:行程费用+附加费用。如果订单有责取消,total_amount应该等于取消费。未支付改价,total_amount同步更新。 |
| order_amount | int | 10 | Y | 行程费用。行程费用作为优惠计算、分佣的基数。未支付改价,order_amount同步更新。 |
| extra_amount | int | 10 | Y | 总费用中的附加费用,如路桥、停车等非司机提供服务的费用。未支付改价,extra_amount同步更新。 |
| pay_amount | int | 10 | Y | 渠道应付金额。向腾讯支付的订单金额,减去了腾讯的优惠,等于total_amount - discount_amount(腾讯优惠) |
| discount_amount | int | 10 | N | 腾讯平台优惠金额。 |
| refund_amount | int | 10 | N | 累计退款金额,支付后退款的金额。 |
| cancel_amount | int | 10 | N | 取消费,仅在有取消费的情况下有值。 |
| details | array object | N | 明细。 | |
| details.name | string | 30 | Y | 明细项名称。 |
| details.amount | int | 10 | Y | 明细项金额,单位为分。 |
| details.code | string | 10 | N | 费用明细的唯一标志,见附录。 |
| details.invoice_type | int | 10 | N | 默认0,不参与开票,-1 折扣,1 参与开票。 |
# 3.3.1.16 支付结果通知
接口说明 : 腾讯出行服务提供(渠道方调用):用户支付完成后通知腾讯
请求地址 :
<tms_url_prefix>/api/order/pay/confirm请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| total_amount | int | 10 | Y | 订单总金额(单位:分)。需与账单接口的total_amount一致,不叠加任何腾讯平台优惠(discount_amount)。如果与账单接口的total_amount不一致(如发生改价),则返回40020错误码。需要重新拉取账单,获得最新的total_amount。 |
| pay_amount | int | 10 | Y | 订单渠道应付金额(单位:分)。不叠加渠道优惠(coupon_amount)。pay_amount = 订单总金额(total_amount) - 腾讯平台优惠(discount_amount)。如果渠道无优惠,用户需支付的金额为pay_amount。 |
| paid_amount | int | 10 | Y | 用户总体已付金额(单位:分)。当paid_amount=pay_amount-coupon_amount时,认为用户已经完成支付。 |
| coupon_amount | int | 10 | N | 对应渠道优惠券的优惠减免金额。 |
| detail | array object | - | - | 支付确认的明细,多笔支付时产生多笔记录。 |
| detail.paid_id | string | 32 | Y | 支付幂等标识,代表一笔支付。由渠道方生成。 |
| detail.paid_time | long | 13 | N | 支付时间(毫秒)。 |
| detail.amount | int | 10 | Y | 用户付款金额,仅代表本次付款金额(单位:分)。paid_id相同的支付确认请求,amount需保持一致。 |
| detail.paid_channel | int | 10 | Y | 支付渠道(如1微信支付、2百度支付、3支付宝支付)。 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.3.1.17 退款结果通知
接口说明 : 腾讯出行服务提供(渠道方调用):用户每一次退款通知腾讯
请求地址 :
<tms_url_prefix>/api/order/refund/confirm请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| refund_amount | int | 10 | N | 退款金额(单位:分),是明细的汇总,多笔退款时这里的值是明细的累加值(单位:分) |
| detail | array object | - | Y | 退款确认的明细,多笔退款时产生多笔记录 |
| detail.refund_id | string | 32 | N | 退款幂等标识,代表一笔退款。由渠道方生成 |
| detail.batch_id | int | 10 | Y | 退款批次,取值1,2,3,4… 以此类推。由腾讯平台生成,在订单状态回调-退款事件中通知给渠道。 |
| detail.refund_time | long | 13 | N | 退款时间(毫秒) |
| detail.amount | int | 10 | Y | 退款金额,仅代表本次退款金额,非总金额(单位:分)。需与订单状态回调-退款事件中的退款金额保持一致。同一笔退款(幂等标识相同)的退款金额不可更改。 |
| detail.status | int | 10 | Y | 退款状态,1成功,2失败 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.3.1.18 查询规划路线
接口说明 : 腾讯出行服务提供(渠道方调用):查询司机接送驾路线
请求地址 :
<tms_url_prefix>/api/order/route/plan请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| pre_route_id | string | 32 | Y | 当前路线id(用于判断路线是否有变更,若无变更则不返回重复路线) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| lng | double | Y | 路线吸附后的司机位置经度 | |
| lat | double | Y | 路线吸附后的司机位置纬度 | |
| direction | double | Y | 车头方向 | |
| time | String | Y | 司机位置时间,yyyy-MM-dd HH:mm:ss | |
| driver_route_path | object | Y | 路线信息 | |
| driver_route_path.route_id | string | 32 | Y | 路线id |
| driver_route_path.route_type | int | Y | 路线类型,1:接驾,2:送驾 | |
| driver_route_path.distance | int | Y | 剩余距离,米 | |
| driver_route_path.duration | int | Y | 剩余时间,分钟 | |
| driver_route_path.polyline | string | N | 导航路线点坐标 |
# 3.3.1.19 订单号转换
接口说明 : 腾讯出行服务提供(渠道方调用):渠道侧订单号与运力订单号转换
请求地址 :
<tms_url_prefix>/api/order/convert请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| oid | string | 32 | N | 接入方订单ID(oid和sp_oid两者必传其一) |
| service_provider | int | - | N | 运力方ID, 传sp_oid时必传 |
| sp_oid | string | 32 | N | 运力方订单ID(oid和sp_oid两者必传其一) |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | (接入方-腾讯)腾讯订单ID |
| oid | string | 32 | Y | (接入方-腾讯)接入方订单ID |
| service_provider | int | - | Y | 运力方ID |
| tms_sp_oid | string | 32 | Y | (腾讯-运力)腾讯订单ID |
| sp_oid | string | 32 | Y | (腾讯-运力)运力订单ID |
# 3.3.2 发票
# 3.3.2.1 开票
- 接口说明 : 腾讯出行服务提供(渠道方调用):申请发票
发票由接入方负责将发票发送给用户,部分腾讯下游服务提供方如果合同有特殊约定的按照约定处理。
目前仅支持按照订单开票,发票仅支持电子发票,支持一年内的订单开具发票,附加费用不支持开具发票,每次最多30个订单。
由于腾讯侧聚合了多家服务提供方,不支持开一张发票。
请求地址 :
<tms_url_prefix>/api/invoice/create请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oids | array object | 30 | Y | 每次最多30个订单 |
| tms_oids.tms_oid | string | 32 | Y | 腾讯订单ID |
| tms_oids.amount | int | 10 | Y | 订单对应的开票金额,单位:分 |
| uid | string | 32 | Y | 叫车人用户ID |
| invoice_amount | int | 10 | Y | 订单总开票金额 |
| buyer_type | int | 10 | Y | 开票所属类型,1-企业,2-个人 |
| invoice_type | int | 10 | Y | 发票类型:0. 电子发票,仅支持电子发票 |
| invoice_title | string | 80 | Y | 发票抬头,必选 |
| tax_num | string | 20 | N | 纳税人识别号,开票所属类型为1时必选 |
| sender | int | 10 | Y | 发送方:1-腾讯出行,2-运力方,3-渠道方。需和腾讯出行约定发送方,没有特殊约定的应当由腾讯出行发送 |
| receiver_name | string | 20 | N | 发票接收人姓名 |
| receiver_phone | string | 20 | N | 发票接收人手机号 |
| receiver_email | string | 50 | N | 发票接收人邮箱 |
| bank_name | String | 50 | N | 开户行 |
| bank_account | String | 100 | N | 开户行帐号 |
| reg_address | String | 100 | N | 注册地址 |
| reg_tel | String | 20 | N | 注册电话 |
| remark | string | 50 | N | 备注 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| invoices | array object | - | - | |
| invoices.tms_invoice_id | string | 32 | Y | 发票ID |
| invoices.amount | int | 10 | Y | 发票金额 |
| invoices.invoice_tms_oids | array string | - | Y | 该发票id对应的腾讯订单号 |
| invalid_tms_oids | array string | - | N | 全部无效的腾讯订单号列表 |
# 3.3.2.2 查询发票信息
接口说明 : 腾讯出行服务提供(渠道方调用):查询发票信息
请求地址 :
<tms_url_prefix>/api/invoice/status请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_invoice_id | string | 32 | Y | 发票ID |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_invoice_id | string | 32 | Y | 发票ID |
| status | int | Y | 开票状态 1-开票中 2-已开票 3-开票失败 4-已取消 5-已作废 | |
| invoice_title | string | 80 | N | 发票抬头,status=2时必选 |
| invoice_content | string | 50 | N | 发票内容,status=2时必选 |
| tax_num | string | 20 | N | 纳税人识别号,status=2时必选 |
| invoice_url | string | 300 | N | 发票下载地址,status=2时必选 |
# 3.3.2.3 发票作废
接口说明 : 腾讯出行服务提供(渠道方调用):作废发票
请求地址 :
<tms_url_prefix>/api/invoice/reddashed请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_invoice_id | string | 64 | Y | 作废的发票id |
| uid | string | 32 | Y | 叫车人用户ID |
| amount | int | 10 | Y | 作废的发票金额 |
| reason | string | 64 | Y | 发票作废原因 |
| discard_type | int | 10 | N | 冲红类型 0 只作废 |
| invoice_type | int | 10 | N | 发票类型:0. 电子发票,仅支持电子发票 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.3.3 工单
# 3.3.3.1 创建工单
接口说明 : 腾讯出行服务提供(渠道方调用):创建工单
请求地址 :
<tms_url_prefix>/api/workorder/create请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workorder_id | String | 32 | Y | 接入方工单号 |
| tms_oid | String | 32 | Y | 腾讯订单号 |
| oid | String | 32 | Y | 接入方订单号 |
| uid | string | 32 | Y | 叫车人用户ID |
| work_category_id | Long | 20 | Y | 腾讯工单分类id,通常取到三级分类id |
| work_category_name | String | 255 | N | 腾讯工单问题分类,工单问题分类见附录 |
| work_title | String | 255 | N | 工单标题(如果无原始标题,推荐选择一二三级分类的文字组合传输) |
| description | String | 2048 | Y | 工单客诉内容描述,(更新客诉问题按累加描述),一般为工单发起方记录。 |
| complaint_phone | String | 32 | N | 投诉手机号,仅做联系用户使用 |
| priority | Integer | 10 | Y | 工单优先级,参考附录、工单优先级 |
| exInformation | String | 2048 | N | 附加信息(工单补充信息,双方协商,提前定义结构字段开发) |
| attachments | String | 2048 | N | 客诉时用户上传的附件,json数组字符串,内容为图片url 示例:["fileUrl1","fileUrl2"] |
| work_time | string | 20 | N | 创建工单时间,日期时间格式,参考附录 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workorder_id | string | 32 | Y | 接入方工单号 |
| tms_workorder_id | string | 32 | Y | 腾讯工单号 |
# 3.3.3.2 查询工单信息
接口说明 : 腾讯出行服务提供(渠道方调用):查询工单详情
请求地址 :
<tms_url_prefix>/api/workorder/detail请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workorder_id | String | 32 | Y | 接入方工单号 |
| tms_workorder_id | String | 32 | Y | 腾讯工单号 |
| uid | string | 32 | Y | 叫车人用户ID |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| opt_result | string | 2048 | N | 处理方客服处理结果内容 |
| solution_source | int | 10 | N | 处理方,1 腾讯 2 运力商 3 接入渠道 |
| status | int | 10 | Y | 工单状态,参考附录 工单状态 |
| solution | int | 10 | N | 工单处理结果,参考附录 工单处理结果类型 |
| exInformation | String | 2048 | N | 附加信息(工单补充信息,双方协商,提前定义结构字段开发) |
| detail | object | 处理详情 | ||
| detail.cancel | int | 10 | N | 当 solution=1 取消订单时,对应结果状态必填。0-订单不取消,1-订单已取消 |
| detail.refund | int | 10 | N | 当 solution=2 退款时,必填。退款类型,0-不退款,1-全额退款,2-部分退款 |
| detail.refund_amount | int | 10 | N | 当 solution=2 退款时,必填。退款金额,单位:分 |
| detail.refund_about_extra_charge | int | 10 | N | 当 solution=2 退款时,必填。退款是否为退附加费,0-否,1-是 |
| detail.modify_fee | int | 10 | N | 当 solution=3 改价时,必填。0-订单不改价,1-订单已改价。改价操作结果只通知工单,具体明细以获取订单详情为准 |
| detail.change_price | int | 10 | N | 当 solution=3 改价时,必填。改价金额,单位:分 |
| detail.compensate_coupon | int | 10 | N | 当 solution=4 发券补偿时,必填。0-订单不补偿,1-订单已补偿优惠券。补偿优惠券结果只做通知,具体以优惠券运营方实际操作结果为准 |
# 3.3.3.3 更新工单
接口说明 : 腾讯出行服务提供(渠道方调用):更新工单,当前主要用于变更优先级及关闭工单
请求地址 :
<tms_url_prefix>/api/workorder/update请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| workorder_id | String | 32 | Y | 接入方工单号 |
| tms_workorder_id | String | 32 | Y | 腾讯工单号 |
| uid | String | 32 | Y | 叫车人用户ID |
| priority | Integer | 10 | N | 参考附录、工单优先级 |
| description | String | 2048 | N | 工单客诉内容描述,(更新客诉问题按累加描述),一般为工单发起方记录 |
| solution | Integer | 10 | N | 参考附录 工单处理结果类型 |
| status | Integer | 10 | N | 参考附录 工单状态 |
| update_time | Long | 20 | Y | 更新时间,毫秒时间戳 |
| solution_process | Object | N | 工单处理过程信息 | |
| solution_process.opt_solution | String | 2048 | N | 客服处理内容(累加记录) |
| solution_process.cancel | Integer | 10 | N | 当 solution=1 取消订单时,必填。1-订单已取消,0-订单不取消 |
| solution_process.refund_type | Integer | 10 | N | 当 solution=2 退款时,必填。退款类型,0-不退款,1-全额退款,2-部分退款 |
| solution_process.refund_amount | Integer | 10 | N | 当 solution=2 退款时,必填。退款金额,单位:分 |
| solution_process.refund_about_extra_charge | Integer | 10 | N | 当 solution=2 退款时,必填。退款是否为退附加费,0-否,1-是 |
| solution_process.is_modify_fee | Integer | 10 | N | 当 solution=3 改价时,必填。1-订单已改价,0-订单不改价。改价操作结果只通知工单,具体明细以获取订单详情为准 |
| solution_process.change_price | Integer | 10 | N | 当 solution=3 改价时,必填。改价金额,单位:分 |
| solution_process.is_compensate_coupon | Integer | 10 | N | 当 solution=4 发券补偿时,必填。1-订单已补偿优惠券,0-订单不补偿。补偿优惠券结果只做通知,具体以优惠券运营方实际操作结果为准 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 3.3.4 IM消息
# 3.3.4.1 乘客发送消息
接口说明 : 腾讯出行服务提供(渠道方调用):乘客发送IM消息
请求地址 :
<tms_url_prefix>/api/im/passenger/send请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| open_driver_id | string | 500 | Y | 司机标识(腾讯内部发生司机改派时,用于区分会话) |
| msg_id | string | 32 | Y | 接入方msg的唯一标识 |
| msg_type | int | - | Y | 消息类型,0:文字,1:图片(图片链接) |
| msg_content | string | - | Y | 消息内容 |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_msg_id | string | 32 | Y | 腾讯侧消息id |
# 3.3.4.2 乘客消息事件
接口说明 : 腾讯出行服务提供(渠道方调用):乘客IM消息事件
请求地址 :
<tms_url_prefix>/api/im/passenger/event请求参数 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|---|---|---|---|
| tms_oid | string | 32 | Y | 腾讯订单ID |
| oid | string | 32 | Y | 接入方订单ID |
| uid | string | 32 | Y | 叫车人用户ID |
| open_driver_id | string | 500 | Y | 司机标识(腾讯内部发生司机改派时,用于区分会话) |
| event_type | int | - | Y | 事件类型,0:已读 |
| tms_msg_ids | List | - | Y | 腾讯侧消息id |
- 返回数据 :
| 参数名称 | 类型 | 长度 | 必选 | 说明 |
|---|
# 四、附录
# 4.1 运力商标识
| 编码 | 出行公司名称 |
|---|---|
| 1 | 曹操出行 |
| 2 | 首汽约车 |
| 4 | 万顺叫车 |
| 6 | 阳光出行 |
| 12 | 享道出行 |
| 18 | T3出行 |
| 20 | 如祺打车 |
| 23 | 够谱出行 |
| 126 | 小马出行 |
# 4.2 服务类型 serviceType
| 编码 | 说明 |
|---|---|
| 1 | 即时用车 |
| 2 | 预约用车 |
| 3 | 接机 |
| 4 | 送机 |
# 4.3 运力类型 rideType
| 产线 | 编码 | 说明 |
|---|---|---|
| 打车 | 1 | 普通经济 |
| 2 | 超惠经济 | |
| 3 | 优享型 | |
| 4 | 舒适型 | |
| 5 | 商务型 | |
| 6 | 豪华型 | |
| 7 | 出租车 | |
| 8 | 特快经济型 | |
| 9 | 极速拼车 | |
| 10 | 特价拼车 | |
| 11 | 城际拼车 | |
| 12 | 网约计价出租车 | |
| 13 | 优净好车 | |
| 14 | 自动驾驶 | |
| 接送机 | 30 | 经济型(4人) |
| 31 | 优享型(4人) | |
| 32 | 舒适型(4人) | |
| 33 | 商务型(6人) | |
| 34 | 豪华型(4人) | |
| 35 | 豪华7座(6人) |
# 4.4 计价类型 chargeType
| 编码 | 说明 |
|---|---|
| 1 | 普通计费 |
| 2 | 一口价 |
# 4.5 订单状态相关编码
# 4.5.1 订单状态
| 状态码 | 说明 |
|---|---|
| 1 | 已创建 |
| 2 | 派单中 |
| 3 | 司机已接单 |
| 4 | 司机已出发 |
| 5 | 司机已到达 |
| 6 | 乘客上车,服务中 |
| 7 | 行程结束 |
| 8 | 确认账单 |
| 9 | 已支付 - 完单且支付后为该状态 |
| 10 | 用户取消 - 取消费支付后,依然为 10 |
| 11 | 平台取消 |
| 12 | 运力取消 |
# 4.5.2 订单回调事件 event
| 事件 | 说明 | 对应的腾讯出行订单状态 |
|---|---|---|
| 运力侧成功创建订单,派单中 | 2-派单中 | |
| 3 | 司机举手,待确认 | 2-派单中/3-司机已接单 |
| 31 | 改派 | 3-司机已接单 |
| 32 | 连环单上一单已完成 | 3-司机已接单 |
| 4 | 司机已出发 | 4-司机已出发 |
| 5 | 司机已到达 | 5-司机已到达 |
| 51 | 车辆绕圈中 | 5-司机已到达 |
| 6 | 乘客上车,服务中 | 6-乘客上车,服务中 |
| 62 | 到达途经点 | 62-到达途经点 |
| 7 | 行程结束 | 7-行程结束 |
| 8 | 确认账单 | 8-确认账单 |
| 81 | 改价事件 | 8-确认账单 |
| 91 | 退款事件 | 9-支付完结 |
| 12 | 运力取消 | 12-运力商取消 |
外输渠道回调事件event(运力方无需关注)
| 事件 | 说明 |
|---|---|
| 2 | 司机举手 |
| 21 | 改派中 |
| 23 | 改派失败 |
| 3 | 司机已接单 |
| 31 | 改派成功 |
| 32 | 连环单上一单已完成 |
| 4 | 司机已出发 |
| 5 | 司机已到达 |
| 6 | 服务中 |
| 7 | 行程结束 |
| 8 | 待支付 |
| 81 | 改价事件 |
| 91 | 退款事件 |
| 11 | 平台取消 |
| 12 | 运力商取消 |
# 4.5.3 支付状态 payStatus
| pay_status | 说明 |
|---|---|
| 0 | 无需支付 |
| 1 | 待支付 |
| 2 | 支付成功 |
| 3 | 支付失败 |
# 4.5.4 退款状态 refundStatus
| refund_status | 说明 |
|---|---|
| 0 | 无需退款 |
| 1 | 待退款 |
| 2 | 退款成功 |
| 3 | 退款关闭 |
| 4 | 退款中 |
| 5 | 退款异常 |
# 4.5.5 发票状态 invoiceStatus
发票状态 0 未开票 1:开票中 2:已开票 3:开票失败 4:已取消 5-已作废
| invoice_status | 说明 |
|---|---|
| 0 | 未开票 |
| 1 | 开票中 |
| 2 | 已开票 |
| 3 | 开票失败 |
| 4 | 已取消 |
| 5 | 已作废 |
# 4.5.6 订单通知事件
| 事件 | 说明 |
|---|---|
| 1001 | 接驾车位分配完成事件 |
# 4.6 取消原因
取消来源:cancelSource,取消类型:cancelType,取消原因:cancelReason
| 取消来源 | 取消类型 | 取消原因 | 说明 |
|---|---|---|---|
| 1 | 100 | 客户取消(默认) | 用户取消及小程序侧选择的原因 |
| 101 | 临时有事,暂不用车 | ||
| 102 | 选错上车或下车地点 | ||
| 103 | 与司机协商一致后取消订单 | ||
| 104 | 联系不上司机 | ||
| 105 | 车辆或司机和订单显示的不一致 | ||
| 106 | 司机要求线下付款或加价 | ||
| 107 | 司机要求我取消订单 | ||
| 108 | 司机原地不动或长时间不来接我 | ||
| 109 | 司机打电话态度不好 | ||
| 110 | 派了离我太远的司机来接我 | ||
| 111 | 不是我预期的车型或运力商 | ||
| 112 | 推荐上车地点不准确 | ||
| 2 | 200 | 派单决策没选用 | |
| 201 | 用户风控未过 | ||
| 299 | 其他 | ||
| 3 | 300 | 无司机接单 | |
| 301 | 司机取消 | ||
| 302 | 客服取消 | ||
| 303 | 系统取消 | ||
| 304 | 系统补偿取消(订单异常) | ||
| 4 | 400 | 司机取消 |
# 4.7 城市编码
参考: GB/T 2260 城市编码 (opens new window)
# 4.8 日期时间格式
日期格式采用 GB/T 7408—2005 标准中"YYYY-MM-DD"格式(示例:2022-08-01),时区统一 采用东八区(即北京时间)。
日期时间格式采用 GB/T 7408—2005 标准中的 "YYYY-MM-DD hh:mm:ss" 格式(示例: 2022-08- 01 19:00:00),时区统一采用东八区(即北京时间)。
Java 中时间格式应为: "yyyy-MM-dd HH:mm:ss"
PHP中时间格式应为: "Y-m-d H:i:s"
Go 中时间格式应为:"2006-01-02 15:04:05"
Python 中时间格式应为: "%Y-%m-%d %H:%M:%S"
# 4.9 发票回调事件
| 事件 | 说明 |
|---|---|
| 1 | 开票成功 |
| 2 | 开票失败 |
| 3 | 作废成功 |
| 4 | 作废失败 |
# 4.10 费用明细的定义
开票类型:-1 折扣金额,0 不参与开票,1 参与开票
| 费用明细(code) | 费用明细表 | 开票类型 |
|---|---|---|
| minFee | 起步费 | 1 |
| distanceFee | 里程费/超里程费 | 1 |
| routingFee | 时长费/超时长费 | 1 |
| longDistanceFee | 远途费 | 1 |
| crossCityFee | 跨城费 | 1 |
| waitFee | 等待费 | 1 |
| otherFee | 其他费 | 1 |
| holidayServiceFee | 节假日服务费 | 1 |
| nightServiceFee | 夜间服务费 | 1 |
| dynamicFee | 动态调价费(正数调高,负数调低) | 1 |
| childSeatFee | 儿童座椅费 | 1 |
| signPickupFee | 举牌接机费 | 1 |
| cancelFee | 取消费 | 1 |
| fixedPriceFee | 一口价订单行程费用 | 1 |
| fixedPriceOverDistanceFee | 一口价超里程费 | 1 |
| fixedPriceOverTimeFee | 一口价超时费 | 1 |
| refundFee | 退款 | -1 |
| discountFee | 优惠抵扣 | -1 |
| insuranceFee | 保险费 | 0 |
| otherSurchargeFee | 其他附加费 | 0 |
| clearFee | 清洁费 | 0 |
| stopFee | 停车费 | 0 |
| bridgeFee | 路桥费 | 0 |
# 4.11 发票材质类型
| 发票材质类型 | 类型说明 |
|---|---|
| 0 | 纸电票(纸质发票电子化) |
| 1 | 纸质发票 |
| 2 | 数电票(全面数字化电子发票) |
“纸电票”是纸质发票的电子化,主要包括增值税电子专用发票(简称“电子专票”)和增值税电子普通发票(简称“电子普票”)。 “数电票”是全面数字化的电子发票。 两者的区别参考上海市税务局《全面数字化电子发票快问快答》 (opens new window)。
# 4.12 工单相关编码
# 4.12.1 工单状态
| 状态 | 说明 |
|---|---|
| 1 | 新建 |
| 2 | 待处理 |
| 3 | 受理中 |
| 4 | 已解决 |
# 4.12.2 工单处理结果类型
| 处理结果 | 子状态 | 说明 | 备注 |
|---|---|---|---|
| -1 | -1 | 未确认处理结果 | |
| 0 | 0 | 无需处理 | |
| 1 | 11 | 订单已取消 | |
| 1 | 111 | 订单不取消 | |
| 2 | 22 | 不退款 | |
| 2 | 222 | 已全额退款 | |
| 2 | 2222 | 部分退款 | |
| 3 | 33 | 订单已改价 | |
| 3 | 333 | 订单不改价 | |
| 4 | 4 | 发券补偿(废弃) | 发券归为客服单独补券操作,不作为单选的处理结果 |
| 5 | 5 | 免单 | |
| 10 | 10 | 其它 |
# 4.12.3 工单问题分类
【企微文档】工单问题分类与运力映射表 (opens new window)
# 4.12.4 工单优先级
| 优先级 | 说明 |
|---|---|
| 40 | 紧急 |
| 30 | 高 |
| 20 | 中 |
| 10 | 低 |
# 4.12.5 响应状态编码(code)
成功
| 编码 | 说明 |
|---|---|
| 0 | 成功 |
10000 - 19999 请求错误或者签名验证失败
| 编码 | 说明 |
|---|---|
| 10001 | 请求URL错误 |
| 10002 | 请求方法错误 |
| 10003 | appId错误 |
| 10004 | 时间戳过期或者nonce重复 |
| 10005 | 签名验证失败 |
| 10009 | 请求频繁,请稍后重试 |
2130000 - 2139999 业务错误
| 编码 | 说明 |
|---|---|
| 21300000 | 主号为空 |
| 2130001 | 工号为空 |
| 2134001 | 对象不存在 |
| 2136001 | 更新信息不合法 |
| 2136002 | 没有需要修改信息 |
| 2136007 | 工单已经处于结束状态,不能更改状态 |
| 2136008 | 接口调用失败 |
| E002000007 | 工单标题为空 |
# 4.13 聚合平台接入时,运力标识编码
| spCode | 说明 |
|---|---|
| T3 | T3出行 |
# 4.14 OrderBlameType枚举
| 字段值 | 字段描述 |
|---|---|
| 0 | 默认,未命中 |
| 1 | 取消费判责 |
| 2 | 未乘车扣费 |
| 3 | 多收通行费 |
| 4 | 司机绕路 |
| 5 | 目的地异常 |
| 6 | 提前计费 |
| 7 | 司机没来接我 |
| 8 | 不经用户确认派单 |
| 99 | 其他 |
# 4.15 车辆控制指令枚举
| 字段值 | 字段描述 |
|---|---|
| UNLOCK_REAR_RIGHT_DOOR | 解锁车门(右后) |
| OPEN_REAR_RIGHT_DOOR | 打开车门(右后) |
# 4.16 可选服务
| 字段值 | 字段描述 |
|---|---|
| CHILD_SEAT | 儿童座椅 |
| RAISE_CARD | (接机)举牌服务 |
# 4.17 车控命令执行状态
| 字段值 | 字段描述 |
|---|---|
| 0 | 执行中 |
| 1 | 执行失败 |
| 2 | 执行成功 |