- 接口常见问题解决方案
- 通用错误码,错误信息及解决方案
- 400(非法的client_id)
- 400(非法的client_secret)
- 401(access_token不合法或已过期,请重新获取access_token)
- 402(未传当前用户手机号)
- 402(手机号不合法)
- 403(IP不在白名单中,本次请求ip:xxx.xxx.xxx.xxx)
- 404(没有访问该接口的权限)
- 406(该用户不存在,请管理员添加后再使用)
- 408(参数错误,未正确传输timestamp)
- 410(client_id不一致)
- 411(由于访问过于频繁,请稍后访问)
- 412(client_id和access_token为必填项)
- 10001(timestamp过期/请求超时)
- 10002(IP不在白名单中,本次请求ip:xxx.xxx.xxx.xxx)
- 10003(参数错误xxxxxx)
- 19998(系统异常xxxxxx)
- 19999(签名验证失败)
- 通用错误码,错误信息及解决方案
- 公共接口常见错误码,错误信息及解决方案
- 订单接口常见错误码,错误信息及解决方案
- 安全接口常见错误码,错误信息及解决方案
- 投诉接口常见错误码,错误信息及解决方案
- 司机评分常见错误码,错误信息及解决方案
接口常见问题解决方案
本章内容包含常见错误码及错误信息描述,并给出解决问题的步骤。如果在开发过程中遇到报错,请先在本章中搜索解决方案,谢谢!通用错误码,错误信息及解决方案
400(非法的client_id)
- client_id是否正确填写
- client_id对应的申请应用是否通过审核
400(非法的client_secret)
- client_secret是否和client_id对应,有可能client_id是A应用的,而client_secret是B应用的
401(access_token不合法或已过期,请重新获取access_token)
- 检查access_token是否过期,access_token有效期是半小时,在access_token快过期前,请重新获取access_token
402(未传当前用户手机号)
- 检查手机号是否真的传了
- 手机号传了,检查是否接口要求POST请求而实际请求用了GET请求,建议仔细阅读调用的接口文档
- 手机号传了,请求方式没问题,检查content-type是否为为application/json
402(手机号不合法)
- 检查手机号格式(目前只支持中国大陆的,不要加“+86”这种前缀的国家码 )如+8611111000011是不合法的
403(IP不在白名单中,本次请求ip:xxx.xxx.xxx.xxx)
- 添加IP白名单的方法见链接
404(没有访问该接口的权限)
注意: 一定要确保调用接口使用的client_id和应用详情页的client_id是同一个
- 在开放平台-管理中心查看应用详情,开放平台-管理中心地址 应用详情页会标明应用是企业用车应用还是企业管理应用,企业用车应用只有权限调用企业用车API的接口,企业管理应用只有权限调用企业管理API的接口
- 检查client_id对应的scope,scope会在授权认证接口中返回,如果没有对应的权限,请发邮件找商务开通
406(该用户不存在,请管理员添加后再使用)
- 检查该手机号是否在该企业中
- 检查该手机对应的员工是否被删除
- 可以登录滴滴企业版官网检查该手机号是否在该企业中,或者是否被删除
408(参数错误,未正确传输timestamp)
- 检查是否timestamp格式错误:timestamp是时间戳,即从1970-01-01 00:00:00到现在的的秒数,是一个数字,例如2019-06-04 11:21:54的时间戳是1559618514(附上时间戳计算工具)
410(client_id不一致)
- 检查client_id是否传了
- 传了,检查是否是生成access_token时用的client_id和调用接口时所用的client_id不一致导致,一般是client_id一个是线上一个是测试导致的
411(由于访问过于频繁,请稍后访问)
- 每个接口都有它的限速,请稍后再试。如订单详情接口访问频率限制,司机计费前(status<500)访问限制在 10秒/次,司机计费后(status>=500)访问限制在 300秒/次,如果超频:返回 errno: 36003
412(client_id和access_token为必填项)
- 检查这两个字段是否真的没传
- 传了,检查是否接口要求POST请求而实际请求用了GET请求,建议仔细阅读调用的接口文档
- 传了,请求方式没问题,检查content-type是否为为application/json
- 如果确认上述均无问题,请直接使用curl发送请求,如果curl请求没有提示这个错误,请认真检查代码是否哪里把这两个参数过滤了
10001(timestamp过期/请求超时)
- 要求接口参数中的timestamp和请求达到滴滴服务器的时间不超过1分钟,如果遇到这个错误,请检查你们服务器的时间是否准确,具体命令为:date -d @1559618514
- 比如请求接口参数中timestamp=1564558210,即(2019/7/31 15:30:10),与达到滴滴服务器的时间nowtime=1564558310,即(2019/7/31 15:31:50)相比大于1分钟,接口返回10001
10002(IP不在白名单中,本次请求ip:xxx.xxx.xxx.xxx)
- 添加IP白名单的方法见链接
10003(参数错误xxxxxx)
- 检查传参是否符合接口文档中的参数说明
- 检查接口文档是否要求POST请求而实际请求用的是GET请求
19998(系统异常xxxxxx)
xxxxxx有以下可能:
19999(签名验证失败)
- 使用签名验证工具验证代码中的生成的sign和工具中生成的sign是否一致
- 使用方法:将代码中的请求参数(除sign之外)依次填入到相应的位置,再加上sign_key这个字段,点击发送请求
- 名词解释:加密字符串——即用md5算法加密之前按顺序拼接好的字符串(这个字符串特别重要)
- 如果代码中的签名和工具生成的签名不一致,请仔细核查代码中加密前的字符串和工具中加密字符串的区别(必须一模一样)
- 如果一致,请再仔细检查调用接口时传给滴滴侧的请求参数是否和计算sign的参数一样
公共接口常见错误码,错误信息及解决方案
获取城市计价规则
31004(预估价格失败(xxxxxx))
xxxxxx有以下可能:
- 预估价格失败:(1007)
- 通常是请求参数城市id不存在,见文档获取城市列表,比如传了city=567,接口会返回预估价格失败:(1007)
- 企业获取计价规则失败 [24004] (24004)
- 通常是调用下游接口超时或者网络异常,可以稍后重试
预估价格
31004(预估价格失败(xxxxx))
xxxxx有以下可能:
- 参数错误 [20001] (20001)
- 经纬度传的格式是否正确,经纬度是不传反?
- 预约时间是否传了过去的时间,请严格参照接口文档预估价格
- 渠道号码返回失败
- 企业不存在,可以登录滴滴企业版官网查看公司的状态
- 计价未配置 [24002] (24002)
- 确认这个城市是否开通了开通计价,见文档获取城市计价规则
- 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆)
- 企业获取计价规则失败 [24004] (24004)
- 通常是调用下游接口超时或者网络异常,可以稍后重试
- 该城市区域该车型未开通 [24006] (24006)
- 定位似乎有些问题,请检查您的定位功能~ [1007] (1007)
- 经纬度传的格式是否正确,经纬度是不传反?
- 系统错误,请稍后再试 560001 [1026] (1026)
- 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆),一般是出发地目的地太远导致预估失败
订单接口常见错误码,错误信息及解决方案
订单接口通用错误
20001(请求参数错误xxxxx)
xxxxx有以下可能:
- flight_num和depart_delay_time必须成对出现
- 下单的时候,flight_num和depart_delay_time必须成对出现,要么都传,要么都不传,见文档发起叫车请求
- departure_time拼装错误,请按规则拼装
- 下单的时候,当rule=203,且type=1时,请按规则拼装,规则:航班预计降落时间+depart_delay_time,我们会校验航班预计降落时间 + depart_delay_time是否与departure_time时间相同,若不同,返回参数错误
- airport_id和flight_num不对应
- 检查airport_id和flight_num是否对应,可以通过flight_num参数,调用航班信息查询接口获取airport_id和flight_num对应列表
- 其他情况
- 按照提示信息检查一下传递的参数的格式是否满足提示的要求
- 检查接口文档是否要求POST请求而实际请求用的是GET请求
订单请求
20003(无效的订单id)
- 检查请求参数中订单id是否已经被下单使用过,比如订单id状态已经是等待接驾状态,又被用来下单,接口返回无效的订单id
- 检查获取订单id用的client_id和发起叫车时client_id是不是完全一样,比如获取订单id用的client_id:didiabcde1,发起叫车时client_id:didiabcde2,client_id不一致,接口返回无效的订单id
20004(出发时间太近了,应该叫实时单)
- 检查预约单出发时间距当前时间是否小于30分钟
- 比如当前时间:2019/7/31 15:31:50,预约单出发时间:2019/7/31 15:51:50,相比小于30分钟,接口返回出发时间太近了,应该叫实时单
20007(叫车失败xxxxx)
xxxxx有以下可能:
- 20001|参数错误 [20001]
- 按照提示信息检查一下传递的参数的格式是否满足提示的要求
- 检查计价模式pricing_mode是不传了1,这个暂时不支持可能会报参数错误
- 确认下单出发或者目的地经纬度传的是正确的(有没有传反,坐标正常不在海里面,不是距离超级远比如说北京到新疆)
- 企业余额不足
- 如果是测试:(1) 先结束未结束的订单:进行中和未接单的订单会占用余额,余额占用过多时,会导致无法下单; (2) 测试过程中尽量使用小额的订单进行测试; (3) 找商务同学给测试帐号充值
- 如果是正式:请先进行充值在进行下单,可以登录滴滴企业版官网进行充值
- 20011|企业订单创建失败 [20011]
- 确认订单id是否已经被下单使用过,比如订单id状态已经是取消状态或者失败状态,又被用来下单,接口返回企业订单创建失败
- 32007|调用专车异常 [32007]
- 通常是调用下游接口超时或者网络异常,可以稍后重试
20008(抱歉,只能叫3天以内的订单)
- 检查预约出发时间是否在3天之内(今天,明天,后天)
- 比如当前时间:2019/7/31 15:31:50,预约出发时间:2019/8/03 15:51:50,预约出发时间不在(2019/7/31(今天),(2019/8/01)明天,(2019/8/02)后天)这3天之内,接口返回抱歉,只能叫3天以内的订单
20028(预估价变化,请重新获取预估价再下单)
- 下单请求中的dynamic_md5参数已经过期,通过重新获取预估价更新dynamic_md5
20050(xxxxx)
xxxxxx有以下可能:
- 抱歉,该地区未开通服务
- 经纬度传的格式是否正确,经纬度是不传反?
- (32010)或者(32015)
- 未开通专车或者快车,确认这个城市是否开通了这个车型,见文档获取城市列表
- 城市管控或者夜间行驶限制
- 比如会出现:为了避免夜间疲劳驾驶,保障司乘安全,夜间时段(22:00-7:00)不再服务超过400KM订单,请您选择公共交通或出租车出行,感谢您的理解与支持!
20051(因您违反平台规定,平台暂停为您提供叫车服务至xxxxx)
- 可以通过接口返回结果,查看解封的时间,其中返回字段err_desc_h5中的url可以查看封禁的原因
20052(乘客未授权录音录像)
- 必须先进行录音录像授权才能下单(可以通过接口返回字段err_desc_h5中的url进行录音录像的授权)
31004(预估价格失败(xxxx))
xxxx有以下可能:
- 参数错误 [20001] (20001)
- 经纬度传的格式是否正确,经纬度是不传反?
- 预约时间是否传了过去的时间,请严格参照接口文档预估价格
- 渠道号码返回失败
- 企业不存在,可以登录滴滴企业版官网查看公司的状态
- 计价未配置 [24002] (24002)
- 确认这个城市是否开通了开通计价,见文档获取城市计价规则
- 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆)
- 企业获取计价规则失败 [24004] (24004)
- 通常是调用下游接口超时或者网络异常,可以稍后重试
- 该城市区域该车型未开通 [24006] (24006)
- 定位似乎有些问题,请检查您的定位功能~ [1007] (1007)
- 经纬度传的格式是否正确,经纬度是不传反?
- 系统错误,请稍后再试 560001 [1026] (1026)
- 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆),一般是出发地目的地太远导致预估失败
35001(获取航班信息失败)
- 检查航班号(flight_num)与航班出发日期(flight_date)是否传的正确,可以调航班信息查询接口验证
35002(航班或机场信息不匹配)
- 检查airport_id和flight_num是否对应,可以通过flight_num参数,调用航班信息查询接口获取airport_id和flight_num对应列表
订单详情
36002(该订单权限受限)
- 确认这个订单是不是真的发单了。如果是用车API,是不是只生成了订单id,没有调用下单接口;如果是webapp,是不是只生成了发单ticket,没有实际完成发单操作
- 确认请求订单详情的client_id和发单的client_id用的是不是同一个
- 如果是用车API:确认发单时用的access_token的手机号和获取订单详情时用的access_token的手机号是不是完全一样
- 如果是webapp:确认webapp生成ticket时的master_phone和获取订单详情时用的access_token的手机号是不是完全一样
36004(获取订单失败(xxxxxx))
xxxxxx有以下可能:
- E36005
- 订单不存在,确认这个订单是不是真的发单了,如果是用车API,是不是只生成了订单id,没有调用下单接口
- 如果是webapp,是不是只生成了发单ticket,没有实际完成发单操作
取消订单
20010(无效订单)
- 确认这个订单是不是真的发单了,是不是只生成了订单id,没有调用下单接口
- 确认发单时用的access_token的手机号和取消订单时用的access_token的手机号是不是完全一样
- 确认订单状态是否在行程中(比如订单状态已经是超时关闭,取消订单会返回无效订单),可以通过订单详情接口查看订单状态
20014(订单当前状态不能取消,稍后重试)
- 原因可能是调用取消接口的时候,刚好司机端发出了拉单请求(司机正在抢单中不能取消)
20011(订单取消失败(xxxxxx))
xxxxxx有以下可能:
- 订单不存在 [20004]
- 请求参数中订单id是否下单使用过(有可能这个订单不是真的发单了,是不是只生成了订单id,没有调用下单接口)
- 确认发单时用的access_token的手机号和取消订单时用的access_token的手机号是不是完全一样
- 请求订单异常 [20005]
- 请求参数中订单id订单状态可能为(客服关闭、未能完成服务、支付完成)之一,不满足取消订单的条件,比如订单状态已经是客服关闭(610),接口返回请求订单异常
- 无效订单 [20009]
- 请求参数中订单id的订单状态可能不在(等待接驾(400)、司机已到达(410)、行程中(500))之一,比如订单状态已经是超时关闭,接口返回无效订单
- 订单已取消 [20010]
- 请求参数中订单id已经是取消状态,不满足取消订单的条件
- 行程已结束订单不能取消 [35007]
- 请求参数中订单id已经是待支付状态,不满足取消订单的条件
注意:取消订单的条件:订单状态必须在(等待接驾(400)、司机已到达(410)、行程中(500))之一,可以通过订单详情接口查看订单状态
费用支付确认
20010(无效订单)
- 确认这个订单是不是真的发单了。如果是用车API,是不是只生成了订单id,没有调用下单接口;如果是webapp,是不是只生成了发单ticket,没有实际完成发单操作
- 确认发单时用的client_id和费用支付确认时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,费用支付确认时client_id:didiabcde2,client_id不一致,接口返回无效订单
20026(该订单确认通知失败)
- 通常是调用下游接口超时或者网络异常,可以稍后重试
20027(订单还未处于结束状态,不要提前确认,请稍后再试)
- 确认请求参数中订单id的订单状态是不是满足费用支付确认的条件
- 比如请求参数中订单id订单状态已经是取消订单无需支付(610),调用费用支付确认接口,接口返回订单还未处于结束状态,不要提前确认,请稍后再试
注意:费用支付确认的条件:订单状态必须在(正常订单待支付(6001)、取消订单待支付(6002))之一,可以通过订单详情接口查看订单状态
37004(处理失败(xxxxxx))
xxxxxx有以下可能:
- 请求订单不存在 [20004]
- 请求参数中订单id是否下单使用过(有可能这个订单不是真的发单了,是不是只生成了订单id,没有调用下单接口)
- 支付繁忙,请您稍后再试 [60121]
- 通常是调用下游接口超时或者网络异常,可以稍后重试
37005(请求超时,请重试)
- 通常是调用下游接口超时或者网络异常,可以稍后重试
36002(订单权限受限)
- 确认这个订单是否是通过openapi或webapp下单的,目前该接口只支持openapi或webapp费用支付确认
- 确认发单时用的access_token的手机号和费用支付确认时用的access_token的手机号是不是完全一样
- 比如确认发单时用的access_token的手机号:11001112222,费用支付确认时用的access_token的手机号:11001112223,手机号不一致,接口返回该订单权限受限
安全接口常见错误码,错误信息及解决方案
乘客护航
41010(获取安全功能H5页URL(xxxxxx))
xxxxxx有以下可能:
- 用户注册失败
- 正式应用:检查手机号是否合法(目前只支持中国大陆的),比如11111000011是不合法的
- 测试应用:需要使用系统分配的测试手机号,可以登录查看测试手机号
- 获取token失败
- 通常是调用下游接口超时或者网络异常,可以稍后重试
行程分享
41001(获取分享行程(xxxxxx))
xxxxxx有以下可能:
- 用户注册失败
- 正式应用:检查手机号是否合法(目前只支持中国大陆的),比如11111000011是不合法的
- 测试应用:需要用分配的测试手机号,可以登录查看测试手机号
- 获取token失败
- 通常是调用下游接口超时或者网络异常,可以稍后重试
- 订单不存在 [20004]
- 请求参数中订单id是否下单使用过(有可能这个订单不是真的发单了,是不是只生成了订单id,没有调用下单接口)
- 确认发单时用的client_id和获取分享行程时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,获取分享行程时client_id:didiabcde2,client_id不一致,接口返回订单不存在 [20004]
- 该订单不满足行程分享条件:无司机接单
- 通常是不满足行程分享条件:无司机接单,可以通过订单详情接口查看订单状态
- 该行程已结束
- 行程分享的时效是48小时,比如下单时间:2019/8/03 15:51:50,获取分享行程的时间:2019/8/05 15:52:50,接口返回该行程已结束
- 该行程已于48小时前结束
- 行程分享的时效是48小时,比如完单时间:2019/8/03 15:51:50,获取分享行程的时间:2019/8/05 15:52:50,接口返回该行程已于48小时前结束
注意:获取分享行程的条件:(1)订单必须要有司机接单,可以通过订单详情接口查看订单状态;(2) 行程分享的时效是48小时
紧急联系人设置状态
41008(获取是否设置紧急联系人(xxxxxx))
xxxxxx有以下可能:
- 用户注册失败
- 正式应用:检查手机号是否合法(目前只支持中国大陆的),比如11111000011是不合法的
- 测试应用:需要使用系统分配的测试手机号,可以登录查看测试手机号
投诉接口常见错误码,错误信息及解决方案
投诉接口通用错误
38003(该订单权限受限)
- 确认这个订单是不是真的发单了,是不是只生成了订单id,没有调用下单接口
- 确认发单时用的client_id和投诉时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,投诉时client_id:didiabcde2,client_id不一致,接口返回该订单权限受限
- 确认发单时用的access_token的手机号和费用支付确认时用的access_token的手机号是不是完全一样
- 比如确认发单时用的access_token的手机号:11001112222,费用支付确认时用的access_token的手机号:11001112223,手机号不一致,接口返回该订单权限受限
司机评分常见错误码,错误信息及解决方案
司机评分
31001(请求参数错误(xxxxx))
- 检查传参是否符合接口文档中的参数说明,接口文档:司机评分
- 检查接口文档是否要求POST请求而实际请求用的是GET请求
36002(此订单权限受限)
- 确认这个订单是不是真的发单了,是不是只生成了订单id,没有调用下单接口
- 确认发单时用的client_id和投诉时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,投诉时client_id:didiabcde2,client_id不一致,接口返回该订单权限受限
- 确认发单时用的access_token的手机号和费用支付确认时用的access_token的手机号是不是完全一样
- 比如确认发单时用的access_token的手机号:11001112222,费用支付确认时用的access_token的手机号:11001112223,手机号不一致,接口返回该订单权限受限