@@ -64,6 +64,10 @@ composer require wechatpay/wechatpay
64
64
65
65
+ ** 证书序列号** 。每个证书都有一个由 CA 颁发的唯一编号,即证书序列号。
66
66
67
+ + ** 微信支付平台公钥** ,是微信支付平台的公钥,用于应答及回调通知的数据签名,可在 [ 微信支付商户平台] ( https://pay.weixin.qq.com ) -> 账户中心 -> API安全 直接下载。
68
+
69
+ + ** 微信支付平台公钥ID** ,是微信支付平台公钥的唯一标识,可在 [ 微信支付商户平台] ( https://pay.weixin.qq.com ) -> 账户中心 -> API安全 直接查看。
70
+
67
71
### 示例程序:微信支付平台证书下载
68
72
69
73
``` php
@@ -73,7 +77,6 @@ require_once('vendor/autoload.php');
73
77
74
78
use WeChatPay\Builder;
75
79
use WeChatPay\Crypto\Rsa;
76
- use WeChatPay\Util\PemUtil;
77
80
78
81
// 设置参数
79
82
@@ -87,20 +90,21 @@ $merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TY
87
90
// 「商户API证书」的「证书序列号」
88
91
$merchantCertificateSerial = '3775B6A45ACD588826D15E583A95F5DD********';
89
92
90
- // 从本地文件中加载「微信支付平台证书」,用来验证微信支付应答的签名
91
- $platformCertificateFilePath = 'file:///path/to/wechatpay/cert .pem';
92
- $platformPublicKeyInstance = Rsa::from($platformCertificateFilePath , Rsa::KEY_TYPE_PUBLIC);
93
+ // 从本地文件中加载「微信支付平台证书」或者「微信支付平台公钥」 ,用来验证微信支付应答的签名
94
+ $platformCertificateOrPublicKeyFilePath = 'file:///path/to/wechatpay/certificate_or_publickey .pem';
95
+ $platformPublicKeyInstance = Rsa::from($platformCertificateOrPublicKeyFilePath , Rsa::KEY_TYPE_PUBLIC);
93
96
94
- // 从「微信支付平台证书」中获取「证书序列号」
95
- $platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath);
97
+ // 「微信支付平台证书」的「证书序列号」或者是「微信支付平台公钥ID」
98
+ // 「平台证书序列号」及/或「平台公钥ID」可以从 商户平台 -> 账户中心 -> API安全 直接查询到
99
+ $platformCertificateSerialOrPublicKeyId = '7132D72A03E93CDDF8C03BBD1F37EEDF********';
96
100
97
101
// 构造一个 APIv3 客户端实例
98
102
$instance = Builder::factory([
99
103
'mchid' => $merchantId,
100
104
'serial' => $merchantCertificateSerial,
101
105
'privateKey' => $merchantPrivateKeyInstance,
102
106
'certs' => [
103
- $platformCertificateSerial => $platformPublicKeyInstance,
107
+ $platformCertificateSerialOrPublicKeyId => $platformPublicKeyInstance,
104
108
],
105
109
]);
106
110
@@ -322,8 +326,8 @@ $resp = $instance
322
326
//...
323
327
],
324
328
'headers' => [
325
- // $platformCertificateSerial 见初始化章节
326
- 'Wechatpay-Serial' => $platformCertificateSerial ,
329
+ // $platformCertificateSerialOrPublicKeyId 见初始化章节
330
+ 'Wechatpay-Serial' => $platformCertificateSerialOrPublicKeyId ,
327
331
],
328
332
]);
329
333
```
0 commit comments