搜索
首页php教程php手册修改zen-cart下单和付款流程以防止漏单
修改zen-cart下单和付款流程以防止漏单Jun 13, 2016 am 11:37 AM
下单不能付款修改支付流程第三方网站进入防止

zen-cart进入第三方支付网站后,如果不能正常返回,则会造成客户已付款但后台却无订单数据的尴尬局面。本文就针对该问题给出一种解决方案,希望对被同样问题困扰的同行有所帮助。

用过zen-cart的人都知道,zen-cart中下单步骤是下面这样的(其中[]中的表示不是必须的):

1. 购物车(shopping cart)

2. [货运方式(delivery method)]

3. 支付方式(payment method)

4. 订单确认(confirmation)

5. [第三方网站支付]

6. 订单处理(checkout process)——这一步比较重要,因为会在这里将购物车中的信息写入订单

7. 下单成功(checkout success)

这样的流程在正常情况下是没有任何问题的。但是,从第5步到第6部的过程中,用户可能以为付款成功就直接关闭掉网页了,或者由于网络原因造成不能正常跳转到checkout_process页面,这样造成的后果是很严重的,因为订单不能被正常的创建。

基于上述的分析, 我们希望稍微地改变一下流程,即在支付之前订单已经创建好了,这样就算在支付时不能从第三方支付网站跳转回来,我们也不会存在用户付款成功却在后台没有订单的情况了。经过修改后的蓝图基本是下面这样的:

1. 在checkour_confirmation页面确认订单后,都会直接proccess,并且进入checkour_success页面,可以在这里进入付款页面。如下图所示:

2. 如果当时客户没能付款,也可进入自己的后台对历史订单进行付款。如下图所示:

下面我们就来看看如何一步一步来实现上述的功能。

1. 首先我们需要对现有的支付模块进行一个改造。需要对支付方式的class增加一个字段paynow_action_url,用来表示进行支付的页面url,另外还需要增加一个函数,paynow_button($order_id),来获取支付表单的参数隐藏域代码。

要增加paynow_action_url字段,请在类payment的构造函数中最后加上下面的代码:

if ( (zen_not_null($module)) && (in_array($module.'.php', $this->modules)) && (isset($GLOBALS[$module]->paynow_action_url)) ) {
$this->paynow_action_url = $GLOBALS[$module]->paynow_action_url;
}
要增加paynow_button($order_id)函数,请在payment类的最后一个函数之后加上如下的代码:

function paynow_button($order_id){
if (is_array($this->modules)) {
if (is_object($GLOBALS[$this->selected_module])) {
return $GLOBALS[$this->selected_module]->paynow_button($order_id);
}
}
}
2. 以paypal支付方式为例子,说明如何具体实现。为了不破坏paypal原有的代码,我们将paypal.php文件拷贝一个副本出来,并命名为paypalsimple.php,并对里面的代码做适当的修改。代码如下所示,可以看到,这里去掉了对form_action_url的指定,并给定了paynow_action_url,因为我们希望用户点击“确认订单”后直接进入checkout_process,所以如果不指定form_action_url,那么确认订单的表单就会直接提交到checkout_process页面了,而paynow_action_url就是以前的form_action_url的值。paynow_button函数的实现也很简单,这里只是将原先的process_button()函数的内容剪切过来而已,只不过我们没有使用全局的$order变量,而是使用$order = new order($order_id),来重新构造的一个对象,这样做是为在历史订单中显示pay now按钮做准备的。

  • 共3页:
  • 上一页
  • 1
  • 2
  • 3
  • 下一页
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何更改Windows 11的PIN码如何更改Windows 11的PIN码Dec 23, 2023 pm 04:15 PM

有些朋友设置了pin码,但是由于不好记或者不方便等原因,想要修改,但是不知道win11怎么修改pin码,其实我们只需要进入账户设置的登录选项就可以了。win11怎么修改pin码:第一步,右键底部开始菜单。第二步,打开其中的“设置”第三步,点击左边的“账户”选项。第四步,打开右侧列表的“登录选项”第五步,点击pin右侧“小箭头”展开。第六步,点击下方“更改pin”第七步,在其中输入原pin码,再输入新pin码。输入完成点击“确定”即可完成修改。如果你之前没有pin码,也可以在这个位置新建pin码。

如何更改用户文件夹名称:Win11教程如何更改用户文件夹名称:Win11教程Jan 09, 2024 am 10:34 AM

有些游戏会自动安装到用户文件夹中,而且需要英文文件夹才可以,不过很多朋友不知道win11怎么修改用户文件夹名称,其实我们只要修改用户名就可以了。win11修改用户文件夹名称:第一步,按下键盘“Win+R”组合键。第二步,在其中输入“gpedit.msc”回车打开组策略编辑器。第三步,展开“windows设置”下的“安全设置“第四步,打开“本地策略”中的“安全选项”第五步,双击打开右边的“账户:重命名系统管理员账户”策略。第六步,在下方输入想要修改的文件夹名称再点击“确定”保存即可。修改用户文件夹

win11电源模式修改位置和方法win11电源模式修改位置和方法Dec 30, 2023 pm 05:25 PM

我们在win11系统中,可以通过修改电源模式的方法,来降低我们的电池消耗,或是提高我们的系统性能。设置方法非常简单,只要找到电源选项就可以了,下面就跟着小编一起来看一下具体的操作过程吧。win11在哪里修改电源模式1、首先点击任务栏最左边的按钮,打开开始菜单。2、然后在开始菜单上方搜索并打开“控制面板”3、在控制面板中,可以找到“硬件和声音”4、进入硬件和声音,点击电源选项下的“选择电源计划”5、然后在其中就可以修改电源模式了,可以选择平衡、节能模式或者展开隐藏附加计划,选择高性能模式。

PyCharm背景颜色调整技巧:迅速掌握!PyCharm背景颜色调整技巧:迅速掌握!Feb 03, 2024 am 09:39 AM

快速掌握PyCharm背景颜色的修改技巧,需要具体代码示例近年来,Python语言在程序开发领域愈发流行,而PyCharm作为一款集成开发环境(IDE),被广大开发者所喜爱和使用。在PyCharm中,经常会有一些开发者对IDE的界面进行个性化定制,包括背景颜色的修改。本文将介绍PyCharm背景颜色修改的技巧,并给出具体的代码示例,帮助读者快速掌握这项技能。

win10修改电脑开机密码的简单方法win10修改电脑开机密码的简单方法Jul 16, 2023 pm 05:33 PM

修改电脑开机密码的简单方法是什么?给win10电脑设置一个开机密码可以很好的保护资料隐私安全。不过,有些时候我们处于安全性考虑会设置比较复杂再者是简单的密码,但是想要更改电脑密码,却不知win10怎么修改电脑开机密码,其实电脑开机密码修改方法还是很简单的,下面我们就来看看修改电脑开机密码。win10修改电脑开机密码的简单方法如下:方法一1、进入电脑“搜索”功能搜索“账户”,打开“管理你的账户”。2、在出现的账户界面,左边列表栏找到“登陆选项”,点击选择。3、找到密码,选择点击更改的按钮。4、输入

加速pip源,解决下载速度缓慢的难题加速pip源,解决下载速度缓慢的难题Jan 17, 2024 am 10:18 AM

快速修改pip源,解决下载速度慢的问题,需要具体代码示例导语:在使用Python开发过程中,我们经常需要使用pip来安装各种第三方库。然而,由于网络环境的限制或者默认源的问题,很多时候pip的下载速度会非常慢,给我们的开发带来了不便。因此,本文将介绍如何快速修改pip源,以解决下载速度慢的问题,并提供具体的代码示例。一、问题分析在使用pip下载第三方库时,我

修改win11窗口边角为圆角的指南修改win11窗口边角为圆角的指南Dec 31, 2023 pm 08:35 PM

很多朋友更新好win11系统后,发现win11的界面窗口采用了全新的圆角设计。但是一些人觉得不喜欢这个圆角设计,想要将它修改为曾经的界面,但是却不知道怎么修改,下面就一起来看看吧。win11怎么修改圆角1、win11的圆角设计时内置的系统设置,目前无法修改。2、所以大家如果不喜欢使用win11的圆角设计的话,可以等待微软提供修改的方法。3、如果实在使用起来不习惯,还可以选择退回曾经的win10系统。4、如果大家不知道如何回退的话,可以查看本站提供的教程。5、要是使用上方教程无法进行回退的话,还可

如何更改Windows 10任务栏的颜色如何更改Windows 10任务栏的颜色Jan 01, 2024 pm 09:05 PM

win10任务栏颜色修改起来非常简单,但是很多用户发现设置不了,其实非常的简单,只要在电脑的个性化里选择自己喜爱的颜色就可以了,要是改变不了颜色的注意详细的设置哦。win10任务栏颜色怎么改第一步:右键桌面——点击个性化第二步:颜色区域自定义第三步:选择喜欢的颜色PS:如果你无法改变颜色,可以点击颜色->选择颜色->自定义->默认windows模式,选择深色即可。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中