wechatpay-apiv3/wechatpay-php

array_key_exists($config['serial'], $config['certs']) , 这里是应该取非吗,我检查了所有配置

Closed this issue · 2 comments

不是取非,是你不恰当地把商户证书序列号,填在了平台证书序列号位置,SDK替你做了判断,你这种配置方法错了。

举个例子,都是钥匙,你家的钥匙和我家的钥匙,都是钥匙,但是你不能拿你家的来开我家的门,这就是非对称加解密技术的概要。

// 平台证书,可由下载器 `./bin/CertificateDownloader.php` 生成并假定保存为 `/path/to/wechatpay/cert.pem`
$platformCertificateFilePath = '/path/to/wechatpay/cert.pem';
// 加载平台证书
$platformCertificateInstance = PemUtil::loadCertificate($platformCertificateFilePath);
// 解析平台证书序列号
$platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateInstance);
  • certs[$serial_number => #resource] 为通过下载工具下载的平台证书key/value键值对,键为平台证书序列号,值为平台证书pem格式的纯字符串或者文件resource格式

另:你检查逻辑唯独缺了README注释说明,README要耐心读一下。

谢谢啦 我理解错了证书序列号