1
0
mirror of synced 2025-12-14 19:23:48 +08:00

🎨 #3728 【微信支付】修复V3支付公钥转账出现的签名验证失败问题

This commit is contained in:
Copilot
2025-11-15 16:52:49 +08:00
committed by GitHub
parent 9ab64167d5
commit 4d4294707b

View File

@@ -24,9 +24,17 @@ public class PublicCertificateVerifier implements Verifier{
@Override
public boolean verify(String serialNumber, byte[] message, String signature) {
// 如果序列号不包含"PUB_KEY_ID"且有证书验证器,先尝试证书验证
if (!serialNumber.contains("PUB_KEY_ID") && this.certificateVerifier != null) {
return this.certificateVerifier.verify(serialNumber, message, signature);
try {
if (this.certificateVerifier.verify(serialNumber, message, signature)) {
return true;
}
} catch (Exception e) {
// 证书验证失败,继续尝试公钥验证
}
}
// 使用公钥验证(兜底方案,适用于公钥转账等场景)
try {
Signature sign = Signature.getInstance("SHA256withRSA");
sign.initVerify(publicKey);