对接微信支付经常证书不匹配或者报错的情况,如何解决如下报错问题
The `certs(***)` contains the merchant's certificate serial number(**) which is not allowed here.
问题原因
主要原因是没有正确获取并配置【微信支付平台证书】
解决方法
获取对应的证书,并生成步骤如下:
PHP解决方法
1、安装 composer,并且 下载 CertificateDownloader.php
2、通过composer 生成所需证书即可。
详细命令如下:
#下载所需的内容 git clone https://github.com/wechatpay-apiv3/wechatpay-php.git #使用 composer 获取相关包 composer update #使用命令生成证书 composer exec CertificateDownloader.php -- -k 商户密钥APIV3 -m 商户ID -f apiclient_key.pem -s 证书序列号 -o 保存目录./
注意:如果有报错:cURL error 60: ,禁用 ssl 即可
JAVA解决方法
Certificate Downloader 是 Java 微信支付 APIv3 平台证书的命令行下载工具。该工具可从https://api.mch.weixin.qq.com/v3/certificates 接口获取商户可用证书,并使用 APIv3 密钥 和 AES_256_GCM 算法进行解密,并把解密后证书下载到指定位置。
该工具使用了 wechatpay-apache-httpclient (opens new window)、Maven (opens new window)、picocli (opens new window)、gson (opens new window)、lombok (opens new window)等库
前置条件
JRE 1.8+
快速开始
该工具已经通过 Maven 打包成 CertificateDownloader.jar,可在 release 中下载。
下载 jar 包后,如果你没有证书,第一次下载证书的命令如下,具体说明请看 常见问题-第一次下载证书:
java -jar CertificateDownloader.jar -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath}
如果你已有微信支付平台证书,完整命令如:文章来源:https://www.toymoban.com/diary/problem/783.html
java -jar CertificateDownloader.jar -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath} -c ${wechatpayCertificateFilePath}
其他解决方法
参考:技术说明书.md文章来源地址https://www.toymoban.com/diary/problem/783.html
到此这篇关于一分钟解决The `certs(***)` contains the merchants certificate serial number(***) which is not allowed here.的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!