PHP微信支付(JSAPI)接入
PHP微信支付(JSAPI)接入详细描述
一、申请相关配置1. 微信公众号配置在微信公众平台中,需要创建一个公众号,并且配置appid和secret。
* 步骤:
* 登录微信公众平台( * 创建或选择一个公众号 * 进入"设置"-"基本信息"中,找到"AppID"和"AppSecret"
* 复制appid和secret,用于后续配置2. 微信商户配置在微信商户平台中,需要创建一个商户,并且配置支付目录和商户Key。
* 步骤:
* 登录微信商户平台( * 创建或选择一个商户 * 进入"设置"-"基本信息"中,找到"支付目录"和"商户Key"
* 复制支付目录和商户Key,用于后续配置 二、业务流程 第一步:获取用户的openid(JSAPI才会用到)
在微信公众平台中,需要使用JS-SDK来获取用户的openid。
* 步骤:
* 在网页中引入微信JS-SDK * 调用wx.login()方法,获取临时登录凭证code * 使用code换取openid和session_key 第二步:生成预支付订单在微信商户平台中,需要使用API来生成预支付订单。
* 步骤:
* 使用POST方式调用 *传递相关参数,如appid、mch_id、nonce_str等 * 接收返回的prepay_id 第三步:微信支付异步通知在微信商户平台中,需要配置回调地址来接收异步通知。
* 步骤:
* 在微信商户平台中,设置回调地址 * 等待微信服务器发送异步通知 第四步:手动查询订单在微信商户平台中,需要使用API来手动查询订单。
* 步骤:
* 使用POST方式调用 *传递相关参数,如appid、mch_id、transaction_id等 * 接收返回的订单信息 最后支付成功在微信商户平台中,需要配置回调地址来接收异步通知。
* 步骤:
* 等待微信服务器发送异步通知 * 根据通知内容进行处理 三、PHP代码示例以下是使用PHP语言实现微信支付JSAPI的示例代码:
```php
if ($code) {
$url = ' . APPID . '&secret=' . SECRET . '&js_code=' . $code . '&grant_type=authorization_code';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$openid = json_decode($response)->openid;
} else {
$openid = '';
}
//2.生成预支付订单$prepay_id = '';
$url = ' = array(
'appid' => APPID,
'mch_id' => MCH_ID,
'nonce_str' => uniqid(),
'body' => '测试',
'total_fee' =>1,
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, = curl_exec($ch);
curl_close($ch);
$prepay_id = json_decode($response)->prepay_id;
//3. 微信支付异步通知if (isset($_GET['notify_url'])) {
$url = $_GET['notify_url'];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
}
//4. 手动查询订单$url = ' = array(
'appid' => APPID,
'mch_id' => MCH_ID,
'transaction_id' => TRANSACTION_ID,
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, = curl_exec($ch);
curl_close($ch);
$order_info = json_decode($response);
//5. 最后支付成功if ($order_info->result_code == 'SUCCESS') {
// 处理支付成功的逻辑}
?>
```
以上是使用PHP语言实现微信支付JSAPI的示例代码。