invalid-signature (验签出错)
验签出错排查方案:
1、密钥不匹配;
建议使用支付宝开放平台助手检查密钥是否匹配。
RSA2密钥配详见如何检验RSA2密钥是否匹配。
公钥证书匹配详见如何检验密钥证书是否匹配。
2、编码格式不统一;
不统一导致中文乱码,从而导致请求报错 乱码参数示例 :"subject\":\"鎮ㄥソ\"
兼有有中文字段的参数先设置123等数据,避免中文乱码测试
3、请求参数中有空格,转义符,特殊字符(基本上会出现在biz_content中);
(1)建议只传必传参数测试;
(2)不可随意添加转义符;
(2)请求参数中不要进行空传值,或者是有空格;
4、回调地址携带?id=123这类自定义参数
notify_url或者return_url不能加?id=123这类自定义参数;
错误示例:https://您的域名/notify_url.php?id=123&test=abc。
5、sign_type设置是否正确
如出现sign值与sign_type参数指定的签名类型不一致该错误,建议排查签名方式和私钥的格式是否对应,如私钥是2048位的需使用rsa2签名方式,如私钥是1024位的需使用rsa签名方式。
2018年1月5日之后创建的应用与公钥证书签名,sign_type必须设置为RSA2
6、根据接口加签方式选择对应签名流程。
接口加签方式为“公钥证书”,就必须使用公钥证书方式进行签名;
接口加签方式为“公钥”,就必须使用普通公钥方式进行签名。
7、公钥证书签名调用方法错误
公钥证书的response请求方式是否正确:
(1)java语言response的execute()方法需改成certificateExecute();
(2)PHP语言response的execute()方法仍然使用execute();
(3).Net语言response的execute()方法需改成CertificateExecute();
注:公钥证书和普通公钥的pageExecute和sdkExecute调用方法一致,未改变。
8、检查sdk运行环境
注:.NET开发语言请注意在自查上述问题,没有发现问题,请更新官方最新sdk在重新测试;
官方最新.NET sdk下载地址:服务端 SDK 。
具体报错详见各报错处理流程
(1)验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,参见以上8个排查方案
(2)验签出错,应用未配置对应签名算法的公钥或者证书
(3)验签出错,sign值与sign_type参数指定的签名类型不一致
(4)验签出错,请确认charset参数放在了URL查询字符串中且各参数值使用charset参数指示的字符集编码
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。