给订单系统集成支付宝
前提自己申请相关api
安装 1.执行命令安装包 composer require latrell/alipay dev-master 2.执行更新 composer update 3.找到 config/app.php 配置文件中,key为 providers 的数组,在数组中添加服务提供者。 'providers' => [ // ... Latrell\Alipay\AlipayServiceProvider::class, ] 4.运行 php artisan vendor:publish 命令,发布配置文件到你的项目中 4.配置说明 说明 配置文件 config/latrell-alipay.php 为公共配置信息文件, config/latrell-alipay-web.php 为Web版支付宝SDK配置, config/latrell-alipay-mobile.php 为手机端支付宝SDK配置。 5.设置配置文件config/latrell-alipay-web.php <?php return [// 安全检验码,以数字和字母组成的32位字符。 'key' => 'b', //签å方式 'sign_type' => 'MD5', // 服务器异步通知页面路径ã //'notify_url' => 'http://kaleozhou.iok.la/alipay/webnotify', 'notify_url' => url('alipay/webnotify'), // 页面跳转同步通知页é¢路径。 //'return_url' => 'http://kaleozhou.iok.la/alipay/webreturn' 'return_url' => url('alipay/webreturn')];
6.设置配置文件config/latrell-alipay-web.php
<?php return [//合作身份者id,以2088开头的16位纯数字。'partner_id' => '',//卖家支付宝帐户。'seller_id' => '']
7.网页端使用
$alipay=app('alipay.web'); $alipay->setOutTradeNo($order->ordnumber); $alipay->setTotalFee($order->amount); $alipay->setSubject($order->product_name); $alipay->setBody('订购'.$order->product_name.$order->num.'件'); //$alipay->setQrPayMode('4'); //该设置为可选,添加该参数设置,支持二维码支付。 // 跳转到支付页面。 return redirect()->to($alipay->getPayLink()); } 8.异步消息提醒和页面跳转 public function webNotify(Request $request) { //验证请求 if (! app('alipay.web')->verify()) { Log::info('Alipay notify post data verification fail.'); return 'fail'; } // 判断通知类型。 switch ($request->input('trade_status')) { case 'TRADE_SUCCESS': case 'TRADE_FINISHED': // TODO: 支付成功,取得订单号进行其它相关操作。 break; } return 'success'; } public function webReturn(Request $request) { //验证请求 if (! app('alipay.web')->verify()) { Log::info('Alipay return query data verification fail.'); //return redirect()->to(url('order')); } //判断通知类型 switch ($request->input('trade_status')) { case 'TRADE_SUCCESS': // TODO: 支付成功,取得订单号进行其它相关操作。 $ordnumber=$request->out_trade_no; $order=Order::where('ordnumber',$ordnumber)->first(); $customer=Customer::find($order->customer_id); return view('order_success') ->with('order',$order) ->with('customer',$customer);case 'TRADE_FINISHED': break; }}
10设置路由