我在magento中使用paypal集成时出现问题。 如果我选择paypal标准支付并确认订单,我正确地重定向到paypal网站付款,但如果我按下浏览器上的后退按钮我被重定向到/ checkout / cart(这是空的)在我的后端我的订单是放置并处于PENDING状态(它未显示在客户订单列表中)...... 这是因为订单是在付款处理之前下达的...... 在OnepageController.php中,saveOrderAction方法我可以看到
$this->getOnepage()->getQuote()->save();
/**
* when there is redirect to third party, we don't want to save order yet.
* we will save the order in return action.
*/
if (isset($redirectUrl)) {
$result['redirect'] = $redirectUrl;
}
这是什么意思?这正是我想要的“不想保存订单......”,不幸的是之前几行......
$this->getOnepage()->saveOrder();
$redirectUrl = $this->getOnepage()->getCheckout()->getRedirectUrl();
订单已经放好......
我讨厌编辑核心文件,但我试图对上面的行进行评论,但是一个例外情况告诉我订单信息在paypal模块本身内部使用(Standard.php文件方法getStandardCheckoutFormFields)。所以我不能轻易修改核心文件.... 我错过了什么?
非常感谢,请原谅我糟糕的英语。
答案 0 :(得分:0)
您可以将PayPal快速结账用于此目的。它按照你想要的方式工作。
答案 1 :(得分:0)
我处理与你完全相同的问题。
现在我想在我的模块中重写onePage Model和saveOrder动作。 我想的是删除会话被清除的部分,并在收到付款方式响应后向观察者发送事件。 不知道它是否会起作用。