gpt4 book ai didi

php - 即使 PayPal 付款失败,Magento 订单状态也会更新为 "Processing"

转载 作者:可可西里 更新时间:2023-11-01 00:59:44 45 4
gpt4 key购买 nike

我对 Magento 1.9 和 PayPal 支付方式有疑问。当客户使用 PayPal 付款并进行付款审核时,订单状态将设置为正确的“付款审核”。

但是,问题是,在付款实际失败的情况下(即客户账户中的资金不足),Magento 会将订单状态更新为“处理中”并且客户最终会获得免费商品。

我需要做的是,当调用此类“失败”IPN 时,我需要为该特定订单设置“已关闭”状态。我花了 4 个多小时来找到解决方案,但没有找到任何合适的解决方案。

如果有人对此有任何修复,请与我分享。

enter image description here

PayPal IPN 响应变量:

        [payer_email] => xxx@xxx.com
[payer_id] => xxxxxxxxxxxx
[payer_status] => unverified
[payment_date] => 14:33:46 Jun 08, 2015 PDT
[payment_gross] => 43.24
[payment_status] => Failed
[payment_type] => echeck
[protection_eligibility] => Ineligible

提前致谢。

最佳答案

我们遇到了同样的问题,并找到了它的根本原因。它似乎是 Magento Bug Tracker 上的未解决问题。

参见 https://www.magentocommerce.com/bug-tracking/issue/index/id/1041

您可以通过重写 Ipn 模型来修复它,如下所示:

<?php
/**
* Rewrite the core fix an issue with IPN notifications of "failed" payments
*/
class Magento_CoreFixes_Model_Paypal_Ipn extends Mage_Paypal_Model_Ipn
{

/**
* @see https://www.magentocommerce.com/bug-tracking/issue/index/id/1041
*/
protected function _registerPaymentFailure()
{
$this->_importPaymentInformation();

// This is the fix allowing order to get the cancelled status
foreach ($this->_order->getInvoiceCollection() as $invoice){
$invoice->cancel()->save();
}

$this->_order
->registerCancellation($this->_createIpnComment(''), false)
->save();
}
}

希望对您有所帮助!

关于php - 即使 PayPal 付款失败,Magento 订单状态也会更新为 "Processing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936587/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com