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';
     }
    

标签: none

添加新评论