Magento模板Paypal付款不成功返回清空购物车产品【解决方案】

Magento模板Paypal付款不成功返回清空购物车产品【解决方案】

今天我有个客户要集成l了paypal账户但在使用是遇到了问题遇到了这个问题。
当我们使用第三方支付工具Gateway如paypal支付的时候,如果用户付款不成功或者取消了订单再返回网站时,发现购物车里面的产品已经被清空了,如果是客户主动cancel的还好,但是如果是操作失误的原因而未能付款,客户会非常抓狂。

通过下面这个方法可以解决这个问题,Magento通常的方法是如果判定为第三方的gateway
作为支付工具的话直接save quote

 

$this->getOnepage()->getQuote()->save();

 

我们的应对方法是,判定如果页面转向第三方支付gateway 如 paypal则不保存
quote,这样就不会清空shopping cart

app/code/core/Mage/Checkout/controllers/OnepageController.php 

 

找到这段代码

 

$this->getOnepage()->getQuote()->save();

   
   

   
    if (isset($redirectUrl))
{

   
     
  $result[‘redirect‘] =
$redirectUrl;

   
    }

 

改成

 

//$this->getOnepage()->getQuote()->save();

   
   

   
    if (isset($redirectUrl))
{

   
     
  $result[‘redirect‘] =
$redirectUrl;

   
    }

   
    else {

   
     
 
$this->getOnepage()->getQuote()->save();

   
    }

 

替换原来的文件即可

时间: 2024-10-31 13:15:01

Magento模板Paypal付款不成功返回清空购物车产品【解决方案】的相关文章

TCP socket的accept/connect成功返回可是对端却不辞而别

在编写TCP程序的时候,对于服务端,accept成功返回的时候,就一定意味着某个客户端已经成功建立了TCP连接吗?对于客户端,connect成功返回就一定意味着自己成功连接上服务端了么?远远不是!       accept/connect这两个socket调用完全是基于TCP三次握手状态机的,即只要本地TCP状态机进入ESTABLISH状态,就会成功返回.而我们知道,TCP的三次握手本身就是一次权衡的结果.为什么不是四次握手呢?为什么不是五次呢?...问题可以一直这么问下去.       事实上

magento模板 -- 如何安装magento模板

在magento下面安装模板首先要了解magento的模板结构: 每个magento模板都包含如下的类似结构: --app/design/frontend/default/[模板名称] -------layout-------template-------locale --skin/frontend/default/[模板名称] -------js-------css-------images 所以安装magento模板,实际上就是将模板的相关文件存放到相应模板目录.之后进入到magento后台

多个网络请求成功返回再执行另外任务的思路分析(iOS)

前言 今天我们来讨论一个经常出现的需求场景,也是一个老话题.在开发中我们往往会遇到需要进行多个网络请求,并且需要多个网络请求成功返回后再做其他事的场景.比如同一个界面显示的内容需要用到两个网络接口,而需求又希望成功返回两个接口的数据再进行页面展示:又比如喜欢挖坑的后台同学就只提供了返回一条数据的接口,但需求却希望我们在一个界面同时显示几条数据的情况. 正题 我们不讨论什么执行完一个请求再执行一个这种串行的低效率方法,以下分析都是在异步的基础上进行的.废话少说,直奔正题!先上个网络请求的模拟代码.

ajax请求成功返回200,但还是进入error事件

ajax请求成功返回200,但还是进入error事件. 出错原因: 前台dataType:"json",而后台返回的数据不符合json规范. 解决方案有两种: 1.前台:让ajax数据返回类型为text而不是json:即dataType: "text"; 2.后台:修改后台返回值 原文地址:https://www.cnblogs.com/Fourteen-Y/p/11307392.html

JS 页面离开事件 页面关闭事件,实现登录成功返回上个页面

壹 ? 引 登录成功后跳转到上一个页面是很常见的需求,比如在天猫添加购物车时网站会效验用户登录情况,若未登录则跳转登录,登录成功返回到先前的商品页. 这个功能实现并不困难,但因为我的奇思妙想让我先后了解了window.history对象以及窗口关闭/离开事件onbeforeunload,那么让这个需求做个引子,让我们开始一次有趣的探索之旅. 贰 ? 有趣的onbeforeunload 不管是从什么页面进入的登录页,总是得先有个离开页面的过程,那我在离开前一个页面时先记住页面,登录成功调回来不就好

ecshop退出登录会清空购物车的bug优化,最完美解决方法

ecshop退出登陆后,会清空购物车,大家都应该知道有这样的勉强算bug的问题. 网上类似的教程相当多,但都有问题,说句不好听的,算是引新手入歧途! 总结网上方法如下: 1.修改init.php,把sess_id绑定ip的.老杨点评:各种紊乱不解释. 2.修改cls_session.php,让user_id不为0的购物车商品在退出时不删除,修改lib_main.php,将购物车中sess_id换成新的session_id. 老杨点评:算是到了点子上的改法,但是在不同设置或浏览器访问时,会照成其它

调用odata返回406 not acceptable解决方案

调用odata返回406 not acceptable解决方案 在web api项目中使用odata时,总是返回406 not acceptable 根据http://stackoverflow.com/questions/26676879/webapi-and-odatacontroller-return-406-not-available和http://stackoverflow.com/questions/26676879/webapi-and-odatacontroller-return

EF:The provider 程序不能返回a ProviderManifest 实例 - (解决方案)

问题原因:首先这个问题主要是出于的平台:我用的是VS2012 ,最先用的是EF6.0 用CODEFIRST创建了数据库,但是在自动生成相关的视图(用EF6关联,然后生成VIEW下的增删改)时候出现了问题.又换成了EF5. 最近用EF再改数据库模型的时候有出现:The provider 程序不能返回a ProviderManifest 实例 有改回了EF6.0. 在网上查了资料,这方面资料并不多.在外国网站还看到让人失望的消息,说这是大毛病. 我的解决方案目前只有一个,要改数据库用EF5,要生成视

magento后台paypal设置

如何在magento后台设置paypal呢? 这边把整理的简单跟大家分享一下. 1.system->config-paypel1.1 Merchant Country 设置国家1.2 Email Associated with PayPal 设置账号1.3 Select a PayPal Solution1.4选用Website Payments Standard – PayPal processes all of your orders and you get paid ,前面打钩,其他的勾都