使用场景: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传参检测通过
你好,我想请问下,开通付款到零钱权限中的 ip 地址,你是填写的服务器的 ip 地址吗?我一直提示 ip 地址不对
解决了,我这里出现问题的原因是:没有把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
至此,我的问题就解决了,可以正常接收到企业付款的回调数据了
你是第一次做这个功能吗,这个证书,你是要在请求的时候,携带证书一并发送给微信那边进行验证的,这不是普通的https请求