我使用的是magento 1.3.1。在使用信用卡付款时,我收到了一个名为“未定义”的javascript警报。我正在使用ANZ作为支付网关。这笔钱被扣除了。但是没有反映在管理面板中。有趣的是,当我使用PayPal付款时,它是工作得很好。
请告诉我如何解决这个问题?
答案 0 :(得分:3)
错误是由AJAX响应未返回有效的JSON引起的。像Alan建议的那样获取类似Firebug或Chrome的内容,并观看网络视图,以便在您逐步检查时查看正在进行的AJAX请求。在saveOrder
(最后一步,你得到错误)检查它的内容,而不是JSON我打赌你会看到PHP错误和堆栈跟踪。这是问题出在何处的线索,但如果您无法理解,请将其添加到您的问题中。
逻辑上,在ANZ收取信用卡之后但在Magento将交易提交到其数据库之前,必须发生错误,因为发生错误会导致事务回滚。
要解决此问题,您应该考虑联系ANZ eGate(Fontis)的作者并在调试时寻求帮助。
答案 1 :(得分:2)
这是一个javascript警报,对吗?如果是的话......
将一些JavaScript注入到覆盖警报功能的页面渲染中(而不是Magento覆盖,javascript覆盖。
var originalAlert = alert;
alert = function(a)
{
originalAlert("Woah, science!");
originalAlert(a);
}
添加
debugger;
对新警报功能的声明。
var originalAlert = alert;
alert = function(a)
{
debugger;
originalAlert(a);
}
使用附加了调试程序的浏览器(Firebug,Chrome)执行触发警报的操作
当调试器触发时,您将在上下文中看到警报。退出警报并尝试找出警报中存在未定义变量的原因。这将指出你的问题。
(在代码库中搜索JavaScript警报值得一试,但以上是确保找到正确答案的最佳方法。)
如果你不知道如何在这篇文章中做任何事情,你可以在这里提出新的问题。
如果您不愿意这样做,那么这不是您正在寻找的社区。