我只是有点好奇。我可以做些什么来使支持网关的调试体验更容易一些。退房时,它总是进行ajax调用。所以我无法通过print_r()或echo来查看进展情况。有没有更简单的方法来做到这一点而不会破坏任何东西。是否可以禁用ajax调用并定期发布。
答案 0 :(得分:6)
简短回答是:为非破坏性调试执行此操作。
Mage::log("Logging a message");
接下来是答案。
我还没有完成大量的payement网关调试,但许多支付网关都有“调试”设置
System -> Configuration -> Sales -> Payment Methods
检查authorize.net选项组以获取此示例。如果将其翻转到“是”位置,调试信息将开始喷射到日志文件。这假设您已在
中开启登录System -> Configuration -> Advanced -> Developer -> Log Settings
您可能需要自己在
中创建日志文件var/log/system.log
var/log/exception.log
确保您的Web服务器可以写入这些文件。
您也可以使用静态
自行登录这些文件Mage::log("Logging a message");
方法调用。
最后,如果您的支付网关没有调试设置,您可以随时伪造它。所有支付模型(应该)都继承自以下类
class Mage_Payment_Model_Method_Abstract
app/code/core/Mage/Payment/Model/Method/Abstract.php
此类有一个方法可确定调试是打开还是关闭
/**
* Define if debugging is enabled
*
* @return bool
*/
public function getDebugFlag()
{
return $this->getConfigData('debug');
}
如果没有可用的调试配置标志,您可以暂时将此方法更改为始终返回true
public function getDebugFlag()
{
return 1;
//return $this->getConfigData('debug');
}
但是,我不确定基类的调试程度(意味着如果配置中没有调试标志,可能是因为支付网关模型本身没有调试)。值得探索。
祝你好运!答案 1 :(得分:0)
对于AJAX,您可能会发现FirePHP for Magento有帮助。
对于所有情况,只要您记得在系统>中首先打开它,就可以使用Mage::log()
。配置>显影剂。它的工作方式与print_r
类似,只是输出到/var/log/system.log
。
我经常tailf
该文件并且在很多地方都有这样的代码:
Mage::log(__METHOD__); // prints My_Module_Model_Class::method
Mage::log($object->debug()); // $object is any model or block descending from Varien_Object