1. 为什么会报这个错
每次请求的入参都需要sign,sign是根据签名算法生成的。
滴滴侧接收到请求后,将接入方入参中的sign去掉,并根据入参中的client_id找到对应的sign_key,然后使用相同的签名算法计算sign1。
如果入参中的sign和sign1不一致,就会提示该错误。
这样做的目的是防止接入方请求过程中,请求数据被篡改。
2. 排查步骤
step 1
使用签名验证工具验证代码中的生成的sign和工具中生成的sign是否一致
- 使用方法:将代码中的请求参数(除sign之外)依次填入到相应的位置,再加上sign_key这个字段,点击发送请求
- 名词解释:加密字符串——即用md5算法加密之前按顺序拼接好的字符串(这个字符串特别重要)
- 如果代码中的签名和工具生成的签名不一致,请仔细核查代码中加密前的字符串和工具中加密字符串的区别(必须一模一样)
step 2
如果一致,请再仔细检查调用接口时传给滴滴侧的请求参数是否和计算sign的参数一样
step 3
如果自查未发现问题,请在提交问题时把md5(str)中的str
以及返回值的request_id
提供给滴滴同学