...签名字符串或私钥与应用公钥是否匹配”问题解决记录

发布网友 发布时间:2024-10-23 17:34

我来回答

1个回答

热心网友 时间:2分钟前


当尝试通过电脑网站进行支付宝支付时,遇到了"invalid-signature"错误,提示"验签出错,建议检查签名字符串或私钥与应用公钥是否匹配"。然而,问题的实际原因并不止于此,下面详述了问题的解决过程。


问题重现与定位

在生成支付表单并传递到前端时,支付页面即显示该错误。我参考了官方的alipay.trade.page.pay接口示例,但在实际操作中遇到了问题。


问题排查

首先,官方提供的排查思路是检查签名字符串和密钥的匹配。使用了诊断工具进行初步验证,结果指向私钥与应用公钥的匹配问题。接着,我进行了以下步骤:



确认公私钥配置无误,它们在应用中的匹配是正确的。
注意到项目编码格式为GBK,官方建议在包含中文字段时测试非中文字符,以确认编码问题。我将subject字段中的"手机支付"改为英文"SS",支付成功,确认是编码格式出了问题。
进一步检查发现,发送给支付宝接口的charset设置为UTF-8,而非项目默认的GBK。将charset改为GBK后,使用中文测试成功解决问题。

总结

总的来说,解决电脑网站支付的“验签出错”问题的关键在于确保签名字符串的正确生成,以及公钥和私钥的匹配,以及统一编码格式。希望这个过程对遇到同样问题的你有所帮助。


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com