alipaysignature.rsacheckv1 返回false

最近在做支付宝支付对接遇到的问题,就是在支付宝交易完成异步通知的时候调用SDK验证签名无法验证通过,

两个问题需要注意,

1就是支付宝的公钥以及应用的公钥要搞清楚;

这个调用支付宝的公钥;

2就是如果确认无误,就是下面这行代码的问题,注释掉即可

然后就可以验证通过了,接下来就是实现你自己的业务逻辑了。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的支部宝支付成功后返回原来页面的Java代码示例: ```java public class ZhichubaoCallbackServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 获取支付宝POST过来反馈信息 Map<String, String> params = new HashMap<String, String>(); Map requestParams = request.getParameterMap(); for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } // 乱码解决,这段代码在出现乱码时使用。 // valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); params.put(name, valueStr); } // 2. 切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。 // boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type) if (AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, AlipayConfig.SIGN_TYPE)) { // 3. 验证成功后进行业务处理 String outTradeNo = request.getParameter("out_trade_no"); // 商户订单号 String tradeNo = request.getParameter("trade_no"); // 支付宝交易号 String tradeStatus = request.getParameter("trade_status"); // 交易状态 if (tradeStatus.equals("TRADE_FINISHED") || tradeStatus.equals("TRADE_SUCCESS")) { // 处理支付成功逻辑 // ... } String returnUrl = request.getParameter("return_url"); // 支付成功后的返回页面 response.sendRedirect(returnUrl); // 重定向回原来的页面 } else { response.getWriter().println("fail"); } } } ``` 该代码中,我们从request中获取支付宝POST过来的反馈信息,然后使用支付宝提供的工具类对反馈信息进行验签,验证成功后进行业务处理,处理完毕后获取支付成功后的返回页面,并使用response的sendRedirect方法重定向回该页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值