如何开发ecshop支付插件

简介: 如何开发ecshop支付插件 ecshop模板网 / 2014-06-03 目标一:搞懂ecshop的支付流程 选完商品,进入购物车页面,点击“结算中心”,页面跳转到flow.php?step=checkout,这个是订单确认操作。

如何开发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把每一种支付方式都封装成一个类,比如支付宝支付方式,对应的文件是

includes\modules\payment\alipay.php,这个文件里面封装了类是alipay,这个类有两个方法,一个是生成支付代码的get_code(),根据不同支付接口所需的参数进行配置,然后生成一个字符串,这个字符串就是支付代码;另外一个是响应操作respond()。其中,接收响应的页面都是通过return_url(basename(__FILE__, '.php'))函数指定的,生成的链接是respond.php?code=,其中code后面的参数就是根据不同的支付方式而不同。Respond.php则根据不同的第三方支付返回的信息进行处理。

  

目标二:开发支付插件(为了便于讲解,再次开发ecshop自带的支付宝接口alipay,我们改名为alipay_test)

搞清楚支付的基本流程,尝试开发支付插件。假如要开发一个alipay_test.php插件。

首先,在语言包里面languages\zh_cn\payment新建一个alipay_test.php文件(这里复制alipay.php),然后修改里面的$LANG的下标,都加上_test,$_LANG['pay_button']可以不修改;

然后,在支付模块includes\modules\payment里面新建一个alipay_test.php,修改模块的基本信息跟语言包,封装一个类alipay_test,并且实现两个方法get_code()和respond();

最后登录后台查看支付方式。

目录
相关文章
|
2月前
|
开发框架 监控 前端开发
多商户商城系统开发步骤功能/稳定版/详细案例/教程需求/源码程序
多商户商城系统开发是一个复杂的过程,涉及多个方面的功能和技术。
|
11月前
|
前端开发 小程序 PHP
淘宝、海外代购系统、代购小程序、APP的开发以及源码PHP前端源码
淘宝、海外代购系统、代购小程序、APP的开发以及源码PHP前端源码
|
12月前
|
小程序 Java 关系型数据库
点餐系统部署文档(2020最新版),java后台部署和微信点餐小程序的部署
点餐系统部署文档(2020最新版),java后台部署和微信点餐小程序的部署
138 0
|
XML 小程序 JavaScript
nodejs实现微信小程序支付功能及相关问题总结
最近使用nodejs作为服务器,搭建了一个微信小程序。其中的微信支付功能是比较复杂的一部分。不过只要我们能掌握微信支付的工作流程,那实现这个功能也不会很难的。下面分享此次微信支付的实现经历。
|
PHP iOS开发 API
thinkphp整合系列之苹果AppStore内购付款的服务器端php验证
这里要讲的就是AppStore内购的服务器端验证;在app中支付的过程那是由IOS程序猿完成的;IOS会把支付凭证发给我们;作为服务器端;我等php需要做的就是对支付结果的验证;thinkp...
1648 0
|
前端开发 测试技术
免费建站系统,JW 页面工厂版本更新了
新版页面工厂灵活的动画交互呈现使您的网站充满活力 动画交互是让你的用户参与你的网站的东西。这让他们不用语言就能交流。你知道他们怎么说一幅画胜过千言万语吗?通过你网站上的互动,它将使一张图片胜过百万字。
|
PHP
使用当面付官方DEMO(PHP)调试沙箱
一,说明:本帖将利用官方提供的demo进行修改成沙箱的环境demo,小伙伴如果测试沙箱报错可以自己下载这个里面的demo进行配置自己的沙箱APPID和公私钥测试即可。截图示例以php版的为例,其他开发语言的配置方法一样。
608 0
|
开发工具
新老版手机网站支付对比
场景  继老版本手机网站支付之后,支付宝在2016年8月份发布了新版手机网站支付接口。新版本手机网站支付接口不仅支持了RSA2签名方法,而且新版本还提供了服务端SDK,包含JAVA、PHP和.NET三语言版本,封装了签名&验签、HTTP接口请求等基础功能。
734 0
|
SQL 弹性计算 PHP
ecshop后台订单自动确认开发详解
image CREATE TABLE `order_auto_confirm` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `order_id` INT(10) UNSIGNED ...
1246 0