收藏
回答

企业付款到零钱接口返回证书错误?

  • 使用场景:java jdk1.8

  • 调用api:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers

  • 已开通企业付款到零钱权限,绑定了小程序,尝试付款给小程序appid下的某个openid的用户。

  • 使用“微信支付商户平台证书工具”升级了商户平台的API证书,并将.p12文件双击成功导入到了windows系统(但是打开windows证书详情描述为:windows没有足够信息,不能验证该证书)


  • https请求的返回错误码是:{ "CA_ERROR","return_msg":"证书出错,请登录微信支付商户平台下载证书" }

  • 微信签名校验工具,xml传参检测通过

已经更换过一次证书了,还是不行,一年只能换3次!!!

最后一次编辑于  09-30  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • Oliver
    Oliver
    10-09

    解决了,我这里出现问题的原因是:没有把cer证书导入到JDK的证书仓库中。

    所以上述双击导入windows只是将证书导入到了计算机系统,而jdk请求ssl附带的证书是需要从它自己的KeyStore中找到才可以。

    但jdk所需的是cer后缀格式的文件,而我们下载的是p12文件,所以应该借助浏览器和keytool来实现导入。

    1、按官方教程双击p12文件,导入证书到系统中

    2、借助浏览器的Internet选项,导出cer文件

        
        

        

    3、将上面获得的cer文件导入到jdk的库中

        先不要把cer文件直接切到jdk/jre/lib/security里面,不然导入的时候会报非法引入

        *打开终端进入jdk/jre/lib/security然后执行:

            keytool -import -alias 证书别名 -keystore cacerts -file d:\mycer.cer -trustcacerts

            是/否:y

            jdk的秘钥口令默认是:changeit

    至此,我的问题就解决了,可以正常接收到企业付款的回调数据了


    10-09
    赞同
    回复
  • Hanks
    Hanks
    09-30

    你是第一次做这个功能吗,这个证书,你是要在请求的时候,携带证书一并发送给微信那边进行验证的,这不是普通的https请求

    09-30
    赞同
    回复 1
    • Oliver
      Oliver
      09-30
      有携带的
      09-30
      回复
问题标签