1. 说明
- 当订单状态发生改变时,滴滴出行会通过回调服务将这些事件通知接入方。使用此功能需开启回调服务,关于如何设置接收消息请见回调服务配置。
- 当接入方收到回调后,需要重新调用订单详情接口,拉取最新的订单状态和信息,然后做相应处理
- 回调要求响应结果包含errno,且errno = 0表示回调成功,否则一律视为回调失败
2. 支持场景
订单中间状态流转
司机接单(等待接驾)
改派中
乘客迟到
乘客迟到计费
司机迟到
司机到达
计费中(行程中)
订单终态通知
正常支付待评论
正常支付已评论
取消订单已支付
取消订单无需支付
订单超时
司机改派关闭
未能完成服务关闭
订单支付确认通知
订单正常结束待支付(确认支付或费用投诉)
订单取消费用待支付(确认支付)
订单退款通知
产生投诉的订单,退款操作后,通知接入方调用订单详情获取退款信息
订单改价通知
客服对未支付订单更改价格后,通知接入方调用订单详情获取最新价格
客服关单通知
由于各种原因,客服核实后,关闭订单,通知接入方获取订单详情
下单成功通知(仅支持webapp、h5方式)
由于webapp、h5下单是在滴滴页面上进行的,乘客发单后接入方系统无法感知,故需要在下单成功后进行通知。api下单时接入方发起的操作,不需要通知
3. 回调请求方式
POST
4. 回调请求头
Content-Type:multipart/form-data
5. 返回数据格式
JSON
6. 回调请求参数
参数名称 |
参数类型 |
是否必填 |
参数说明 |
---|---|---|---|
client_id |
string |
是 |
申请应用时分配的client_id |
order_id |
string |
是 |
订单id |
notify_type |
int32 |
是 |
通知类型 |
notify_desc |
string |
是 |
通知说明文案 |
accept_status |
int32 |
否 |
司机是否接受变更目的地 1是接收,0是拒绝,只有在notify_type=10时才有该字段 |
content |
string |
否 |
im消息内容,只有在notify_type=11时才有该字段 |
pickup_distance |
int |
否 |
司机举手时,预计接驾距离,单位:米,只有在notify_type=12时才有该字段 |
pickup_duration |
int |
否 |
司机举手时,预计接驾时间,单位:秒,只有在notify_type=12时才有该字段 |
timestamp |
int32 |
是 |
调用接口时间对应的时间戳,精确到秒级 |
sign |
string |
是 |
签名(注:本接口的传参都要参与签名)签名算法 |
7. 回调请求示例
curl --location '{{接入方配置的回调地址}}' \
--header 'Content-Type: multipart/form-data' \
--form 'client_id="diditestclient"' \
--form 'order_id="11259147829393826"' \
--form 'notify_type="1"' \
--form 'notify_desc="司机接单"' \
--form 'timestamp="1652343824"' \
--form 'sign="sign14546984367389"'
8. 回调返回数据格式
返回值字段 |
字段类型 |
字段说明 |
---|---|---|
errno |
int32 |
错误码,0为通知成功,非0为通知失败 |
errmsg |
string |
错误信息描述 |
9. 回调返回示例
{
"errno": 0,
"errmsg": "SUCCESS"
}
10. 回调失败重试次数 & 时间间隔
通知类型(notify_type) |
场景 |
重试次数 |
重试间隔 |
---|---|---|---|
1 |
订单中间状态流转 |
2 |
120秒、240秒 |
2 |
订单终态通知 |
3 |
120秒、240秒、360秒 |
3 |
订单支付确认通知 |
5 |
5秒、10秒、20秒、60秒、180秒 |
4 |
订单退款通知 |
2 |
120秒、240秒 |
5 |
订单改价通知 |
2 |
120秒、240秒 |
6 |
客服关单通知 |
2 |
120秒、240秒 |
8 |
下单成功 |
2 |
5秒、10秒 |
10 |
修改目的地通知 |
2 |
120秒、240秒 |
11 |
司机im新消息通知 |
2 |
120秒、240秒 |
12 |
司机举手通知 |
1 |
1秒 |
13 |
路线变更通知 |
1 |
1秒 |