收藏
回答

平台证书解密报错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解密出来就是平台证书公钥吗,是用来加密敏感信息的吗,麻烦解答一下谢谢.

回答关注问题邀请回答
收藏

5 个回答

  • 廖强
    廖强
    2020-03-27

    不知道你说的是哪个接口,假设是https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/这个接口,你检查一下:

    1:敏感信息加密时使用的证书要用从https://api.mch.weixin.qq.com/v3/certificates这个接口获取的证书

    2:Wechatpay-Serial填的是从https://api.mch.weixin.qq.com/v3/certificates这个接口获取的证书序列号

    3:敏感信息加密的算法是否有误

    2020-03-27
    有用 1
    回复
  • 似懂?非懂!
    似懂?非懂!
    2023-09-07

    文档写的不清不楚,一直以为是需要调平台证书去获取公钥加密,实际上是调取平台获取平台证书的证书序列号,获取证书序列号是为了调有加密数据的接口时请求头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());
    
    
    2023-09-07
    有用
    回复
  • Null
    Null
    2020-03-27

    用官方的获取证书接口返回的数据,然后官方的php类解密,返回false,怎么解

    2020-03-27
    有用
    回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-03-25

    请按照以下几点进行了解:

    1、加密敏感数据用的公钥信息不正确

    2、使用的平台证书不正确,可以查看对应的证书序列号与“平台证书接口”返回的是否一致

    3、加密方式不正确,详情可以参考https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/min-gan-xin-xi-jia-mi

    4、公钥信息获取请使用对应语种的函数进行,详情可以参考https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/min-gan-xin-xi-jia-mi


    2020-03-25
    有用
    回复 3
    • 我是胆小鬼
      我是胆小鬼
      2020-03-25
      公钥信息是从哪里获取的.是apiclient_cert.pem文件吗?
      2020-03-25
      回复
    • 我是胆小鬼
      我是胆小鬼
      2020-03-25
      我的商户序列号与平台证书返回的序列号是不同的.
      2020-03-25
      回复
    • 我是胆小鬼
      我是胆小鬼
      2020-03-25
      我解密的是 获取平台证书列表 返回的ciphertext
      2020-03-25
      回复
  • 我是胆小鬼
    我是胆小鬼
    2020-03-25

    平台证书公钥是什么呀,是apiclient_cert.pem这个文件吗,我用它加密的敏感信息返回“平台私钥解密失败”,头Wechatpay-Serial也填了,获取的平台证书序列号,卡了好久了,麻烦解答一下谢谢.

    2020-03-25
    有用
    回复
登录 后发表内容
问题标签