接口常见问题解决方案

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

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

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. 检查传参是否符合接口文档中的参数说明

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对应的公司)

12003(该企业已删除,无权操作)

19999(签名验证失败)

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

用户管理接口常见错误码,错误信息及解决方案

员工接口通用错误

10003(参数错误(data不能为空))

  1. 请检查是否传递了data这个参数,注意参数名称前后、中间不要加空格
  2. 请检查data在json序列化后能否正常解析

10003(参数错误(xxxxxx))

  1. 按照提示信息检查一下传递的参数的格式是否满足提示的要求

员工添加

50202(添加员工失败(xxxxxx))

xxxxxx有以下可能:

  1. 请求间隔不能小于150毫秒,请稍后重试
  2. 公司已停
  3. 管理员已注销
  4. 只有超管和初始超管才能添加员工
  5. 一次只能添加一名员工
    http://api.es.xiaojukeji.com/river/Member/single 该接口每次只能添加一个员工
  6. 员工已存在
    员工手机号、邮箱、员工工号必须唯一
  7. 员工处于待确认状态,请联系员工自行确认加入
    员工已在A企业,现在B企业去添加该员工,此时B企业添加失败,员工进入B企业的待确认列表中,会在企业APP上的卡片提示员工,是否加入B企业
  8. 员工存在于其他公司,已经通知该员工加入企业,请联系员工自行确认加入
    与7的区别是,提示这个错误时,会给员工发送短信提示是否加入新企业
  9. 员工已存在于其他企业,请联系员工退出企业
  10. 部门不存在
    调用成本中心查询接口,参数中的type=1获取所有部门的信息,返回值中的id(即部门id)就是员工添加接口的budget_center_id
  11. 项目不存在
    调用成本中心查询接口,参数中的type=2获取所有部门的信息,返回值中的id(即部门id)就是员工添加接口的project_ids
  12. 制度不存在
    调用用车制度列表接口,返回值中的regulation_id就是员工添加接口的regulation_id

50242(添加员工失败(您最多可以导入X员工,如需导入更多员工,请购买更多的许可))

  1. 这是由于贵企业购买了按许可数的高级费控版本,一旦已导入的员工数量达到了X,则不能再添加,除非购买更多的许可数(操作方式:登录滴滴企业ES后台——>企业设置——>增值服务)

员工删除

员工删除失败的可能原因

  1. 删除的员工id不存在
  2. 初始管理员不能删除(如果想要删除初始管理员,需要先将管理员权限转让给其他人,然后再删除)
  3. 删除的员工有待报销单
  4. 删除的员工已离职

员工编辑

50221(member_id错误(该员工信息不存在))

  1. company_id没有对应的管理员,检查company_id填写正确,或者是否已被解散
  2. 需要编辑的员工为管理员

50222(员工与指定的企业不匹配)

  1. 员工是否已被删除
  2. 员工id和company_id是否在同一企业

50223(员工信息更新失败(xxxxx))

原因可能如下:

  1. 员工不存在(仔细检查member_id是否填写正确)
  2. 只有正常状态下的员工才可以被编辑(仔细检查员工是否已被删除)
  3. 手机号已存在(检查更新信息中的手机号是否其他员工手机号)
  4. 更新的离职时间需晚于今天

50224(员工存在未支付的订单,请先联系其支付)

  1. 如果员工手机号修改了,会先判断之前的手机号是否有未支付的订单

审批单接口相关错误码,错误信息及相应的解决方案

特别注意

  1. 审批单相关接口中所有城市id均传地级市id(就算是县级市名称,对应也要传地级市城市id),否则无法为该城市创建用车规则
  2. 创建审批单或者修改审批单,计算签名时请在travel_detail或business_trip_detailjson序列化前将中文字进行Unicode编码
  3. 调用创建审批单或者修改审批单,travel_detail或business_trip_detail的数据类型时object,不是json字符串
  4. 昆山市、义乌市等特殊的城市是县级市,不是地级市,如果不确定是否为地级市,请查看县市级查询
  5. 城市查询接口返回的地级市一般是3位数字,县级市一般是5位数字,所以传参时如果传了5位数字的城市id,请一定要注意检查是否正确

审批单创建

10003(参数错误(xxxxxx))

xxxxxx有以下几种可能:

  1. travel_detail格式错误
    1. travel_detail必须为数组
    2. 每一个开始日期必须小于等于结束日期
  2. business_trip_detail格式错误
    1. 开始时间、结束时间不能为空
    2. 开始时间必须小于等于结束时间
  3. 往返用车时, trip_times必须是偶数
    1. 当approval_type=2且business_trip_detail的is_return=1时,trip_times必须为偶数(因为这是往返行程)

50503(请求失败(xxxxxx))

xxxxxx有以下几种可能:

  1. 员工不在该企业中,请添加后重试
    1. 传参中的phone和company_id没有一一对应
  2. 用户未配置任何审批用车制度
    1. 传参中的regulation_id必须是差旅或者审批用车(按日期、次数的商务审批)的id
    2. 通过用车制度列表接口查询企业所有用车制度(返回值scene_type=1或2的才能用于创建审批单)
    3. 从第2步返回的结果中找到创建审批单传的regulation_id那条记录,然后去查看该员工是否绑定了该审批id:登录es后台 ——> 员工 ——> (根据姓名、工号、手机号)找到这个员工 ——> 编辑 ——> 管理用车制度
  3. 用户身上未配置用车制度
    1. 用户配置了差旅或者审批制度,但是创建审批单传入的regulation_id不在该员工身上

50506(外部审批单号已被使用(对应的滴滴审批单ID为xxxxxx),请更换外部审批单号或调用审批单修改API)

  1. 滴滴要求每次创建审批单的out_approval_id唯一,报该错时表明你此次传参中的out_approval_id与之前创建审批单(返回的approval_id为xxxxxx)的out_approval_id是一样的

审批单修改

注意:目前只支持修改差旅申请,修改内容包括:结束时间、差旅行程

50503(请求失败(审批单更新失败))

  1. 审批单id不在company_id这个公司中(请检查approval_id填写是否正确)
  2. 修改的某个行程正在使用中
  3. 修改的某个行程已经被使用过

发票接口相关错误码,错误信息及相应的解决方案

特别注意

  1. invoice_type=1时,receiver、receiver_phone、receiver_address、invoice_title、tax_registration_number必须填写
  2. invoice_type=2时,receiver、receiver_phone、receiver_address、receiver_email、invoice_qid必须填写
  3. invoice_type=3时,receiver_email、invoice_title、tax_registration_number必须填写
  4. 专票的资质id(invoice_qid)对应专票资质列表接口返回值中的id
  5. 普票的发票抬头(invoice_title)、税号(tax_registration_number)从普票抬头列表接口获取
  6. 发生部分退款订单可以开票,但是开票金额为实际支付的金额全额退款的订单无法开票
  7. 不支持出租车和代驾订单开票

按行程,金额开票

50103(该流水号已经开过票了)

  1. invoice_no不能重复,本次传参中的invoice_no已经被使用过,请换一个

51100,51102(不满足开票要求(原因可能是:xxx))

xxx可能是:

  1. 存在金额不符订单
    1. 该订单开票金额确实与订单支付金额不符
    2. 该订单发生了退款,但是开票时的开票金额没有减去退款金额(检查方法:调用订单详情接口重新拉一下订单,检查是否发生退款)
  2. 存在实际可开票金额为零的订单
    1. 订单可能发生全部退款(检查方法:调用订单详情接口重新拉一下订单,检查支付金额与退款金额是否相等,如果相等则表示全额退款)
  3. 存在出租车或代驾订单
    1. 不支持出租车和代驾订单开票
  4. 存在非支付订单
    1. 括号后面列举的订单还没有支付,需要支付后才能开票
  5. 存在已开票订单
    1. 括号后面列举的订单已经开过票,不能再开

results matching ""

    No results matching ""