二次開(kāi)發(fā)ecshop支付插件-講座12上一講座我們講述了ecshop語(yǔ)言包lang的加載原理-講座11 ,由于最近ecshop二次開(kāi)發(fā)的項(xiàng)目比較多,而且周期也比較長(zhǎng),所以沒(méi)來(lái)得及寫教程。今天剛好做一個(gè)支付插件.讓我又一次深刻的理解了ecshop支付插件的工作原理.
首先我們知道ecshop支付插件,是在后臺(tái)可以安裝和卸載的。ecshop 數(shù)據(jù)庫(kù)中有一個(gè)表ecs_payment .這個(gè)表就是用來(lái)存儲(chǔ)ecshop支付方式的。
ecshop的插件位于includes\modules\payment目錄.文件的名稱也就是支付方式的標(biāo)志代碼。
每個(gè)支付插件類有兩個(gè)方法。
1: function get_code($order, $payment)
2:function respond()
說(shuō)說(shuō)上面兩個(gè)方法,一個(gè)是獲得支付頁(yè)面提交的參數(shù),第二個(gè)就是支付完后返回的動(dòng)作處理函數(shù).這個(gè)文件在跟目錄的respond.php里面非常有用.
我們看下支付后返回處理動(dòng)作.
$pay_code = !empty($_REQUEST['code']) ? trim($_REQUEST['code']) : '';
//獲取首信支付方式
if (empty($pay_code) && !empty($_REQUEST['v_pmode']) && !empty($_REQUEST['v_pstring']))
{
$pay_code = 'cappay';
}
//獲取快錢神州行支付方式
if (empty($pay_code) && ($_REQUEST['ext1'] == 'shenzhou') && ($_REQUEST['ext2'] == 'ecshop'))
{
$pay_code = 'shenzhou';
}
這里返回要獲得支付方式的參數(shù),目的就是獲取所用的支付方式名稱,然后通過(guò)調(diào)用支付插件所在文件里面的返回處理函數(shù).
$plugin_file = 'includes/modules/payment/' . $pay_code . '.php';
/* 檢查插件文件是否存在,如果存在則驗(yàn)證支付是否成功,否則則返回失敗信息 */
if (file_exists($plugin_file))
{
/* 根據(jù)支付方式代碼創(chuàng)建支付類的對(duì)象并調(diào)用其響應(yīng)操作方法 */
include_once($plugin_file);
$payment = new $pay_code();
$msg = ($payment->respond()) ? $_LANG['pay_success'] : $_LANG['pay_fail'];
}
else
{
$msg = $_LANG['pay_not_exist'];
}
大家看下,都是為了respond()方法的調(diào)用。
關(guān)鍵字:二次開(kāi)發(fā)(1)支付插件(1)
本站文章均有北京網(wǎng)站建設(shè)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處,文章地址:http://www.0hh0x.cn/jzzhishi/315.html