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

2018-11-21 21:23 更新

基于PhalApi的第三方支付拓展

1.安裝和配置

1.1 擴(kuò)展包下載

從 PhalApi-Library 擴(kuò)展庫(kù)中下載獲取 Pay 擴(kuò)展包,如使用:

git clone https://git.oschina.net/dogstar/PhalApi-Library.git
然后把 Pay 目錄下對(duì)應(yīng)的文件移動(dòng)至對(duì)應(yīng)的目錄

1.2 擴(kuò)展包配置

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

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

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

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

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

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

            //商戶號(hào)
            'mchid' => '123456',

            //公眾號(hào)的appsecret
            'appsecret' => 'xxx',

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

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

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

2.入門使用

2.1 入口注冊(cè)

$loader->addDirs('Library');

//其他代碼...

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

3. 使用接口進(jìn)行支付

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

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

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

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

//支付寶的異步回調(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)不知道為什么進(jìn)行驗(yàn)證時(shí)會(huì)驗(yàn)證失敗,為了節(jié)約時(shí)間,也沒(méi)有再修復(fù)了,畢竟如果是做接口大部分用不到。如果有同學(xué)把問(wèn)題解決了,請(qǐng)AT我 aer_c@qq.com QQ:7579476 或者添加PhalApi官方交流群:421032344 AT:Summer

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

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

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ù)說(shuō)明
Type 支付方法 aliwap/wechat
Method 回調(diào)方式 notify:異步回調(diào) return: 同步回調(diào)
Data 訂單信息 status: 支付狀態(tài) money: 支付的總金額 out_trade_no: 商戶訂單號(hào) trade_no: 支付寶/微信訂單號(hào)

5. 添加新的第三方支付

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

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

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

使用的示例代碼如下:

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)