laravel 支付宝支付接口调试
Alipay
- 支付宝SDK在Laravel5/Lumen封装包。
- 该拓展包想要达到在Laravel5/Lumen框架下,便捷使用支付宝的目的。
安装支付宝SDK扩展包
composer require latrell/alipay dev-master
配置及使用
找到 config/app.php 配置文件中,key为 providers 的数组,在数组中添加服务提供者
// 支付宝支付 Latrell\Alipay\AlipayServiceProvider::class,
说明
- 配置文件 config/latrell-alipay.php 为公共配置信息文件,
config/latrell-alipay-web.php 为Web版支付宝SDK配置,
config/latrell-alipay-mobile.php 为手机端支付宝SDK配置。 - 运行 php artisan vendor:publish 命令,发布配置文件到你的项目中。
在bootstrap/app.php里注册服务。
$app->register(
Latrell\Alipay\AlipayServiceProvider::class
);
代码例子
网页
// 创建支付单。 $alipay = app('alipay.web'); $alipay->setOutTradeNo('订单号'); $alipay->setTotalFee('订单价格(元)'); $alipay->setSubject('商品名称'); $alipay->setBody('商品描述'); $alipay->setQrPayMode('4'); //该设置为可选,添加该参数设置,支持二维码支付。 // 跳转到支付页面。 return redirect()->to($alipay->getPayLink());
手机端
// 创建支付单。 $alipay = app('alipay.mobile'); $alipay->setOutTradeNo('订单号'); $alipay->setTotalFee('商品价格(元)'); $alipay->setSubject('商品名称'); $alipay->setBody('商品描述'); // 返回签名后的支付参数给支付宝移动端的SDK。 return $alipay->getPayPara();
结果通知
网页
/** * 异步通知 */ public function webNotify(Request $request) { // 验证请求。 if (! app('alipay.web')->verify()) { // // 日志 // Log::notice('Alipay notify post data verification fail.', [ // 'data' => $request->getContent() // ]); return 'fail'; } // 判断通知类型。 switch ($request->trade_status) { case 'TRADE_SUCCESS': case 'TRADE_FINISHED': // TODO: 支付成功,取得订单号进行其它相关操作。 // // 日志 // Log::debug('Alipay notify post data verification success.', [ // 'out_trade_no' => $request->out_trade_no, // 'trade_no' => $request->trade_no // ]); break; } return 'success'; } /** * 同步通知 */ public function webReturn(Request $request) { // 验证请求。 if (! app('alipay.web')->verify()) { // // 日志 // Log::notice('Alipay return query data verification fail.', [ // 'data' => $request->getContent() // ]); return ['alipay.fail']; } // 判断通知类型。 switch ($request->trade_status) { case 'TRADE_SUCCESS': case 'TRADE_FINISHED': // TODO: 支付成功,取得订单号进行其它相关操作。 // // 日志 // Log::debug('Alipay notify get data verification success.', [ // 'out_trade_no' => $request->out_trade_no, // 'trade_no' => $request->trade_no // ]); break; } return ['alipay.success']; }
手机端
/** * 支付宝异步通知 */ public function alipayNotify(Request $request) { // 验证请求。 if (! app('alipay.mobile')->verify()) { // // 日志 // Log::notice('Alipay notify post data verification fail.', [ // 'data' => $request->getContent() // ]); return 'fail'; } // 判断通知类型。 switch ($request->trade_status) { case 'TRADE_SUCCESS': case 'TRADE_FINISHED': // TODO: 支付成功,取得订单号进行其它相关操作。 // // 日志 // Log::debug('Alipay notify get data verification success.', [ // 'out_trade_no' => $request->out_trade_no, // 'trade_no' => $request->trade_no // ]); break; } return 'success'; }