Laravel 支付宝SDK在Laravel5的封装

一、安装

输入文字输入文字
输入文字输入文字
找到 config/app.php 配置文件中,key为 providers 的数组,在数组中添加服务提供者。

‘providers’ => [

// …

Latrell\Alipay\AlipayServiceProvider::class,

]

在项目根目录中运行 php artisan vendor:publish 命令,发布配置文件到你的项目中。

说明

配置文件 config/latrell-alipay.php 为公共配置信息文件, config/latrell-alipay-web.php 为Web版支付宝SDK配置, config/latrell-alipay-mobile.php 为手机端支付宝SDK配置。

二、使用

下面给打下一个支付申请得小例子:

Web端

 public function alipay()

{

$orderId = time();

$orderPrice = 0.01;

$goodsName = ‘外星人笔记本电脑’;

$goodsDescription = ‘外星人笔记本电脑’;

// 创建支付单。

$alipay = app(‘alipay.web’);

$alipay->setOutTradeNo($orderId);

$alipay->setTotalFee($orderPrice);

$alipay->setSubject($goodsName);

$alipay->setBody($goodsDescription);

// 跳转到支付页面。

return redirect()->to($alipay->getPayLink());

}

手机端

 public function alipay()

{

$orderId = time();

$orderPrice = 0.01;

$goodsName = ‘外星人笔记本电脑’;

$goodsDescription = ‘外星人笔记本电脑’;

// 创建支付单。

$alipay = app(‘alipay.mobile’);

$alipay->setOutTradeNo($orderId);

$alipay->setTotalFee($orderPrice);

$alipay->setSubject($goodsName);

$alipay->setBody($goodsDescription);

// 返回签名后的支付参数给支付宝移动端的SDK。

return $alipay->getPayPara();

}

Web端回调(通知)

/**

* 异步通知

*/

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’);

}

APP端回调(通知)

/**

* 支付宝异步通知

*/

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’;

}

Jason.wang

When you find your talent can't afford to be ambitious, be quiet and study !

You may also like...