
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$response = $instance->chain('v3/pay/partner/transactions/native')->post([
40 'json' => [
41 'sp_appid' => 'wxdace645e0bc2cXXX',
42 'sp_mchid' => '1900006XXX',
43 'sub_mchid' => '1900007xxx',
44 'description' => 'Image形象店-深圳腾大-QQ公仔',
45 'out_trade_no' => 'native12177525012014070332333',
46 'amount' => [
47 'total' => 1,
48 'currency' => 'CNY',
49 ],
50 'notify_url' => 'https://weixin.qq.com/',
51 ],
52
53 'headers' => [
54 'Wechatpay-Serial' => 'PUB_KEY_ID_0114232134912410000000000000',
55 ],
56]);
57print_r(json_decode((string) $response->getBody(), true));
58
59
60{
61 "code": "RESOURCE_NOT_EXISTS",
62 "message": "无可用的平台证书,请在商户平台-API安全申请使用微信支付公钥。"
63}
64