我只是有点好奇。我可以做些什么来让我的支付网关调试体验更容易一些。在 checkout 时,它总是执行 ajax 调用。所以我无法通过 print_r() 或 echo 来查看进度。有没有一种更简单的方法可以在不破坏任何东西的情况下做到这一点。是否可以禁用 ajax 调用并定期发布。
最佳答案
简短的回答是:这样做是为了进行非破坏性调试。
Mage::log("Logging a message");
下面是长答案。
我没有做过大量的支付网关调试,但是很多支付网关在
中都有“调试”设置System -> Configuration -> Sales -> Payment Methods
查看 authorize.net 选项组以获得这方面的示例。如果将其翻转到"is"位置,调试信息将开始涌入日志文件。这假设您已在
中打开登录System -> Configuration -> Advanced -> Developer -> Log Settings
您可能需要自己在
中创建日志文件var/log/system.log
var/log/exception.log
确保这些文件可由您的网络服务器写入。
你也可以自己用static登录到这些文件
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');
}
但是,我不确定基类进行了多少调试(这意味着如果配置中没有调试标志,那可能是因为支付网关模型本身没有进行调试)。不过值得探索。
祝你好运!
关于php - 如何调试 magento 支付网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4402330/