如何开发ecshop支付插件

目标一:搞懂ecshop的支付流程
选完商品,进入购物车页面,点击“结算中心”,页面跳转到flow.php?step=checkout,这个是订单确认操作。
在订单确认页面确定了支付方式,配送方式等可选择的信息之后,点击“提交订单”按钮,提交表单到flow.php?step=done生成订单。
flow.php?step=done这个操作中,跟支付有关的操作是生成支付代码。如下所示:
    /* 取得支付信息,生成支付代码 */
    if ($order['order_amount'] > 0)
    {
        $payment = payment_info($order['pay_id']);
        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']));
        $order['pay_desc'] = $payment['pay_desc'];
        $smarty->assign('pay_online', $pay_online);
    }
通过支付方式的id通过函数 payment_info()获取到支付方式的信息,在通过支付方式的pay_code包含对应的支付模块。
Ecshop把每一种支付方式都封装成一个类,比如支付宝支付方式,对应的文件是includes\modules\payment\alipay.php,这个文件里面封装了类是alipay,这个类有两个方法,一个是生成支付代码的get_code(),根据不同支付接口所需的参数进行配置,然后生成一个字符串,这个字符串就是支付代码;另外一个是响应操作respond()。其中,接收响应的页面都是通过return_url(basename(__FILE__, '.php'))函数指定的,生成的链接是respond.php?code=,其中code后面的参数就是根据不同的支付方式而不同。Respond.php则根据不同的第三方支付返回的信息进行处理。

目标二:开发支付插件(为了便于讲解,再次开发ecshop自带的支付宝接口alipay,我们改名为alipay_ecshopvc)
搞清楚支付的基本流程,尝试开发支付插件。假如要开发一个alipay_ecshopvc.php插件
首先,在语言包里面languages\zh_cn\payment新建一个alipay_ecshopvc.php文件(这里复制alipay.php),然后修改里面的$LANG的下标,都加上_ecshopvc,$_LANG['pay_button']可以不修改;
然后,在支付模块includes\modules\payment里面新建一个alipay_ecshopvc.php,修改模块的基本信息跟语言包,封装一个类alipay_ecshopvc,并且实现两个方法get_code()和respond();
最后登录后台查看支付方式。

本文原创地址:https://www.ecshop.cx/article-449.html
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。

文章评论

暂时还没有任何用户评论

发表 取消
实时购买动态 ×

meng Wong会员 在 2018-12-12 购买了 最新ECSHOP的PAYPAL支付插件采用加密返回同步订单 完美同步付款不掉单