pay支付参数验签失败咋回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pay支付参数验签失败咋回事相关的知识,希望对你有一定的参考价值。

参考技术A 1、使用签名检查工具校验签名算法是否有误
2、查看参数是否对应正确(发现时间戳位数不对,后端返回的是毫秒,这里需要的是秒)
3、支付接口中的package对应的值为Sign=WXPay
4、支付接口的sign是包括appid的
5、支付接口,根据签名算法获取到sign后需要去除后两位通过这个解决了验证失败问题。
参考技术B 1、支付参数验签失败,一般是由于支付参数有误或者支付秘钥不正确导致的。

2、可以检查支付参数是否正确,并且确认支付秘钥是否正确。

3、如果以上两项都没有问题,可以尝试重新发起支付请求,或者联系支付平台客服进行处理。

Tomcat使用bouncycastle加密包进行SM2国密验签失败原因

问题描述:

最近做了一个项目需要和银行对接支付,用到了国密算法SM2。项目环境是SSM+Tomcat8+JDK8的,一开始测试的时候都是使用main方法调用测试的,全部通过测试了。最后变成接口的形式使用Tomcat跑的,使用postman调用接口一直提示验签失败,一开始以为是参数配置错了?后来找了一圈发现都没问题。代码肯定是没问题的,出的问题肯定是在环境上。于是就怀疑是不是tomcat或者jdk版本有问题,两个版本都换了之后,还是验签失败,于是没辙了。。。

原因分析与解决:

找了好久终于通过断点找到了原因!由于tomcat默认编码为GBK,会导致和银行那边的编码对应不上,造成加签过程中算法规则被改变了,只需要在getBytes()中指定编码为UTF-8即可解决,getBytes(“UTF-8”)。此前有试过搭建springboot去验签,结果是成功的,springboot自带的tomcat默认的编码就是UTF-8的了,所以使用tomcat的小伙伴,一定要注意这个坑。。。之前都没想到是编码问题,所以有问题还是要多断点。

以上是关于pay支付参数验签失败咋回事的主要内容,如果未能解决你的问题,请参考以下文章

支付宝支付回调方法RSA2验签失败处理方法

H5调用微信支付,IOS验签失败问题解决

微信App支付通知验签

支付宝PC扫码支付在Safari浏览器中验签失败(invalid-signature)

中小学教育缴费——验签失败

iOS微信支付提审“商户支付下单ID非法”与“验签失败”