如何开发ecshop支付插件

 我来答
huanglenzhi
推荐于2017-11-29 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517167
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  目标一:搞懂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();
  最后登录后台查看支付方式。
巢寒运向雪
2019-03-22 · TA获得超过3760个赞
知道大有可为答主
回答量:3028
采纳率:30%
帮助的人:181万
展开全部
ec的支付流程应该是这样的,后台安装支付插件之后,会写入数据库,模版会读取数据库并显示。会员填写充值的金额之后,点击确定,后台会提醒有人充值。客户网银充值完毕后,会回调本站的一个页面,并修改充值的状态为完成。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式