Magento 1.9.3未捕获错误:在boolean Payment/Model/Observer.php上调用成员函数getMethodInstance()

Magento 1.9.3未捕获错误:在boolean Payment/Model/Observer.php上调用成员函数getMethodInstance(),php,magento-1.9,Php,Magento 1.9,我正在使用Magento 1.9.3版和CCAvenue的支付网关 结帐并成功付款时,从CCA场地返回网站时。我收到此错误,而不是成功付款: Fatal error: Uncaught Error: Call to a member function getMethodInstance() on boolean in app/code/core/Mage/Payment/Model/Observer.php:46 Stack trace: #0 app/code/core/Mage/Core/M

我正在使用Magento 1.9.3版和CCAvenue的支付网关

结帐并成功付款时,从CCA场地返回网站时。我收到此错误,而不是成功付款:

Fatal error: Uncaught Error: Call to a member function getMethodInstance() on boolean in app/code/core/Mage/Payment/Model/Observer.php:46 Stack trace:
#0 app/code/core/Mage/Core/Model/App.php(1358): Mage_Payment_Model_Observer->salesOrderBeforeSave(Object(Varien_Event_Observer))
#1 app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Payment_Model_Observer), 'salesOrderBefor...', Object(Varien_Event_Observer))
#2 app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('sales_order_sav...', Array)
#3 app/code/core/Mage/Core/Model/Abstract.php(391): Mage::dispatchEvent('sales_order_sav...', Array)
#4 app/code/core/Mage/Sales/Model/Order.php(2117): Mage_Core_Model_Abstract->_beforeSave()
#5 app/code/core/Mage/Core/Model/Abstract.php(316): Mage_Sales_Model_Order-> in app/code/core/Mage/Payment/Model/Observer.php on line 46
到目前为止,我在谷歌上搜索解决方案,并尝试了以下几种方法:

$payment=$order->getPayment();
如果(!isset($payment)){
返回$this->_重定向('checkout/cart');
}
使用此解决方案,我可以返回到收银台/购物车,但带有无效访问的消息。鉴于订单已成功完成,且付款已在所有情况下扣除

我也检查了日志,但没有任何可以跟踪和纠正的内容,仅供参考,以下是与之相关的日志:

Stack trace:
#0 app/code/core/Mage/Core/Model/App.php(1358): Mage_Payment_Model_Observer->salesOrderBeforeSave(Object(Varien_Event_Observer))
#1 app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Payment_Model_Observer), 'salesOrderBefor...', Object(Varien_Event_Observer))
#2 app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('sales_order_sav...', Array)
#3 app/code/core/Mage/Core/Model/Abstract.php(391): Mage::dispatchEvent('sales_order_sav...', Array)
#4 app/code/core/Mage/Sales/Model/Order.php(2117): Mage_Core_Model_Abstract->_beforeSave()
#5 app/code/core/Mage/Core/Model/Abstract.php(316): Mage_Sales_Model_Order-> in app/code/core/Mage/Payment/Model/Observer.php on line 46

当order对象未正确加载时会发生这种情况。 在这种情况下,在加载order对象时,会话中的“order id”丢失

CcavenuepayController.php中,响应处理程序函数

寻找

$order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
取代

$order = Mage::getModel('sales/order')->loadByIncrementId($response_array['order_id']);
我们正在用CCA场馆响应订单id替换会话订单id