【发布时间】:2013-10-02 16:31:24
【问题描述】:
当我尝试将付款过帐到 authorize.net 时,出现“网关错误:无法读取响应或响应为空”。 Authorize.net 看不到任何通过,主机提供商说他们没有问题。
- 我正在使用 Authorize.net 支付类型
- 我已在默认、网站和商店视图中验证了我的 API 登录和 trans ID
- 我已经安装了 cURL SSL
- 我已验证没有防火墙阻止连接。
- 我不在测试模式下
- 调试已开启,结果如下。
下面是 exception.log 文件的输出
2013-09-26T15:26:24+00:00 ERR (3):
exception 'Mage_Core_Exception' with message 'Gateway error: Unable to read response, or response is empty' in /app/Mage.php:595
Stack trace:
#0 /app/code/core/Mage/Paygate/Model/Authorizenet.php(1596): Mage::throwException('Gateway error: ...')
#1 /app/code/core/Mage/Paygate/Model/Authorizenet.php(594): Mage_Paygate_Model_Authorizenet->_postRequest(Object(Mage_Paygate_Model_Authorizenet_Request))
#2 /app/code/core/Mage/Paygate/Model/Authorizenet.php(436): Mage_Paygate_Model_Authorizenet->_place(Object(Strattas_Authnetcim_Model_Order_Payment), '44.53', 'AUTH_CAPTURE')
#3 /app/code/core/Mage/Sales/Model/Order/Payment.php(408): Mage_Paygate_Model_Authorizenet->capture(Object(Strattas_Authnetcim_Model_Order_Payment), '44.53')
#4 /app/code/core/Mage/Sales/Model/Order/Invoice.php(385): Mage_Sales_Model_Order_Payment->capture(Object(Mage_Sales_Model_Order_Invoice))
#5 /app/code/core/Mage/Sales/Model/Order/Payment.php(569): Mage_Sales_Model_Order_Invoice->capture()
#6 /app/code/core/Mage/Sales/Model/Order/Payment.php(375): Mage_Sales_Model_Order_Payment->_invoice()
#7 /home/morrell/public_html/app/code/core/Mage/Sales/Model/Order/Payment.php(317): Mage_Sales_Model_Order_Payment->capture(NULL)
#8 /app/code/core/Mage/Sales/Model/Order.php(877): Mage_Sales_Model_Order_Payment->place()
#9 /app/code/core/Mage/Sales/Model/Order.php(1406): Mage_Sales_Model_Order->_placePayment()
#10 [internal function]: Mage_Sales_Model_Order->place()
#11 /app/code/core/Mage/Core/Model/Resource/Transaction.php(105): call_user_func(Array)
#12 /app/code/core/Mage/Core/Model/Resource/Transaction.php(159): Mage_Core_Model_Resource_Transaction->_runCallbacks()
#13 /app/code/core/Mage/Sales/Model/Service/Quote.php(189): Mage_Core_Model_Resource_Transaction->save()
#14 /app/code/core/Mage/Sales/Model/Service/Quote.php(249): Mage_Sales_Model_Service_Quote->submitOrder()
#15 /home/morrell/public_html/app/code/core/Mage/Checkout/Model/Type/Onepage.php(777): Mage_Sales_Model_Service_Quote->submitAll()
#16 /app/code/core/Mage/Checkout/controllers/OnepageController.php(567): Mage_Checkout_Model_Type_Onepage->saveOrder()
#17 /app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Checkout_OnepageController->saveOrderAction()
#18 /home/morrell/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder')
#19 /app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#20 /app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#21 /app/Mage.php(687): Mage_Core_Model_App->run(Array)
#22 /index.php(87): Mage::run('', 'store')
#23 {main}
【问题讨论】:
-
您是否启用了测试模式?
-
您确定您的网关 URL 是正确的?制作:
https://secure.authorize.net/gateway/transact.dll沙盒:https://test.authorize.net/gateway/transact.dll -
进入您的 Authorizenet.php,并在
Mage::throwException($this->_wrapGatewayError($e->getMessage()));正上方的 _postRequest 函数中,添加这一行:Mage::log($debugData);。您还可以找到 $client->request() 的函数并在那里添加一些日志记录。 -
或者,您可以在浏览器中使用开发者工具查看发布的数据。点击 F12,转到 Net 选项卡并展开 authorize.net 网关 URL。查找 Post 并查看缺少哪些数据。
标签: php magento authorize.net