首页 > 其他分享 >电脑网站支付报错“验签出错,建议检查签名字符串或私钥与应用公钥是否匹配”问题解决记录

电脑网站支付报错“验签出错,建议检查签名字符串或私钥与应用公钥是否匹配”问题解决记录

时间:2023-11-17 18:00:41浏览次数:30  
标签:公钥 私钥 Content 报错 匹配 Config

在对接支付宝电脑网站支付的时候,遇到如下报错:

“错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配”。

但展示的报错内容 跟实际原因有所出入(在下文中有解答),这里记录下问题的解决排查过程。


问题复现

在对接电脑网站支付时,生成 form 表单传到前端去生成支付页面,发现支付页面直接报错"验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配",如下图:

电脑网站支付报错“验签出错,建议检查签名字符串或私钥与应用公钥是否匹配”问题解决记录_报错排查


这里我参考使用了官方的代码示例 [alipay.trade.page.pay(统一收单下单并支付页面接口)],如下所示:

/** 引用初始化方法,Config配置链接:https://opensupport.alipay.com/support/FAQ/08d46c24-15a8-4f1c-85a0-68fdf587f813  **/   
AlipayClient alipayClient = new DefaultAlipayClient(Config.gatewayUrl, Config.app_id, Config.merchant_private_key, Config.format, Config.charset, Config.alipay_public_key, Config.sign_type);
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();

JSONObject Content = new JSONObject() ;
Content.put("out_trade_no", "Page202311150000123");
Content.put("subject", "手机支付");
Content.put("total_amount", "0.1");
Content.put("product_code", "FAST_INSTANT_TRADE_PAY");
request.setBizContent(Content.toString());
request.setReturnUrl(Config.return_url);
request.setNotifyUrl(Config.notify_url);

AlipayTradePagePayResponse response = alipayClient.pageExecute(request);//生成form表单

/** 获取接口调用结果 **/
 System.out.println(response.getBody());


问题排查过程记录

第一步:问题定位

先放一个官网提供的排查思路:

标签:公钥,私钥,Content,报错,匹配,Config
From: https://blog.51cto.com/u_16307458/8390432

相关文章