Laravel5 支付宝

安装

// 拉取组件
composer require latrell/alipay dev-master  

找到 config/app.php 配置文件中, keyproviders 的数组,在数组中添加服务提供者.

'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 为手机端支付宝 SD K配置

使用

先给支付添加一个路由和方法.

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';
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值