參考https://github.com/gaoxuxu123/laravel-alipay
composer require laravel-alipay/alipay dev-master
或者在composer.json中加入
"require": {
"laravel-alipay/alipay": "dev-master"
}
更新依賴 composer update
##使用說明
找到 config/app.php 檔案
'providers' => [
lxu\alipay\alipayserviceprovider::class,
]
運作 php artisan vendor:publish 指令
配置檔案 config/lxu-alipay.php 已經生成,按照要求配置即可
<?php
/**
created by phpstorm.
user: xu.gao
date: 2016/2/23
time: 14:22
*/
return [
//pc配置
'pcconfig'=>
[
'partner' =>'2088302186611', //這裡是你在成功申請支付寶接口後擷取到的pid;
'key' =>'sxevk9h1vekjlx4y12arl6pryrz111', //這裡是你在成功申請支付寶接口後擷取到的key
'seller_id' =>'208830211', //就是partner
'sign_type' =>strtoupper('md5'), //不需修改
'input_charset' =>strtolower('utf-8'), //不需修改
'transport' =>'http',
'notify_url' =>getenv('app_url').'/alipay/getnotifyurl',//異步通知
'return_url' =>getenv('app_url').'/alipay/getreturnurl',//同步通知
'refund_notify_url' => 'http://自己的域名/自己的路由/方法',//不做退款無需配置
'service' =>'create_direct_pay_by_user', //不需修改,支付service
'refundservice' =>'refund_fastpay_by_platform_pwd',//退款service
'payment_type' =>'1', //不需修改
//賣家賬戶資訊
'seller_email' =>'[email protected]', //賣家郵箱
//手機配置
'mobileconfig'=>
'partner' =>'xxxxxxxxxxxxxxxxxxxxxx',
'seller_id' =>'xxxxxxxxxxxxxxxxxxxxxx',
'key' =>'xxxxxxxxxxxxxxxxxxxxxx',
'sign_type' =>strtoupper('rsa'), //不需修改
'input_charset' =>strtolower('utf-8'), //不需修改
'notify_url' =>'http://自己的域名/自己的路由/方法', //異步通知
'return_url' =>'http://自己的域名/自己的路由/方法', //同步通知
'service' =>'alipay.wap.create.direct.pay.by.user',//不需修改
'payment_type' =>'1',
'seller_email' =>'[email protected]',
];
再配置路由通路控制器進行回調即可
namespace app\http\controllers\alipay;
use app\http\controllers\controller;
use omnipay\omnipay;
use illuminate\http\request;
use app\http\models\painting;
use auth;
use db;
use app\tools\ossupload;
use app\http\models\systemarea;
use app\http\models\order;
use app\http\models\cart;
use app\http\models\memberaddress;
use app\http\models\memberdistribution;
use app\http\models\memberupload;
use app\http\models\membercoupon;
use app\http\models\warehouse;
use app\http\models\collection;
use app\http\models\member;
use app\http\models\message;
use symfony\component\console\input\input;
class indexcontroller
@package app\http\controllers\alipay
pc 支付寶支付
class indexcontroller extends controller
{
跳轉到支付寶付款
@param $request
入參如下:
訂單id主鍵非訂單編号(主/子訂單編号),
物品名字name,
物品總價格price.
@return mixed
public function getpay(request $request){
$data=$request->all();
$alipay = app('alipay.web');
$alipay->setouttradeno($data['order_id']);
$alipay->settotalfee($data['price']);
$alipay->setsubject('藝飛萬家畫品購買畫品');
$alipay->setbody('藝飛萬家畫品購買畫品');
$alipay->setqrpaymode('5'); //該設定為可選1-5,添加該參數設定,支援二維碼支付。
// 跳轉到支付頁面。
return redirect()->to($alipay->getpaylink());
支付寶伺服器異步通知
public function getnotifyurl(request $request)
// 驗證請求。
if (!app('alipay.web')->verify()) {
return redirect('/buy');
// 判斷通知類型。
if($request->trade_status=='trade_success'||$request->trade_status=='trade_finished'){
//todo: 支付成功,取得訂單号進行其它相關操作。
order::doorder($data['out_trade_no']); //傳訂單id
echo "success"; //請不要修改或删除
}else{
echo "fail";
支付寶頁面跳轉同步通知
public function getreturnurl(request $request)
return redirect('/');
return redirect('/member');