如何開發ecshop支付外掛
如何開發ecshop支付外掛
ecshop模板網 / 2014-06-03
目標一:搞懂ecshop的支付流程
選完商品,進入購物車頁面,點選“結算中心”,頁面跳轉到flow.php?step=checkout,這個是訂單確認操作。
在訂單確認頁面確定了支付方式,配送方式等可選擇的資訊之後,點選“提交訂單”按鈕,提交表單到flow.php?step=done生成訂單。
flow.php?step=done這個操作中,跟支付有關的操作是生成支付程式碼。如下所示:
/* 取得支付資訊,生成支付程式碼,線上支付程式碼*/
if ($order[`order_amount`] > 0)
{
$payment = payment_info($order[`pay_id`]);
//print_r($payment);exit;
include_once(`includes/modules/payment/` . $payment[`pay_code`] . `.php`);
$pay_obj = new $payment[`pay_code`];
$pay_online=$pay_obj->get_code($order,unserialize_config($payment[`pay_config`]));
//print_r(unserialize_config($payment[`pay_config`]));exit;
$order[`pay_desc`] = $payment[`pay_desc`];
$smarty->assign(`pay_online`, $pay_online);
}
通過支付方式的id通過函式payment_info()獲取到支付方式的資訊,在通過支付方式的pay_code包含對應的支付模組。
Ecshop把每一種支付方式都封裝成一個類,比如支付寶支付方式,對應的檔案是
includesmodulespaymentalipay.php,這個檔案裡面封裝了類是alipay,這個類有兩個方法,一個是生成支付程式碼的get_code(),根據不同支付介面所需的引數進行配置,然後生成一個字串,這個字串就是支付程式碼;另外一個是響應操作respond()。其中,接收響應的頁面都是通過return_url(basename(__FILE__, `.php`))函式指定的,生成的連結是respond.php?code=,其中code後面的引數就是根據不同的支付方式而不同。Respond.php則根據不同的第三方支付返回的資訊進行處理。
目標二:開發支付外掛(為了便於講解,再次開發ecshop自帶的支付寶介面alipay,我們改名為alipay_test)
搞清楚支付的基本流程,嘗試開發支付外掛。假如要開發一個alipay_test.php外掛。
首先,在語言包裡面languageszh_cnpayment新建一個alipay_test.php檔案(這裡複製alipay.php),然後修改裡面的$LANG的下標,都加上_test,$_LANG[`pay_button`]可以不修改;
然後,在支付模組includesmodulespayment裡面新建一個alipay_test.php,修改模組的基本資訊跟語言包,封裝一個類alipay_test,並且實現兩個方法get_code()和respond();
最後登入後臺檢視支付方式。
相關文章
- ECshop 快捷登入外掛 支援QQ 支付寶 微博
- 如何開發一個 PyCharm 外掛PyCharm
- 如何開發 Sublime Text 2 的外掛
- Flutter外掛開發Flutter
- Mybatis外掛開發MyBatis
- Webstorm 外掛開發WebORM
- flutter 外掛開發Flutter
- 開發Rhino外掛
- chrome 外掛開發Chrome
- apisix~lua外掛開發與外掛註冊API
- babel 外掛開發案例Babel
- Maven外掛開發教程Maven
- Chrome外掛開發教程Chrome
- Stylus外掛開發教程
- chrome外掛開發文件Chrome
- babel外掛開發心得Babel
- Vue-外掛開發Vue
- jQuery外掛開發模式jQuery模式
- jquery外掛開發方法jQuery
- dlopen開發外掛庫
- Vue如何使用混合Mixins和外掛開發Vue
- PgSQL · 核心開發 · 如何管理你的 PostgreSQL 外掛SQL
- Flutter開發之Flutter外掛開發Flutter
- WordPress外掛開發例項教程 - 版權外掛
- ZBlog外掛開發檔案結構(外掛)
- wordpress外掛開發02-首頁文章自動摘要外掛開發
- wordpress外掛開發03-簡單的all in one seo 外掛開發
- 如何利用Fluttify開發一個新的Flutter外掛Flutter
- Flutter外掛開發《iOS原生模組開發》FlutteriOS
- eslint外掛開發教程EsLint
- Flutter 原生外掛開發流程Flutter
- babel原理及外掛開發Babel
- Electron 外掛開發實踐
- Chrome外掛開發入門Chrome
- Flutter外掛開發---iOS篇FlutteriOS
- Web前端開發Chrome外掛Web前端Chrome
- Idea日常開發外掛Idea
- Skywalking 外掛開發