文档写的不清不楚,一直以为是需要调平台证书去获取公钥加密,实际上是调取平台获取平台证书的证书序列号,获取证书序列号是为了调有加密数据的接口时请求头Wechatpay-Serial要填平台证书的证书序列号 实际加密代码java 要引入微信提供的sdk wechatpay-apache-httpclient // 创建这个是为了敏感数据加密使用 PrivateKey merchantPrivateKey = PemUtil.loadPrivateKey("证书文件里面的私钥privateKey"); AutoUpdateCertificatesVerifier verifier = WxHttpClientUtils.getVerifier( "商户号mchId", "证书文件里证书的序列号", "apiV3key",merchantPrivateKey); String data = RsaCryptoUtil.encryptOAEP("需要加密的内容", verifier.getValidCertificate());
平台证书解密报错InvalidKeyException: Illegal key size用的这个解密示例https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/zheng-shu-he-hui-tiao-bao-wen-jie-mi,私钥用的是apiv3密钥,其他的字段都是平台证书返回的信息,请问下这是什么原因. 另外平台证书返回的ciphertext解密出来就是平台证书公钥吗,是用来加密敏感信息的吗,麻烦解答一下谢谢.
2023-09-07