接口通用问题解决方案

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

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

400(非法的client_id)

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

400(非法的client_secret)

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

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

  1. 手机号真的没传
  2. 手机号传了,但是接口要求POST请求而用GET请求
  3. 手机号传了,请求方式没问题,检查content-type是否为为application/json

402(手机号不合法)

  1. 检查手机号格式,如不要加“+86”这种前缀的国家码

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

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

403(无权访问该接口)

  1. 检查client_id对应的scope,scope会在获取token接口中返回,如果没有对应的权限,请发邮件找商务开通
  2. 如果是管理API,则托管关系中的scope也要有对应的权限,需发邮件找商务开通

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

  1. 该手机号是否在该企业中
  2. 该手机对应的员工是否被删除

408(未传timestamp或者timestamp格式错误)

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

410(client_id不一致)

  1. 通常情况下是获取access_token用的client_id和当前调用接口用的client_id不一致导致

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

10003(参数错误xxx)

  1. 检查传参是否符合接口文档中的参数说明,如接口要求POST请求而用GET请求
  2. 如果请求接口传了参数,但是报该参数未传,需要检查请求方式

12001(参数错误(未正确传输company_id))

  1. 请检查是否传递company_id
  2. 如果传递了,请检查请求方式是否和API文档一致(GET和POST不要混用)
  3. 如果确认上述均无问题,请直接使用curl发送请求,如果curl请求没有提示这个错误,请认真检查代码是否哪里把company_id过滤了

12002(该托管关系不存在,无权操作)

  1. 传参中的company_id和client_id对应的company_id没有从属关系,请将自己的公司授权给第三方费控公司(传参中的company_id对应的公司)

19999(签名验证失败)

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

results matching ""

    No results matching ""