1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 支付宝回调验签失败解决办法

支付宝回调验签失败解决办法

时间:2023-11-29 20:53:53

相关推荐

支付宝回调验签失败解决办法

按照支付宝的文档,调用rsaCheckV1的方法,他已经把方法封装的很透彻了,只需要将取到的参数Map(request.getParameterMap())集合放入即可。

但是验签一直不通过,查了很多资料,说公钥不对,应该使用支付宝公钥,不是应用公钥,修改之后,还是验签不通过。

boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, "UTF-8"); //调用SDK验证签名

问题出在支付宝有两个重载的方法。如果使用的是RSA加密的话,就调用下面这个方法。

boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, "UTF-8");

如果使用的是RSA2加密的话,就调用下面这个方法。

boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, "UTF-8",AlipayConfig.SIGN_TYPE); //调用SDK验证签名

因为我们生成订单的加密方法使用的是RSA2,但是后面一直使用的是不带参数类型(验RSA的签)的方法(params, AlipayConfig.ALIPAY_PUBLIC_KEY, "UTF-8")验签,所以一直报验签不通过。

总结来说:

是RSA2加密的话

AlipayConfig.SIGN_TYPE ="RSA2";

回调调用这个方法

boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, "UTF-8",AlipayConfig.SIGN_TYPE);

是RSA加密的话

AlipayConfig.SIGN_TYPE ="RSA";

回调调用这个方法

boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, "UTF-8");

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。