支付宝的回调bug以及坑爹处


支付宝回调验签失败解决办法
2018年07月05日 09:47:21 DeBuggggggg 阅读数:3905 标签: 支付宝接口 更多
个人分类: 支付宝
按照支付宝的文档,调用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”);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值