在laravel5中使用支付寶支付

Github 地址

https://github.com/hyperbolaa/Alipay

安裝alipay

composer require hyperbolaa/alipay dev-master

更新你的依賴包 composer update 或者全新安裝 composer install

使用

要使用支付寶SDK服務(wù)提供者句葵,你必須自己注冊服務(wù)提供者到Laravel/Lumen服務(wù)提供者列表中龟虎。
基本上有兩種方法可以做到這一點锋勺。

Laravel

找到 config/app.php 配置文件中,key為 providers 的數(shù)組芽狗,在數(shù)組中添加服務(wù)提供者绢掰。

    'providers' => [
        // ...
        Hyperbolaa\Alipay\AlipayServiceProvider::class,
    ]

運行 php artisan vendor:publish 命令,發(fā)布配置文件到你的項目中。

Lumen

bootstrap/app.php里注冊服務(wù)滴劲。

//Register Service Providers
$app->register(Hyperbolaa\Alipay\AlipayServiceProvider::class);

由于Lumen的artisan命令不支持vendor:publish,需要自己手動將src/config下的配置文件拷貝到項目的config目錄下,
并將config.php改名成alipay.php,
mobile.php改名成alipay-mobile.php,
web.php改名成alipay-web.php.

說明

配置文件 config/alipay.php 為公共配置信息文件攻晒, config/alipay-web.php 為Web版支付寶SDK配置, config/alipay-mobile.php 為手機端支付寶SDK配置班挖。

web版使用

    // 創(chuàng)建支付單鲁捏。
    $alipay = app('alipay.web');
    $alipay->setOutTradeNo('order_id');
    $alipay->setTotalFee('order_price');
    $alipay->setSubject('goods_name');
    $alipay->setBody('goods_description');
    
    $alipay->setQrPayMode('4'); //該設(shè)置為可選,添加該參數(shù)設(shè)置萧芙,支持二維碼支付给梅。

    // 跳轉(zhuǎn)到支付頁面。
    return redirect()->to($alipay->getPayLink());

手機端使用

    // 創(chuàng)建支付單双揪。
    $alipay = app('alipay.mobile');
    $alipay->setOutTradeNo('order_id');
    $alipay->setTotalFee('order_price');
    $alipay->setSubject('goods_name');
    $alipay->setBody('goods_description');

    // 返回簽名后的支付參數(shù)給支付寶移動端的SDK动羽。
    return $alipay->getPayPara();

結(jié)果通知

網(wǎng)頁

    /**
     * 異步通知
     */
    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: 支付成功曹质,取得訂單號進行其它相關(guān)操作。
                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: 支付成功,取得訂單號進行其它相關(guān)操作迅办。
                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');
    }

手機端

    /**
     * 支付寶異步通知
     */
    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: 支付成功站欺,取得訂單號進行其它相關(guān)操作姨夹。
                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';
    }

Related

  • Ylpay 基于laravel5的POS通支付
  • Unionpay 基于laravel5的銀聯(lián)支付
  • Wechatpay 基于laravel5的微信支付
  • Alisms 基于laravel5的阿里云短信
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矾策,隨后出現(xiàn)的幾起案子磷账,更是在濱河造成了極大的恐慌,老刑警劉巖贾虽,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逃糟,死亡現(xiàn)場離奇詭異,居然都是意外死亡蓬豁,警方通過查閱死者的電腦和手機绰咽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來地粪,“玉大人取募,你說我怎么就攤上這事◇〖迹” “怎么了玩敏?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵斗忌,是天一觀的道長。 經(jīng)常有香客問我聊品,道長飞蹂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任翻屈,我火速辦了婚禮,結(jié)果婚禮上妻坝,老公的妹妹穿的比我還像新娘伸眶。我一直安慰自己,他們只是感情好刽宪,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布厘贼。 她就那樣靜靜地躺著,像睡著了一般圣拄。 火紅的嫁衣襯著肌膚如雪嘴秸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天庇谆,我揣著相機與錄音岳掐,去河邊找鬼。 笑死饭耳,一個胖子當著我的面吹牛串述,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寞肖,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼纲酗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了新蟆?” 一聲冷哼從身側(cè)響起觅赊,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琼稻,沒想到半個月后吮螺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡欣簇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年规脸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熊咽。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡莫鸭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出横殴,到底是詐尸還是另有隱情被因,我是刑警寧澤卿拴,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站梨与,受9級特大地震影響堕花,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜粥鞋,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一缘挽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呻粹,春花似錦壕曼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至筹燕,卻和暖如春轧飞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撒踪。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工过咬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人糠涛。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓援奢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忍捡。 傳聞我的和親對象是個殘疾皇子集漾,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容