收藏
回答

下载平台证书返回状态码异常,状态码为:500

新接入商户号,配置后提示错误《下载平台证书返回状态码异常,状态码为:500》,查了下之前有人反馈《新商户不再签发平台证书,需要使用商户公钥进行敏感信息加密和验签》,这个商户公钥是通过 https://pay.weixin.qq.com/doc/v3/merchant/4012153196 这里获取的吗,但是下载的文件pub_key.pem 在加载的时候提示错误,《无效的证书》, 《Unable to initialize, java.io.IOException: Too short》,加载的代码如下 使用的是 https://github.com/wechatpay-apiv3/wechatpay-apache-httpclient

得如何加载和使用这个公钥呢

X509Certificate publicKey = PemUtil.loadCertificate(new ClassPathResource(merchantId + "/pub_key.pem").getInputStream());
Verifier verifier = new CertificatesVerifier(Collections.singletonList(publicKey));

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

2 个回答

  • 支付社区运营
    支付社区运营
    11-01

    新接入的商户号使用公钥可参考:https://pay.weixin.qq.com/docs/merchant/products/platform-certificate/wxp-pub-key-guide.html

    https://github.com/wechatpay-apiv3/wechatpay-java

    11-01
    有用
    回复
  • Memory
    Memory
    10-25

    用https://search.maven.org/artifact/com.github.wechatpay-apiv3/wechatpay-java

    // 可以根据实际情况使用publicKeyFromPath或publicKey加载公钥
    Config config =
        new RSAPublicKeyConfig.Builder()
            .merchantId(merchantId)
            .privateKeyFromPath(privateKeyPath)
            .publicKeyFromPath(publicKeyPath)
            .publicKeyId(publicKeyId)
            .merchantSerialNumber(merchantSerialNumber)
            .apiV3Key(apiV3Key)
            .build();
    


    10-25
    有用 1
    回复 6
    • 神经蛙
      神经蛙
      10-25
      非常感谢。 用wechatpay-apache-httpclient是不是暂时不支持。我们现在系统都是基于这个开发的,已经跑一段时间了。现在要新家商户号,改成wechatpay-java的话系统改动比较大。
      10-25
      回复
    • Memory
      Memory
      10-25回复神经蛙
      也能支持,需要自己手动改了
      10-25
      回复
    • 神经蛙
      神经蛙
      10-25
      大神能提示下从哪里修改吗。 下面是我以前的加载方式
      10-25
      回复
    • 神经蛙
      神经蛙
      10-25
      这样加载会报错。 too short 证书无效
      10-25
      回复
    • Memory
      Memory
      10-25回复神经蛙
      你不能使用原来的方法了
      10-25
      回复
    查看更多(1)
登录 后发表内容