天天看點

laravel架構下的pc支付寶支付接入

參考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');