微信支付 APIv3 PHP 库使用教程
项目介绍
微信支付 APIv3 的官方 PHP 库,支持 APIv2 和 APIv3。该项目基于 Guzzle HTTP Client,提供了同步和异步请求的支持,适用于 PHP 开发。
项目快速启动
安装
首先,通过 Composer 安装微信支付 PHP 库:
composer require wechatpay/wechatpay
初始化
以下是一个简单的初始化示例:
require_once 'vendor/autoload.php';
use WeChatPay\Builder;
use WeChatPay\Crypto\Rsa;
use WeChatPay\Util\PemUtil;
// 设置参数
$merchantId = '190000****'; // 商户号
$merchantPrivateKeyFilePath = 'file:///path/to/merchant/apiclient_key.pem'; // 商户API私钥路径
$merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
$merchantCertificateSerial = '3775B6A45ACD588826D15E583A95F5DD********'; // 商户API证书序列号
$platformCertificateFilePath = 'file:///path/to/wechatpay/cert.pem'; // 微信支付平台证书路径
$platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);
$platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath); // 微信支付平台证书序列号
// 构造一个 APIv3 客户端实例
$instance = Builder::factory([
'mchid' => $merchantId,
'serial' => $merchantCertificateSerial,
'privateKey' => $merchantPrivateKeyInstance,
'certs' => [
$platformCertificateSerial => $platformPublicKeyInstance,
],
]);
应用案例和最佳实践
发起支付请求
以下是一个发起支付请求的示例:
$response = $instance->v3->pay->transactions->jsapi->post([
'json' => [
'appid' => 'wxd678efh567hg6787',
'mchid' => $merchantId,
'description' => '测试支付',
'out_trade_no' => '1217752501201407033233368018',
'amount' => [
'total' => 100,
'currency' => 'CNY',
],
'payer' => [
'openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
],
],
]);
echo $response->getStatusCode(); // 输出响应状态码
echo $response->getBody(); // 输出响应内容
查询订单
以下是一个查询订单的示例:
$response = $instance->v3->pay->transactions->id->{$transactionId}->get([
'query' => [
'mchid' => $merchantId,
],
]);
echo $response->getStatusCode(); // 输出响应状态码
echo $response->getBody(); // 输出响应内容
典型生态项目
wechatpay-guzzle-middleware
这是一个适用于 PHP 开发的微信支付 Guzzle 中间件,可以简化请求签名和响应验证的过程。
wechatpay-go
这是一个适用于 Go 开发的微信支付库,提供了类似的功能和接口,方便 Go 开发者集成微信支付。
通过以上教程,您可以快速上手并使用微信支付 APIv3 的官方 PHP 库进行开发。希望这些内容对您有所帮助!