收藏
回答

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

  • 使用场景: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传参检测通过

最后一次编辑于  2019-12-16
回答关注问题邀请回答
收藏

3 个回答

  • 其
    2019-11-04

    你好,我想请问下,开通付款到零钱权限中的 ip 地址,你是填写的服务器的 ip 地址吗?我一直提示 ip 地址不对

    2019-11-04
    有用
    回复 1
    • Oliver
      Oliver
      2019-11-04
      我的是填写服务器ip地址
      2019-11-04
      回复
  • Oliver
    Oliver
    2019-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

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


    2019-10-09
    有用
    回复 1
    • 在我身边
      在我身边
      2020-06-15
      你这个jdk是本地jdk还是linux服务器的
      2020-06-15
      回复
  • 王浩Hanks🇨🇳
    王浩Hanks🇨🇳
    2019-09-30

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

    2019-09-30
    有用
    回复 4
    • Oliver
      Oliver
      2019-09-30
      有携带的
      2019-09-30
      回复
    • 在我身边
      在我身边
      2020-06-15回复Oliver
      你这个jdk是本地jdk还是linux服务器的
      2020-06-15
      回复
    • Oliver
      Oliver
      2020-06-17回复在我身边
      我这里是本地的,服务器的也按类似的步骤去操作就好了
      2020-06-17
      回复
    • 圆梦
      圆梦
      2022-04-07
      请问发送请求的时候如何携带证书
      2022-04-07
      回复
登录 后发表内容
问题标签