银联支付成功后,回调验签失败之 X509Certificate x509Cert = CertUtil.genCertificateByStr(strCert); x509Cert 为null

本文解决了一个在Spring框架中出现的银联退款签名验证失败的问题,原因是框架修改了请求参数中的证书格式,导致X509Certificate实例化失败。通过对参数进行正确格式化处理后,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在网上看了看,有一个朋友出现的问题和我的一致, 如果你使用的是Struts2框架,建议参考他的内容容 https://lizhongzhen11.github.io/2017/11/14/银联退款问题/        如果你也使用的是spring 框架,那么请考虑下是不是自己的框架里面把request里的内容修改了。我这个框架就是把里面请求的参数内容修改了,原先的signPubKeyCert数据本来是   -----BEGIN CERTIFICATE-----   但是经过我的框架后就变成了  -BEGIN CERTIFICATE-  因此无论如何调用  X509Certificate x509Cert = CertUtil.genCertificateByStr(strCert);   x509Cert 始终为null,自己最后将修改部分的内容修改回去之后,这一步的验证就通过了。

signPubKeyCertValue   是signPubKeyCert对应的请求的值。

String  signPubKeyCertValue=request.getParamater("signPubKeyCert");

signPubKeyCertValue=signPubKeyCertValue.replace("-BEGIN CERTIFICATE-", "-----BEGIN CERTIFICATE-----").replace("-END CERTIFICATE-", "-----END CERTIFICATE-----"));

希望能帮到遇到困难的你!

制作:mynameisyaxuan

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值