基于PhalApi的第三方支付拓展 (由@Summer)

2018-11-21 21:23 更新

基于PhalApi的第三方支付拓展

1.安裝和配置

1.1 擴展包下載

從 PhalApi-Library 擴展庫中下載獲取 Pay 擴展包,如使用:

git clone https://git.oschina.net/dogstar/PhalApi-Library.git
然后把 Pay 目錄下對應的文件移動至對應的目錄

1.2 擴展包配置

我們需要在 ./Config/app.php 配置文件中追加以下配置:

1.2.1 第三方支付配置
   /**
     * 支付相關(guān)配置
     */
    'Pay' => array(
        //異步/同步地址 如果域名指向到Public,那么地址應該是 http://你的域名/pay/
        'notify_url' => 'http://你的域名/PhalApi/Public/pay/',

        //支付寶wap端設(shè)置
        'aliwap' => array( 
            //收款賬號郵箱
            'email' => 'admin@admin.com', 

            //加密key
            'key' => 'xxx', 

            //合作者ID
            'partner' => '123456' 
        ),

        //微信支付設(shè)置
        'wechat' => array(
            //公眾號的唯一標識
            'appid' => 'xxx',

            //商戶號
            'mchid' => '123456',

            //公眾號的appsecret
            'appsecret' => 'xxx',

            //微信支付Key
            'key' => 'xxx'
        ),
    ),

支付寶私鑰公鑰的生成就不多說了,還是自己去看吧!
任意門:https://cshall.alipay.com/enterprise/help_detail.htm?help_id=483847
生成后的文件放至Library/Pay/key目錄下,文件名請按照對應的文件名設(shè)置

alipay_public_key.pem 為支付寶合作伙伴密鑰的支付寶公鑰
alipay_rsa_private_key.pem 為自己生成的rsa密鑰

2.入門使用

2.1 入口注冊

$loader->addDirs('Library');

//其他代碼...

//支付
DI()->pay = new Pay_Lite();

3. 使用接口進行支付

找到Demo/Api/Pay.php這個放到對應的項目下,Notify.php也在同級目錄下
訪問鏈接 http://你的域名/Public/項目/?service=Pay.index&type=wechat
參數(shù)type為對應的支付引擎的名稱。微信為wechat 支付寶wap端為aliwap

如果域名已經(jīng)設(shè)置至Public目錄,就不需要Public目錄了

如果需要測試微信JSAPI支付,需要在微信瀏覽器中測試,先將以上的訪問鏈接生成為二維碼,然后打開微信掃一掃就可以支付了

3.1 異步回調(diào)接口說明

//支付寶的異步回調(diào)接口
http:://你的域名/Public/pay/aliwap/notify.php

//支付寶同步回調(diào)接口
http:://你的域名/Public/pay/aliwap/return.php

//微信異步回調(diào)接口
http:://你的域名/Public/pay/wechat/notify.php

支付寶同步回調(diào)不知道為什么進行驗證時會驗證失敗,為了節(jié)約時間,也沒有再修復了,畢竟如果是做接口大部分用不到。如果有同學把問題解決了,請AT我 aer_c@qq.com QQ:7579476 或者添加PhalApi官方交流群:421032344 AT:Summer

4. 回調(diào)成功說明

異步回調(diào)成功后會在日志中生成成功后的信息,失敗也會生成

2015-12-18 10:43:36|PAYSUCCESS|Pay Success|{"Type":"aliwap","Method":"notify","Data":{"status":true,"money":"0.01","out_trade_no":"FC180660663677d","trade_no":"2015121800001000630003030428"}}

2015-12-18 10:43:59|PAYSUCCESS|Pay Success|{"Type":"wechat","Method":"notify","Data":{"status":true,"money":0.01,"out_trade_no":"FC180663422083d","trade_no":"1007480911201512182153438132"}}
返回的數(shù)據(jù)說明
Type 支付方法 aliwap/wechat
Method 回調(diào)方式 notify:異步回調(diào) return: 同步回調(diào)
Data 訂單信息 status: 支付狀態(tài) money: 支付的總金額 out_trade_no: 商戶訂單號 trade_no: 支付寶/微信訂單號

5. 添加新的第三方支付

我相信同學們都看的懂,我都有注釋,安裝規(guī)定的格式添加即可,如果看不懂可以問我,聯(lián)系方式上面有,就不說了!

PS:我們致力于代碼開源,引用老大的一句話
PhalApi是一個PHP輕量級開源接口框架。我們致力于將PhalApi維護成像恒星一樣:不斷更新,保持生氣;為接口負責,為開源負責!讓后臺接口開發(fā)更簡單!

補充微信現(xiàn)金紅包 @暗夜在火星 2016-01-21

使用的示例代碼如下:

        $params = array(
            're_openid' => $openId,
            'send_name' => '紅包發(fā)送者名稱',
            'total_amount' => 100,
            'total_num' => 1,
            'wishing' => '紅包祝福語',
            'act_name' => '活動名稱',
            'remark' => '備注',
        );

        $payLite = DI()->get('payLite', 'Pay_Lite');
        $payLite->set('wechat');

        try {
            $sendRs = $payLite->sendredpack($params, $errorMsg);
        } catch (Pay_Exception $ex) {
            //異常失敗處理
        }

更多信息,請參考:【微信支付】現(xiàn)金紅包開發(fā)者文檔

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號