管理員
- 貢獻
- 12 點
- 金幣
- 41 個

|
一直以來,Discuz! 的站長有一個痛苦,安裝了2個支付相關(guān)的插件,一個支付一個界面,界面極為不統(tǒng)一。
這種問題在 X5 時代徹底終極了。其實相關(guān)接口 X3.5 的時候已經(jīng)出了,只是沒對外公開過文檔,很少有人知道。但是在 X5 中不僅拓展了它,還徹底優(yōu)化加強了。
容我細細道來~~咳咳!
假設我們制作了一個需要用戶支付的插件,現(xiàn)在到了支付的地方,你要自己開發(fā)支付接口嗎?不必哦。你只需要對接 X5 自己的支付接口就行了,如下圖,假設我們定好了價格只需調(diào)用創(chuàng)建訂單的接口,生成一個鏈接,讓用戶點擊
就會調(diào)到統(tǒng)一的系統(tǒng)支付頁面
支付完成后會跳回到插件自己的頁面中
而這流程你只需要調(diào)用一個函數(shù):
- $ret = payment::create_order('sample:test', 'test title', 'test desc', $price, $_G['siteurl'].'/index.php?app=plugin&id=sample:pay_callback');
復制代碼 $ret 為返回的鏈接,你視情況輸出即可
然后在 pay_callback.inc.php 腳本中可以直接判斷支付完成后的處理過程
另一方面
如果您想對接自己的支付體系,也是可以的,我們支持開發(fā)者新增新的支付通道
通過如下代碼,創(chuàng)建一個新的通道
- payment::channels_add('sample', [
- 'id' => 'sample:test',
- 'title' => 'sample',
- 'logo' => 'static/image/common/logo.svg',
- ]);
復制代碼 刪除可以這樣
- payment::channels_delete('sample');
復制代碼 這樣支付的時候自然會出現(xiàn)你新增的支付方式
pay/pay_test.php 腳本中我們可以定義此支付體系的具體支付過程
- class pay_test extends \pay_base {
- public function pay($order) {
- ......
- }
- }
復制代碼
在 pay_notify.inc.php 中可以進行支付完成的通知的接收
- payment::finish_order('sample:test', $_GET['out_biz_no'], $_GET['trade_no'], time());
復制代碼 在 pay/pay_test.php 中完成回調(diào)處理
- class pay_test extends \pay_base {
- public function callback($data, $order) {
- ......
- }
- }
復制代碼 同時,我們還為自定義支付通道的插件提供了,直接嵌入后臺的入口,添加 admin/payment/payment_test.php 文件接口把你增加的支付方式的設置內(nèi)嵌在后臺和系統(tǒng)的設置項放在一起
- class payment_test {
- var $name = 'test支付';
- public function admincp() {
- }
- }
復制代碼
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有賬號?立即注冊
×
|