Magento 中的 PayPal 订单自动取消

Posted

技术标签:

【中文标题】Magento 中的 PayPal 订单自动取消【英文标题】:PayPal Orders Cancelling Automatically In Magento 【发布时间】:2011-06-01 14:44:01 【问题描述】:

当有人使用 PayPal Express Checkout 下订单时,我在 Magento 中遇到了这个奇怪的问题。每隔一段时间就会有一个订单进来,然后几秒钟后订单就会被取消。留下的评论如下:

Canceled order online. Amount: $59.23. Transaction ID: "XXXXXXXXXXXXXXXXX-void".

(以防万一,ID 被填空)

现在我们的客户发誓他们没有取消订单,当我们询问 PayPal 时,他们说这是我们这边的问题。

有人听说过这个问题吗?您知道解决方法吗?我正在运行 Magento Enterprise 1.8。

【问题讨论】:

有没有可能在 Magento 触发中内置欺诈保护? PayPal 的 PayFlow Pro 产品将接受地址/邮编/CSC 不匹配的付款,让您决定是否取消付款。 我不熟悉 Magento 中的任何内置欺诈保护,但这是另一个值得探索的途径。 我知道 IPN 有时会做一些有趣的事情。您可以检查设置状态的模块。例如,当您在 magento (1.4) 中编辑订单时,默认情况下它会取消贝宝交易。 【参考方案1】:

我遇到了类似的问题。我追踪到那些使用 PayPal Express 结账但没有 PayPal 帐户的用户。问题和修复出现在这里:

http://www.magentocommerce.com/bug-tracking/issue/?issue=9894

所有用户都没有遇到错误的面孔可能与有/没有PayPal帐户状态有关。


将 Magento 与 PayPal Express(非 PayPal 标准)集成,用户可以购买我们商店的产品。

但是,有两种不同的情况: 1) 如果客户有 Paypal 帐户,他将能够顺利完成购买过程。 2) 但是,如果客户没有 Paypal 帐户,或者他不想使用它,并且更喜欢使用信用卡购买产品而不使用 PayPal 凭据,则该过程将完成以下操作错误:

“目前无法使用您的贝宝帐户处理此付款 时间”。

问题是卖家会收到钱,但客户的想法正好相反。

此问题已与 PayPal 支持团队讨论并确认。

真正的问题是在购买过程中,“DoExpressCheckoutPayment”PayPal 的函数被调用。但是,当购买过程结束并出现此错误时,名为“successpageredirectrequested”的参数将设置为“true”。此标志指示您是否需要在完成交易后将客户重定向回 PayPal。但是,这是一种过时的 PayPal 行为,不应使用。

由于 Magento 正在使用此参数的功能,当他尝试再次重定向到 PayPal 时(这就是设置为 true 的“successpageredirectrequested”正在执行的操作)PayPal 将返回此错误。

我们可以在 Magento 的源代码中稍作修改,app/code/core/Mage/Paypal/Controller/Express/Abstract.php

只需更改函数“public function placeOrderAction()”。 在此函数中查找以下代码:

// redirect if PayPal specified some URL (for example, to Giropay bank)
$url = $this->_checkout->getRedirectUrl();
if ($url) 
$this->getResponse()->setRedirect($url);
return;

$this->_initToken(false); // no need in token anymore
$this->_redirect(?checkout/onepage/success?);
return;

我们只需要注释“if”,就像这样:

//if ($url) 
//$this->getResponse()->setRedirect($url);
// return;
//

这足以解决问题。但是,这不是当前的修复,应该由 Magento 的程序员审查,以便在 Magento 的新版本中修复它。

【讨论】:

不管怎样,我刚刚在 Magento 1.5.1 中遇到了这个问题,并注释掉了 if 语句修复了它。

以上是关于Magento 中的 PayPal 订单自动取消的主要内容,如果未能解决你的问题,请参考以下文章

Magento 商店中的 Paypal IPN 错误

Magento 中的 Paypal 错误 #10602

如何在magento中将订单详细信息传递给paypal express checkout?

Magento + Paypal - 订单状态停留在“付款审查”

即使 PayPal 付款失败,Magento 订单状态也会更新为“处理中”

PayPal 订单在 Magento 中设置为“可疑欺诈”状态