String bankNum = "622208120*******";
PublicKey publicKey = CertificateTools.readWechatPayPublicKey(publicKeywechatpayPath);
bankNum = WxTools.rsaEncryptOAEP(bankNum,publicKey);
CertificateTools工具类包含readWechatPayPublicKey方法
public static PublicKey readWechatPayPublicKey(String publicKeywechatpayPath) throws Exception {
    
    String publicKeyPem =  FileUtil.readUtf8String(publicKeywechatpayPath);
   
    publicKeyPem = publicKeyPem.replace("-----BEGIN PUBLIC KEY-----", "")
            .replace("-----END PUBLIC KEY-----", "")
           .replaceAll("\\s", ""); 
    
    byte[] decodedBytes = Base64.decode(publicKeyPem);
    
    X509EncodedKeySpec keySpec = new X509EncodedKeySpec(decodedBytes);
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    return keyFactory.generatePublic(keySpec);
}
WxTools工具类包含rsaEncryptOAEP方法
public static String rsaEncryptOAEP(String message, PublicKey publicKey) throws IllegalBlockSizeException, IOException {
    try {
        
        Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding");
        
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        
        byte[] data = message.getBytes("utf-8");
        byte[] cipherdata = cipher.doFinal(data);
        
        String result = Base64.getEncoder().encodeToString(cipherdata);
        return result;
    } catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
        throw new RuntimeException("当前Java环境不支持RSA v1.5/OAEP", e);
    } catch (InvalidKeyException e) {
        throw new IllegalArgumentException("无效的公钥", e);
    } catch (IllegalBlockSizeException | BadPaddingException e) {
        throw new IllegalBlockSizeException("加密原串的长度不能超过214字节");
    }
}
并检查了如下情况,还是一直报{"code":"PARAM_ERROR","message":"平台私钥解密失败"}错误
1.加密使用的公钥信息不正确,应使用微信支付提供的公钥。
2.请求头中Wechatpay-Serial传入的公钥ID不正确或与当前商户号不匹配。
3.加密方式不符合要求,应使用RSAES-OAEP加密方式。
建议重新在商户平台获取公钥尝试下。另外也请提供下商户号,我们核对下是否公钥方案的
大概率还是用的公钥不对,要用微信支付公钥而不是商户 API 证书提取的公钥