Magento 在贝宝付款前下订单

Posted

技术标签:

【中文标题】Magento 在贝宝付款前下订单【英文标题】:Magento placing order before paypal payment 【发布时间】:2015-01-19 20:53:54 【问题描述】:

我在 magento 中的 paypal 集成有问题。 如果我选择贝宝标准付款并确认订单,我会正确重定向到贝宝网站进行付款,但如果我按浏览器上的后退按钮,我会被重定向到 /checkout/cart (即为空)并且在我的后端我的订单是已放置并处于待处理状态(未显示在客户订单列表中)... 发生这种情况是因为订单是在付款处理之前下达的...... 在 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)。所以我不能轻易修改核心文件.... 我错过了什么?

非常感谢,原谅我的英语不好。

【问题讨论】:

【参考方案1】:

您可以为此目的使用 PayPal 快速结帐。它可以按照您想要的方式工作。

【讨论】:

【参考方案2】:

我正在处理与你完全相同的问题。

现在我正在考虑在我的模块中重写 onePage 模型和 saveOrder 操作。 我想的是删除会话被清除的部分,并在收到付款方式响应后向观察者发出事件。 不知道它是否会起作用,但很好。

【讨论】:

以上是关于Magento 在贝宝付款前下订单的主要内容,如果未能解决你的问题,请参考以下文章

在magento上拆分付款流程?

Magento Paypal 下订单但重定向不正确

贝宝快递结账 |错误的订单 ID:“x”

Magento 中的 Paypal 状态

贤者支付贝宝示例

如何在magento中使用付款方式取消订单