
1<?php
2
3require_once('vendor/autoload.php');
4
5use WeChatPay\Builder;
6use WeChatPay\Crypto\Rsa;
7use WeChatPay\Util\PemUtil;
8
9
10
11
12$merchantId = '190000****';
13
14
15$merchantPrivateKeyFilePath = 'file:///path/to/merchant/apiclient_key.pem';
16$merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
17
18
19$merchantCertificateSerial = '3775B6A45ACD588826D15E583A95F5DD********';
20
21
22$platformCertificateFilePath = 'file:///path/to/wechatpay/cert.pem';
23$platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);
24
25
26$platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath);
27
28
29$instance = Builder::factory([
30 'mchid' => $merchantId,
31 'serial' => $merchantCertificateSerial,
32 'privateKey' => $merchantPrivateKeyInstance,
33 'certs' => [
34 $platformCertificateSerial => $platformPublicKeyInstance,
35 ],
36]);
37
38
39$resp = $instance
40 ->chain('v3/pay/transactions/native')
41 ->post(['json' => [
42 'mchid' => '1900006XXX',
43 'out_trade_no' => 'native12177525012014070332333',
44 'appid' => 'wxdace645e0bc2cXXX',
45 'description' => 'Image形象店-深圳腾大-QQ公仔',
46 'notify_url' => 'https://weixin.qq.com/',
47 'amount' => [
48 'total' => 1,
49 'currency' => 'CNY'
50 ],
51 ]]);
52echo $resp->getBody(), PHP_EOL;
53
54
55{
56 "code": "RESOURCE_NOT_EXISTS",
57 "message": "无可用的平台证书,请在商户平台-API安全申请使用微信支付公钥。"
58}
59