下面是“php服务端集成支付宝APP支付实例”的完整攻略。
1.准备工作
在开始之前,需要在支付宝开放平台注册账号并创建应用,将应用的APPID、商户私钥和支付宝公钥保存好。
除此之外,还需要安装以下依赖:
- PHP(建议版本5.6.0及以上)
- composer
2.下载SDK
使用composer命令下载alipay-sdk-php包:
composer require alipay/alipay-sdk-php
下载后,将包中的Alipay文件夹拷贝到项目中。
3.配置参数和初始化
在代码中引入Alipay文件夹,然后按照如下方式配置参数和初始化:
<?php
require_once 'Alipay/AopSdk.php';
$config = [
'app_id' => '应用的APPID',
'merchant_priv_key' => '商户私钥',
'alipay_public_key' => '支付宝公钥',
'charset' => 'UTF-8',
'gatewayUrl' => 'https://openapi.alipay.com/gateway.do',
'notify_url' => '接收支付宝异步通知的URL',
];
$alipay = new AopClient();
$alipay->appId = $config['app_id'];
$alipay->rsaPrivateKey = $config['merchant_priv_key'];
$alipay->alipayrsaPublicKey = $config['alipay_public_key'];
$alipay->charset = $config['charset'];
$alipay->gatewayUrl = $config['gatewayUrl'];
4.调起支付宝APP支付页面
使用如下代码可以调起支付宝APP支付页面:
<?php
$bizContent = [
'out_trade_no' => '订单号',
'total_amount' => '订单金额',
'subject' => '订单标题',
'body' => '订单描述',
'product_code' => 'QUICK_MSECURITY_PAY',
];
$request = new AlipayTradeAppPayRequest();
$request->setNotifyUrl($config['notify_url']);
$request->setBizContent(json_encode($bizContent));
$response = $alipay->sdkExecute($request);
echo $response;
其中,$bizContent中的参数需要按照支付宝的要求进行设置。调用sdkExecute方法可以获取调起支付宝APP支付页面的请求参数。
5.接收支付宝异步通知
支付宝支付完成后会异步通知支付结果,接收通知的代码如下:
<?php
$postData = $_POST;
$alipayPublicKey = $config['alipay_public_key'];
$signature = $postData['sign'];
unset($postData['sign_type'], $postData['sign']);
$alipayClient = new AopClient();
$alipayClient->alipayrsaPublicKey = $alipayPublicKey;
$checkResult = $alipayClient->rsaCheckV1($postData, $alipayPublicKey, 'RSA2');
if ($checkResult === true) {
// 通知信息可靠,处理业务逻辑
$out_trade_no = $postData['out_trade_no'];
$trade_no = $postData['trade_no'];
$total_amount = $postData['total_amount'];
} else {
// 通知信息已被篡改,不做处理
}
其中,$postData是post到回调URL的数据,$signature是post数据中的签名,需要进行验证。如果验证通过,则处理业务逻辑。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 服务端集成支付宝APP支付实例 - Python技术站