【问题标题】:magento: "there was an error processing your order" when trying to place an order with authorize.netmagento:尝试使用 authorize.net 下订单时“处理您的订单时出错”
【发布时间】:2013-06-19 18:08:15
【问题描述】:

我最近将我的 magento 系统从 1.4.0.1 升级到了 1.7.0.2。

错误

“处理您的订单时出错”

我设置付款方式没有问题,但是当我尝试使用 authorize.net 选项时,我收到一条弹出消息,提示“处理您的订单时出错”。订单未显示在后端,但付款已处理,我会收到一封包含订单号的确认电子邮件。

我检查了authorize.net,看看付款是否已通过,信用卡是否有效,并且似乎没有问题,它取消了问题可能是因为配置错误的选项。

编辑:

在日志中找到了这个:

2013-06-22T21:45:48+00:00 ERR (3):
带有消息“SQLSTATE [23000] 的异常“PDOException”:违反完整性约束:1062 /home/bellater/public_html/lib/Zend/Db/Statement/Pdo.php:228 中的键“PRIMARY”的重复条目“1” /p>

堆栈跟踪:
#0 /home/bellater/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /home/bellater/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/bellater/public_html/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /home/bellater/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /home/bellater/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO lo...', Array)
\#5 /home/bellater/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO
lo...', Array)
#6 /home/bellater/public_html/lib/Zend/Db/Adapter/Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `lo...', Array)
#7 /home/bellater/public_html/app/code/core/Mage/Log/Model/Resource/Visitor.php(261): Zend_Db_Adapter_Abstract->insert('log_quote', Array)
#8 /home/bellater/public_html/app/code/core/Mage/Log/Model/Resource/Visitor.php(116): Mage_Log_Model_Resource_Visitor->_saveQuoteInfo(Object(Mage_Log_Model_Visitor))
#9 /home/bellater/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(463): Mage_Log_Model_Resource_Visitor->_afterSave(Object(Mage_Log_Model_Visitor))
#10 /home/bellater/public_html/app/code/core/Mage/Core/Model/Abstract.php(318):Mage_Core_Model_Resource_Db_Abstract->save(Object(Mage_Log_Model_Visitor))
#11 /home/bellater/public_html/app/code/core/Mage/Log/Model/Visitor.php(189): Mage_Core_Model_Abstract->save()
#12 /home/bellater/public_html/app/code/core/Mage/Core/Model/App.php(1338): Mage_Log_Model_Visitor->saveByRequest(Object(Varien_Event_Observer))
#13 /home/bellater/public_html/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Log_Model_Visitor), 'saveByRequest', Object(Varien_Event_Observer))
#14 /home/bellater/public_html/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('controller_acti...', Array)
#15 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(552): Mage::dispatchEvent('controller_acti...', Array)
#16 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Front/Action.php(75): Mage_Core_Controller_Varien_Action->postDispatch()
#17 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(423): Mage_Core_Controller_Front_Action->postDispatch()
#18 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('add')
#19 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#20 /home/bellater/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#21 /home/bellater/public_html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#22 /home/bellater/public_html/index.php(87): Mage::run('', 'store') #23 {主}

下一个异常“Zend_Db_Statement_Exception”与消息“SQLSTATE[23000]:完整性约束违规:1062 在 /home/bellater/public_html/lib/Zend/Db/Statement/Pdo 中,密钥“PRIMARY”的条目“1”重复。 php:234

堆栈跟踪:
#0 /home/bellater/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/bellater/public_html/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /home/bellater/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /home/bellater/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO lo...', Array)
\#4 /home/bellater/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO
lo...', Array)
#5 /home/bellater/public_html/lib/Zend/Db/Adapter/Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `lo...', Array)
#6 /home/bellater/public_html/app/code/core/Mage/Log/Model/Resource/Visitor.php(261): Zend_Db_Adapter_Abstract->insert('log_quote', Array)
#7 /home/bellater/public_html/app/code/core/Mage/Log/Model/Resource/Visitor.php(116): Mage_Log_Model_Resource_Visitor->_saveQuoteInfo(Object(Mage_Log_Model_Visitor))
#8 /home/bellater/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(463): Mage_Log_Model_Resource_Visitor->_afterSave(Object(Mage_Log_Model_Visitor))
#9 /home/bellater/public_html/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Resource_Db_Abstract->save(Object(Mage_Log_Model_Visitor))
#10 /home/bellater/public_html/app/code/core/Mage/Log/Model/Visitor.php(189): Mage_Core_Model_Abstract->save()
#11 /home/bellater/public_html/app/code/core/Mage/Core/Model/App.php(1338):Mage_Log_Model_Visitor->saveByRequest(Object(Varien_Event_Observer))
#12 /home/bellater/public_html/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Log_Model_Visitor), 'saveByRequest', Object(Varien_Event_Observer))
#13 /home/bellater/public_html/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('controller_acti...', Array)
#14 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(552): Mage::dispatchEvent('controller_acti...', Array)
#15 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Front/Action.php(75): Mage_Core_Controller_Varien_Action->postDispatch()
#16 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(423): Mage_Core_Controller_Front_Action->postDispatch()
#17 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('add')
#18 /home/bellater/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#19 /home/bellater/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#20 /home/bellater/public_html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#21 /home/bellater/public_html/index.php(87): Mage::run('', 'store')
#22 {主}

可能是什么问题?

【问题讨论】:

    标签: php magento magento-1.7


    【解决方案1】:

    这意味着在发送支付 API 请求之后,但在您的 Magento 系统中创建订单之前,出现了 Magento 或 PHP 错误。 Magento 的代码库中有三个地方使用该措辞表示异常。

    app/code/core/Mage/Authorizenet/controllers/Directpost/PaymentController.php
    94:            $result['error_msg'] = $this->__('There was an error processing your order. Please contact us or try again later.');
    
    catch (Exception $e) {
        Mage::logException($e);
        $result['success'] = 0;
        $result['error_msg'] = $this->__('There was an error processing your order. Please contact us or try again later.');
    }
    
    app/code/core/Mage/Checkout/controllers/OnepageController.php
    553:            $result['error_messages'] = $this->__('There was an error processing your order. Please contact us or try again later.');
    
    } catch (Exception $e) {
        Mage::logException($e);
        Mage::helper('checkout')->sendPaymentFailedEmail($this->getOnepage()->getQuote(), $e->getMessage());
        $result['success']  = false;
        $result['error']    = true;
        $result['error_messages'] = $this->__('There was an error processing your order. Please contact us or try again later.');
    }    
    
    app/code/core/Mage/Paypal/Model/Api/Nvp.php
    987:            Mage::throwException(Mage::helper('paypal')->__('There was an error processing your order. Please contact us or try again later.'));
    
    if (!$this->_validateResponse($methodName, $response)) {
        Mage::logException(new Exception(
            Mage::helper('paypal')->__("PayPal response hasn't required fields.")
        ));
        Mage::throwException(Mage::helper('paypal')->__('There was an error processing your order. Please contact us or try again later.'));
    }
    

    如您所见,在每种情况下,Magento 都会在重新抛出异常之前记录异常。这意味着错误将被记录到您的var/log/exception.log(假设您已登录)。如果打开日志记录对您来说太多,您可以添加临时调试代码。类似的东西

    var_dump($e->getMessage());
    exit;
    

    在异常块中。 (由于这与 PayPal 无关,我猜测错误消息的第三次使用不是您所看到的)。

    当 Magento 代码捕获非 Magento 异常时,它通常使用通用错误消息向最终用户隐藏(可能是敏感的)PHP 系统信息。

    【讨论】:

    • 非常感谢!我现在已经编辑了我的帖子,所以它包含日志中的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2014-10-30
    相关资源
    最近更新 更多