微信小程序v3支付php代码
时间: 2023-10-06 09:12:56 浏览: 123
以下是微信小程序 v3 版本的 PHP 代码示例:
```php
<?php
// 设置请求头
$header = array(
'Content-Type: application/json',
'Wechatpay-Serial: {证书序列号}',
'Authorization: {签名}'
);
// 设置请求体
$body = array(
'appid' => '{小程序appid}',
'mchid' => '{商户号}',
'description' => '商品描述',
'out_trade_no' => '{商户订单号}',
'notify_url' => '{回调地址}',
'amount' => array(
'total' => 100, // 订单总金额,单位为分
'currency' => 'CNY' // 币种,目前仅支持CNY
),
'payer' => array(
'openid' => '{用户openid}'
)
);
// 发起支付请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
// 处理支付结果
$result = json_decode($response, true);
if ($result['code_url']) {
// 支付成功,返回支付参数给客户端
echo json_encode(array(
'codeUrl' => $result['code_url']
));
} else {
// 支付失败,返回错误信息给客户端
echo json_encode(array(
'errorMessage' => $result['message']
));
}
```
需要替换的参数:
- 证书序列号:在商户平台下载的 API 证书,使用 OpenSSL 工具命令 `openssl x509 -in {cert_file} -noout -serial` 获取
- 签名:使用商户平台下载的 API 证书和签名算法生成的签名,具体可参考[官方文档](https://wechatpay-api.gitbook.io/wechatpay-api-v3/chang-jian-wen-ti/shang-hu-jie-zhi)
- 小程序appid:创建小程序时生成的 AppID
- 商户号:在微信支付平台注册的商户号
- 商户订单号:商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一
- 回调地址:接收微信支付异步通知的回调地址,需为公网可访问的 URL 地址
- 用户openid:用户在小程序中的唯一标识符,可从登录态中获取
阅读全文