- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
修改zen-cart下单和付款流程以防止漏单文档
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按钮做准备的。
paypalsimple.php ?php /** * @package paypalsimple payment module * @copyright Copyright 2003-2006 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license /licen
您可能关注的文档
- 临床试验相关统计知识教材 第3讲.ppt
- 临床医学实践技能培训课件.ppt
- 临床试验相关统计知识教材 第四讲 假设检验的一般步骤.ppt
- 临床试验相关统计知识教材--医学统计学绪论.ppt
- 临床试验相关统计知识教材--方差分析.ppt
- 临床试验相关统计知识教材第十四章 数值变量的统计描述.doc
- 临床试验相关统计知识教材--统计图表.ppt
- 为你讲述会计教材更新的“背后”故事.doc
- 主导产业的选择指标.ppt
- 主题思想识别.ppt
- Unit 1 Festivals and Celebrations Reading and thinking 教学设计-2023-2024学年高中英语人教版(2019)必修第三册.docx
- 如何制作教学设计(教学设计)教师教学设计制作培训.docx
- 第1章 集合与常用逻辑用语 高考强化2024-2025学年新教材高中数学必修1同步教学设计 (人教A版).docx
- 2.1 认识地球——经线与经度 教学设计-2023-2024学年七年级地理上学期湘教版.docx
- 4.5 设计舞台灯光秀 教学设计 2024-2025学年北师大版物理八年级上册.docx
- 第28讲 土壤的成分(同步教学设计)-2023-2024学年八年级科学下册同步精品课堂(浙教版).docx
- 第2单元 第9课 宋代经济的发展2023-2024学年七年级下册历史课时作业教学设计.docx
- 2024年广东省佛山市南海区学业水平考试历史(讲评教学设计).docx
- 语文园地二(教学教学设计) 一年级语文上册同步高效课堂系列(统编版.2024秋).docx
- 《两位数乘两位数(3)》说课(教学设计)-2023-2024学年三年级下册数学西师大版.docx
文档评论(0)