接口常见问题解决方案

本章内容包含常见错误码及错误信息描述,并给出解决问题的步骤。如果在开发过程中遇到报错,请先在本章中搜索解决方案,谢谢!

通用错误码,错误信息及解决方案

400(非法的client_id)

  1. client_id是否正确填写
  2. client_id对应的申请应用是否通过审核

400(非法的client_secret)

  1. client_secret是否和client_id对应,有可能client_id是A应用的,而client_secret是B应用的

401(access_token不合法或已过期,请重新获取access_token)

  1. 检查access_token是否过期,access_token有效期是半小时,在access_token快过期前,请重新获取access_token

402(未传当前用户手机号)

  1. 检查手机号是否真的传了
  2. 手机号传了,检查是否接口要求POST请求而实际请求用了GET请求,建议仔细阅读调用的接口文档
  3. 手机号传了,请求方式没问题,检查content-type是否为为application/json

402(手机号不合法)

  1. 检查手机号格式(目前只支持中国大陆的,不要加“+86”这种前缀的国家码 )如+8611111000011是不合法的

403(IP不在白名单中,本次请求ip:xxx.xxx.xxx.xxx)

  1. 添加IP白名单的方法见链接

404(没有访问该接口的权限)

注意: 一定要确保调用接口使用的client_id和应用详情页的client_id是同一个

  1. 在开放平台-管理中心查看应用详情,开放平台-管理中心地址 应用详情页会标明应用是企业用车应用还是企业管理应用,企业用车应用只有权限调用企业用车API的接口,企业管理应用只有权限调用企业管理API的接口
  2. 检查client_id对应的scope,scope会在授权认证接口中返回,如果没有对应的权限,请发邮件找商务开通

406(该用户不存在,请管理员添加后再使用)

  1. 检查该手机号是否在该企业中
  2. 检查该手机对应的员工是否被删除
  3. 可以登录滴滴企业版官网检查该手机号是否在该企业中,或者是否被删除

408(参数错误,未正确传输timestamp)

  1. 检查是否timestamp格式错误:timestamp是时间戳,即从1970-01-01 00:00:00到现在的的秒数,是一个数字,例如2019-06-04 11:21:54的时间戳是1559618514(附上时间戳计算工具)

410(client_id不一致)

  1. 检查client_id是否传了
  2. 传了,检查是否是生成access_token时用的client_id和调用接口时所用的client_id不一致导致,一般是client_id一个是线上一个是测试导致的

411(由于访问过于频繁,请稍后访问)

  1. 每个接口都有它的限速,请稍后再试。如订单详情接口访问频率限制,司机计费前(status<500)访问限制在 10秒/次,司机计费后(status>=500)访问限制在 300秒/次,如果超频:返回 errno: 36003

412(client_id和access_token为必填项)

  1. 检查这两个字段是否真的没传
  2. 传了,检查是否接口要求POST请求而实际请求用了GET请求,建议仔细阅读调用的接口文档
  3. 传了,请求方式没问题,检查content-type是否为为application/json
  4. 如果确认上述均无问题,请直接使用curl发送请求,如果curl请求没有提示这个错误,请认真检查代码是否哪里把这两个参数过滤了

10001(timestamp过期/请求超时)

  1. 要求接口参数中的timestamp和请求达到滴滴服务器的时间不超过1分钟,如果遇到这个错误,请检查你们服务器的时间是否准确,具体命令为:date -d @1559618514
  2. 比如请求接口参数中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)

  1. 添加IP白名单的方法见链接

10003(参数错误xxxxxx)

  1. 检查传参是否符合接口文档中的参数说明
  2. 检查接口文档是否要求POST请求而实际请求用的是GET请求

19998(系统异常xxxxxx)

xxxxxx有以下可能:

  1. token设置失败
    1. 通常是下单接口入参passager_phone用了自己的手机号,需要用分配的测试手机号,可以登录查看测试手机号
  2. 请稍后重试
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试
  3. 企业channel号获取失败
    1. 企业不存在,可以登录滴滴企业版官网查看公司的状态

19999(签名验证失败)

  1. 使用签名验证工具验证代码中的生成的sign和工具中生成的sign是否一致
    1. 使用方法:将代码中的请求参数(除sign之外)依次填入到相应的位置,再加上sign_key这个字段,点击发送请求
    2. 名词解释:加密字符串——即用md5算法加密之前按顺序拼接好的字符串(这个字符串特别重要)
    3. 如果代码中的签名和工具生成的签名不一致,请仔细核查代码中加密前的字符串和工具中加密字符串的区别(必须一模一样)
  2. 如果一致,请再仔细检查调用接口时传给滴滴侧的请求参数是否和计算sign的参数一样

公共接口常见错误码,错误信息及解决方案

获取城市计价规则

31004(预估价格失败(xxxxxx))

xxxxxx有以下可能:

  1. 预估价格失败:(1007)
    1. 通常是请求参数城市id不存在,见文档获取城市列表,比如传了city=567,接口会返回预估价格失败:(1007)
  2. 企业获取计价规则失败 [24004] (24004)
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试

预估价格

31004(预估价格失败(xxxxx))

xxxxx有以下可能:

  1. 参数错误 [20001] (20001)
    1. 经纬度传的格式是否正确,经纬度是不传反?
    2. 预约时间是否传了过去的时间,请严格参照接口文档预估价格
  2. 渠道号码返回失败
    1. 企业不存在,可以登录滴滴企业版官网查看公司的状态
  3. 计价未配置 [24002] (24002)
    1. 确认这个城市是否开通了开通计价,见文档获取城市计价规则
    2. 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆)
  4. 企业获取计价规则失败 [24004] (24004)
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试
  5. 该城市区域该车型未开通 [24006] (24006)
    1. 确认这个城市是否开通了这个车型,见文档获取城市列表
    2. 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆)
    3. 确认计价类型(rule)与用车类型(require_level)是否对应,见文档订单状态定义,比如计价类型(rule)传201,用车类型(require_level)传600,接口返回预估价格失败
  6. 定位似乎有些问题,请检查您的定位功能~ [1007] (1007)
    1. 经纬度传的格式是否正确,经纬度是不传反?
  7. 系统错误,请稍后再试 560001 [1026] (1026)
    1. 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆),一般是出发地目的地太远导致预估失败

订单接口常见错误码,错误信息及解决方案

订单接口通用错误

20001(请求参数错误xxxxx)

xxxxx有以下可能:

  1. flight_num和depart_delay_time必须成对出现
    1. 下单的时候,flight_num和depart_delay_time必须成对出现,要么都传,要么都不传,见文档发起叫车请求
  2. departure_time拼装错误,请按规则拼装
    1. 下单的时候,当rule=203,且type=1时,请按规则拼装,规则:航班预计降落时间+depart_delay_time,我们会校验航班预计降落时间 + depart_delay_time是否与departure_time时间相同,若不同,返回参数错误
  3. airport_id和flight_num不对应
    1. 检查airport_id和flight_num是否对应,可以通过flight_num参数,调用航班信息查询接口获取airport_id和flight_num对应列表
  4. 其他情况
    1. 按照提示信息检查一下传递的参数的格式是否满足提示的要求
    2. 检查接口文档是否要求POST请求而实际请求用的是GET请求

订单请求

20003(无效的订单id)

  1. 检查请求参数中订单id是否已经被下单使用过,比如订单id状态已经是等待接驾状态,又被用来下单,接口返回无效的订单id
  2. 检查获取订单id用的client_id和发起叫车时client_id是不是完全一样,比如获取订单id用的client_id:didiabcde1,发起叫车时client_id:didiabcde2,client_id不一致,接口返回无效的订单id

20004(出发时间太近了,应该叫实时单)

  1. 检查预约单出发时间距当前时间是否小于30分钟
  2. 比如当前时间:2019/7/31 15:31:50,预约单出发时间:2019/7/31 15:51:50,相比小于30分钟,接口返回出发时间太近了,应该叫实时单

20007(叫车失败xxxxx)

xxxxx有以下可能:

  1. 20001|参数错误 [20001]
    1. 按照提示信息检查一下传递的参数的格式是否满足提示的要求
    2. 检查计价模式pricing_mode是不传了1,这个暂时不支持可能会报参数错误
    3. 确认下单出发或者目的地经纬度传的是正确的(有没有传反,坐标正常不在海里面,不是距离超级远比如说北京到新疆)
  2. 企业余额不足
    1. 如果是测试:(1) 先结束未结束的订单:进行中和未接单的订单会占用余额,余额占用过多时,会导致无法下单; (2) 测试过程中尽量使用小额的订单进行测试; (3) 找商务同学给测试帐号充值
    2. 如果是正式:请先进行充值在进行下单,可以登录滴滴企业版官网进行充值
  3. 20011|企业订单创建失败 [20011]
    1. 确认订单id是否已经被下单使用过,比如订单id状态已经是取消状态或者失败状态,又被用来下单,接口返回企业订单创建失败
  4. 32007|调用专车异常 [32007]
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试

20008(抱歉,只能叫3天以内的订单)

  1. 检查预约出发时间是否在3天之内(今天,明天,后天)
  2. 比如当前时间:2019/7/31 15:31:50,预约出发时间:2019/8/03 15:51:50,预约出发时间不在(2019/7/31(今天),(2019/8/01)明天,(2019/8/02)后天)这3天之内,接口返回抱歉,只能叫3天以内的订单

20028(预估价变化,请重新获取预估价再下单)

  1. 下单请求中的dynamic_md5参数已经过期,通过重新获取预估价更新dynamic_md5

20050(xxxxx)

xxxxxx有以下可能:

  1. 抱歉,该地区未开通服务
    1. 经纬度传的格式是否正确,经纬度是不传反?
  2. (32010)或者(32015)
    1. 未开通专车或者快车,确认这个城市是否开通了这个车型,见文档获取城市列表
  3. 城市管控或者夜间行驶限制
    1. 比如会出现:为了避免夜间疲劳驾驶,保障司乘安全,夜间时段(22:00-7:00)不再服务超过400KM订单,请您选择公共交通或出租车出行,感谢您的理解与支持!

20051(因您违反平台规定,平台暂停为您提供叫车服务至xxxxx)

  1. 可以通过接口返回结果,查看解封的时间,其中返回字段err_desc_h5中的url可以查看封禁的原因

20052(乘客未授权录音录像)

  1. 必须先进行录音录像授权才能下单(可以通过接口返回字段err_desc_h5中的url进行录音录像的授权)

31004(预估价格失败(xxxx))

xxxx有以下可能:

  1. 参数错误 [20001] (20001)
    1. 经纬度传的格式是否正确,经纬度是不传反?
    2. 预约时间是否传了过去的时间,请严格参照接口文档预估价格
  2. 渠道号码返回失败
    1. 企业不存在,可以登录滴滴企业版官网查看公司的状态
  3. 计价未配置 [24002] (24002)
    1. 确认这个城市是否开通了开通计价,见文档获取城市计价规则
    2. 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆)
  4. 企业获取计价规则失败 [24004] (24004)
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试
  5. 该城市区域该车型未开通 [24006] (24006)
    1. 确认这个城市是否开通了这个车型,见文档获取城市列表
    2. 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆)
    3. 确认计价类型(rule)与用车类型(require_level)是否对应,见文档订单状态定义,比如计价类型(rule)传201,用车类型(require_level)传600,接口返回预估价格失败
  6. 定位似乎有些问题,请检查您的定位功能~ [1007] (1007)
    1. 经纬度传的格式是否正确,经纬度是不传反?
  7. 系统错误,请稍后再试 560001 [1026] (1026)
    1. 确认经纬度传的是否对的(经纬度是不传反,坐标正常是不在海里面,是不是距离超级远比如说北京到新疆),一般是出发地目的地太远导致预估失败

35001(获取航班信息失败)

  1. 检查航班号(flight_num)与航班出发日期(flight_date)是否传的正确,可以调航班信息查询接口验证

35002(航班或机场信息不匹配)

  1. 检查airport_id和flight_num是否对应,可以通过flight_num参数,调用航班信息查询接口获取airport_id和flight_num对应列表

订单详情

36002(该订单权限受限)

  1. 确认这个订单是不是真的发单了。如果是用车API,是不是只生成了订单id,没有调用下单接口;如果是webapp,是不是只生成了发单ticket,没有实际完成发单操作
  2. 确认请求订单详情的client_id和发单的client_id用的是不是同一个
  3. 如果是用车API:确认发单时用的access_token的手机号和获取订单详情时用的access_token的手机号是不是完全一样
  4. 如果是webapp:确认webapp生成ticket时的master_phone和获取订单详情时用的access_token的手机号是不是完全一样

36004(获取订单失败(xxxxxx))

xxxxxx有以下可能:

  1. E36005
    1. 订单不存在,确认这个订单是不是真的发单了,如果是用车API,是不是只生成了订单id,没有调用下单接口
    2. 如果是webapp,是不是只生成了发单ticket,没有实际完成发单操作

取消订单

20010(无效订单)

  1. 确认这个订单是不是真的发单了,是不是只生成了订单id,没有调用下单接口
  2. 确认发单时用的access_token的手机号和取消订单时用的access_token的手机号是不是完全一样
  3. 确认订单状态是否在行程中(比如订单状态已经是超时关闭,取消订单会返回无效订单),可以通过订单详情接口查看订单状态

20014(订单当前状态不能取消,稍后重试)

  1. 原因可能是调用取消接口的时候,刚好司机端发出了拉单请求(司机正在抢单中不能取消)

20011(订单取消失败(xxxxxx))

xxxxxx有以下可能:

  1. 订单不存在 [20004]
    1. 请求参数中订单id是否下单使用过(有可能这个订单不是真的发单了,是不是只生成了订单id,没有调用下单接口)
    2. 确认发单时用的access_token的手机号和取消订单时用的access_token的手机号是不是完全一样
  2. 请求订单异常 [20005]
    1. 请求参数中订单id订单状态可能为(客服关闭、未能完成服务、支付完成)之一,不满足取消订单的条件,比如订单状态已经是客服关闭(610),接口返回请求订单异常
  3. 无效订单 [20009]
    1. 请求参数中订单id的订单状态可能不在(等待接驾(400)、司机已到达(410)、行程中(500))之一,比如订单状态已经是超时关闭,接口返回无效订单
  4. 订单已取消 [20010]
    1. 请求参数中订单id已经是取消状态,不满足取消订单的条件
  5. 行程已结束订单不能取消 [35007]
    1. 请求参数中订单id已经是待支付状态,不满足取消订单的条件

注意:取消订单的条件:订单状态必须在(等待接驾(400)、司机已到达(410)、行程中(500))之一,可以通过订单详情接口查看订单状态

费用支付确认

20010(无效订单)

  1. 确认这个订单是不是真的发单了。如果是用车API,是不是只生成了订单id,没有调用下单接口;如果是webapp,是不是只生成了发单ticket,没有实际完成发单操作
  2. 确认发单时用的client_id和费用支付确认时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,费用支付确认时client_id:didiabcde2,client_id不一致,接口返回无效订单

20026(该订单确认通知失败)

  1. 通常是调用下游接口超时或者网络异常,可以稍后重试

20027(订单还未处于结束状态,不要提前确认,请稍后再试)

  1. 确认请求参数中订单id的订单状态是不是满足费用支付确认的条件
  2. 比如请求参数中订单id订单状态已经是取消订单无需支付(610),调用费用支付确认接口,接口返回订单还未处于结束状态,不要提前确认,请稍后再试

注意:费用支付确认的条件:订单状态必须在(正常订单待支付(6001)、取消订单待支付(6002))之一,可以通过订单详情接口查看订单状态

37004(处理失败(xxxxxx))

xxxxxx有以下可能:

  1. 请求订单不存在 [20004]
    1. 请求参数中订单id是否下单使用过(有可能这个订单不是真的发单了,是不是只生成了订单id,没有调用下单接口)
  2. 支付繁忙,请您稍后再试 [60121]
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试

37005(请求超时,请重试)

  1. 通常是调用下游接口超时或者网络异常,可以稍后重试

36002(订单权限受限)

  1. 确认这个订单是否是通过openapi或webapp下单的,目前该接口只支持openapi或webapp费用支付确认
  2. 确认发单时用的access_token的手机号和费用支付确认时用的access_token的手机号是不是完全一样
  3. 比如确认发单时用的access_token的手机号:11001112222,费用支付确认时用的access_token的手机号:11001112223,手机号不一致,接口返回该订单权限受限

安全接口常见错误码,错误信息及解决方案

乘客护航

41010(获取安全功能H5页URL(xxxxxx))

xxxxxx有以下可能:

  1. 用户注册失败
    1. 正式应用:检查手机号是否合法(目前只支持中国大陆的),比如11111000011是不合法的
    2. 测试应用:需要使用系统分配的测试手机号,可以登录查看测试手机号
  2. 获取token失败
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试

行程分享

41001(获取分享行程(xxxxxx))

xxxxxx有以下可能:

  1. 用户注册失败
    1. 正式应用:检查手机号是否合法(目前只支持中国大陆的),比如11111000011是不合法的
    2. 测试应用:需要用分配的测试手机号,可以登录查看测试手机号
  2. 获取token失败
    1. 通常是调用下游接口超时或者网络异常,可以稍后重试
  3. 订单不存在 [20004]
    1. 请求参数中订单id是否下单使用过(有可能这个订单不是真的发单了,是不是只生成了订单id,没有调用下单接口)
    2. 确认发单时用的client_id和获取分享行程时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,获取分享行程时client_id:didiabcde2,client_id不一致,接口返回订单不存在 [20004]
  4. 该订单不满足行程分享条件:无司机接单
    1. 通常是不满足行程分享条件:无司机接单,可以通过订单详情接口查看订单状态
  5. 该行程已结束
    1. 行程分享的时效是48小时,比如下单时间:2019/8/03 15:51:50,获取分享行程的时间:2019/8/05 15:52:50,接口返回该行程已结束
  6. 该行程已于48小时前结束
    1. 行程分享的时效是48小时,比如完单时间:2019/8/03 15:51:50,获取分享行程的时间:2019/8/05 15:52:50,接口返回该行程已于48小时前结束

注意:获取分享行程的条件:(1)订单必须要有司机接单,可以通过订单详情接口查看订单状态;(2) 行程分享的时效是48小时

紧急联系人设置状态

41008(获取是否设置紧急联系人(xxxxxx))

xxxxxx有以下可能:

  1. 用户注册失败
    1. 正式应用:检查手机号是否合法(目前只支持中国大陆的),比如11111000011是不合法的
    2. 测试应用:需要使用系统分配的测试手机号,可以登录查看测试手机号

投诉接口常见错误码,错误信息及解决方案

投诉接口通用错误

38003(该订单权限受限)

  1. 确认这个订单是不是真的发单了,是不是只生成了订单id,没有调用下单接口
  2. 确认发单时用的client_id和投诉时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,投诉时client_id:didiabcde2,client_id不一致,接口返回该订单权限受限
  3. 确认发单时用的access_token的手机号和费用支付确认时用的access_token的手机号是不是完全一样
  4. 比如确认发单时用的access_token的手机号:11001112222,费用支付确认时用的access_token的手机号:11001112223,手机号不一致,接口返回该订单权限受限

司机评分常见错误码,错误信息及解决方案

司机评分

31001(请求参数错误(xxxxx))

  1. 检查传参是否符合接口文档中的参数说明,接口文档:司机评分
  2. 检查接口文档是否要求POST请求而实际请求用的是GET请求

36002(此订单权限受限)

  1. 确认这个订单是不是真的发单了,是不是只生成了订单id,没有调用下单接口
  2. 确认发单时用的client_id和投诉时client_id是不是完全一样,比如确认发单时用的client_id:didiabcde1,投诉时client_id:didiabcde2,client_id不一致,接口返回该订单权限受限
  3. 确认发单时用的access_token的手机号和费用支付确认时用的access_token的手机号是不是完全一样
  4. 比如确认发单时用的access_token的手机号:11001112222,费用支付确认时用的access_token的手机号:11001112223,手机号不一致,接口返回该订单权限受限

results matching ""

    No results matching ""