使用 PHP SDK 快速开始
更新时间:2023.08.17在本教程中,你将简要了解微信支付的 PHP SDK。在学习过程中,你将
- 掌握如何安装 PHP SDK
- 了解请求微信支付需要哪些密钥和证书
- 了解如何使用 PHP SDK 请求微信支付
# 环境要求
- Guzzle 7.0,PHP >= 7.2.5。
- Guzzle 6.5,PHP >= 7.1.2
我们推荐使用目前处于 Active Support (opens new window) 阶段的 PHP 8 和 Guzzle 7。
# 安装
使用 Composer (opens new window) 安装最新版本的 SDK:
1composer require wechatpay/wechatpay
你可以在 GitHub 找到 PHP SDK (opens new window) 的源代码、使用说明和最新版本信息。
# 必需的证书和密钥
运行 SDK 必需以下的证书和密钥:
- 商户 API 私钥 (opens new window)
- 商户 API 证书 (opens new window)的证书序列号
- APIv3 密钥 (opens new window)
- 微信支付平台证书 (opens new window)
由于 PHP-FPM (opens new window) 进程模型限制,PHP SDK 不支持自动获取和更新微信支付平台证书。 你可以使用 SDK 自带的工具 (opens new window)下载微信支付平台证书。
1composer exec CertificateDownloader.php -- -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath}
# 发起请求
以 Native 支付为例,向微信支付发起你的第一个请求。
1<?php23require_once('vendor/autoload.php');45use WeChatPay\Builder;6use WeChatPay\Crypto\Rsa;7use WeChatPay\Util\PemUtil;89// 设置参数1011// 商户号12$merchantId = '190000****';1314// 从本地文件中加载「商户API私钥」,「商户API私钥」会用来生成请求的签名15$merchantPrivateKeyFilePath = 'file:///path/to/merchant/apiclient_key.pem';16$merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);1718// 「商户API证书」的「证书序列号」19$merchantCertificateSerial = '3775B6A45ACD588826D15E583A95F5DD********';2021// 从本地文件中加载「微信支付平台证书」(可使用证书下载工具得到),用来验证微信支付应答的签名22$platformCertificateFilePath = 'file:///path/to/wechatpay/cert.pem';23$platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);2425// 从「微信支付平台证书」中获取「证书序列号」26$platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath);2728// 构造一个 APIv3 客户端实例29$instance = Builder::factory([30 'mchid' => $merchantId,31 'serial' => $merchantCertificateSerial,32 'privateKey' => $merchantPrivateKeyInstance,33 'certs' => [34 $platformCertificateSerial => $platformPublicKeyInstance,35 ],36]);3738// 以 Native 支付为例,发送请求39$resp = $instance40 ->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;
# 联系 SDK 团队获取帮助
- 在开发者社区 (opens new window)提交问题
- 在 GitHub 上提交 issue (opens new window)
- 联系我们的在线技术支持 (opens new window)
# 接下来阅读
通过这个快速介绍,你已经安装了 PHP SDK 并学习了一些基础知识。接下来,你可以阅读具体的产品文档,学习如何接入微信支付。
文档是否有帮助