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 express checkout?
Magento + Paypal - 订单状态停留在“付款审查”