laravel 5 支付寶支付教程
laravel5集成支付寶alipay支付教程
關於支付寶 合作者id、支付寶賬號、校驗碼Key自己去申請,這裏不做解釋
安裝
1.執行命令安裝包
cd 項目根目錄
>composer require latrell/alipay dev-master
2.執行更新
>composer update
3.找到 config/app.php 配置文件中,key為 providers 的數組,在數組中添加服務提供者。
‘providers‘ => [
// ...
‘Latrell\Alipay\AlipayServiceProvider‘,
]
cmd 窗口,根目錄運行
php artisan vendor:publish
命令,發布配置文件到你的項目中
4.配置說明
說明
配置文件
config/latrell-alipay.php 為公共配置信息文件,
config/latrell-alipay-web.php 為Web版支付寶SDK配置,
config/latrell-alipay-mobile.php 為手機端支付寶SDK配置。
打開config下
latrell-alipay-web.php
<?php
return [
// 安全檢驗碼,以數字和字母組成的32位字符。
‘key‘ => ‘‘,//這個在支付寶裏面獲得商家服務顯示
//簽名方式
‘sign_type‘ => ‘MD5‘,
// 服務器異步通知頁面路徑。
‘notify_url‘ => ‘http://www.cxycdz.cn/alipay/webnotify‘,
// 頁面跳轉同步通知頁面路徑。
‘return_url‘ => ‘http://www.cxycdz.cn/alipay/webreturn‘ (註意:這裏的路徑必須是真實的鏈接)
];
路由參考
/*支付*/
Route::Group([‘namespace‘ => ‘Moneymember‘], function () {
Route::get(‘/pay‘, [‘as‘ => ‘website.pay‘, ‘uses‘ => [email protected]
例子
支付申請
網頁
// 創建支付單。
$alipay = app(‘alipay.web‘);
$alipay->setOutTradeNo(‘order_id‘); // 訂單號、訂單id
$alipay->setTotalFee(‘order_price‘); // 訂單價格
$alipay->setSubject(‘goods_name‘); // 商品名稱
$alipay->setBody(‘goods_description‘); // 商品描述
$alipay->setQrPayMode(‘5‘); //該設置為可選,添加該參數設置,支持二維碼支付。,5為網頁版掃碼鏈接
// 跳轉到支付頁面。
return redirect()->to($alipay->getPayLink());
手機端
// 創建支付單。
$alipay = app(‘alipay.mobile‘);
$alipay->setOutTradeNo(‘order_id‘);
$alipay->setTotalFee(‘order_price‘);
$alipay->setSubject(‘goods_name‘);
$alipay->setBody(‘goods_description‘);
// 返回簽名後的支付參數給支付寶移動端的SDK。
return $alipay->getPayPara();
結果通知
網頁
/**
* 異步通知
*/
public function webNotify()
{
// 驗證請求。
if (! app(‘alipay.web‘)->verify()) {
Log::notice(‘Alipay notify post data verification fail.‘, [
‘data‘ => Request::instance()->getContent()
]);
return ‘fail‘;
}
// 判斷通知類型。
switch (Input::get(‘trade_status‘)) {
case ‘TRADE_SUCCESS‘:
case ‘TRADE_FINISHED‘:
// TODO: 支付成功,取得訂單號進行其它相關操作。
Log::debug(‘Alipay notify post data verification success.‘, [
‘out_trade_no‘ => Input::get(‘out_trade_no‘),
‘trade_no‘ => Input::get(‘trade_no‘)
]);
break;
}
return ‘success‘;
}
/**
* 同步通知
*/
public function webReturn()
{
// 驗證請求。
if (! app(‘alipay.web‘)->verify()) {
Log::notice(‘Alipay return query data verification fail.‘, [
‘data‘ => Request::getQueryString()
]);
return view(‘alipay.fail‘);
}
// 判斷通知類型。
switch (Input::get(‘trade_status‘)) {
case ‘TRADE_SUCCESS‘:
case ‘TRADE_FINISHED‘:
// TODO: 支付成功,取得訂單號進行其它相關操作。
Log::debug(‘Alipay notify get data verification success.‘, [
‘out_trade_no‘ => Input::get(‘out_trade_no‘),
‘trade_no‘ => Input::get(‘trade_no‘)
]);
break;
}
return view(‘alipay.success‘);
}
手機端
/**
* 支付寶異步通知
*/
public function alipayNotify()
{
// 驗證請求。
if (! app(‘alipay.mobile‘)->verify()) {
Log::notice(‘Alipay notify post data verification fail.‘, [
‘data‘ => Request::instance()->getContent()
]);
return ‘fail‘;
}
// 判斷通知類型。
switch (Input::get(‘trade_status‘)) {
case ‘TRADE_SUCCESS‘:
case ‘TRADE_FINISHED‘:
// TODO: 支付成功,取得訂單號進行其它相關操作。
Log::debug(‘Alipay notify get data verification success.‘, [
‘out_trade_no‘ => Input::get(‘out_trade_no‘),
‘trade_no‘ => Input::get(‘trade_no‘)
]);
break;
}
return ‘success‘;
}
laravel 5 支付寶支付教程