magento 1.3.1仅在信用卡结账时未定义警报错误,但不适用于PayPal

时间:2010-11-13 12:50:12

标签: php javascript magento

我使用的是magento 1.3.1。在使用信用卡付款时,我收到了一个名为“未定义”的javascript警报。我正在使用ANZ作为支付网关。这笔钱被扣除了。但是没有反映在管理面板中。有趣的是,当我使用PayPal付款时,它是工作得很好。

请告诉我如何解决这个问题?

2 个答案:

答案 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警报值得一试,但以上是确保找到正确答案的最佳方法。)

如果你不知道如何在这篇文章中做任何事情,你可以在这里提出新的问题。

如果您不愿意这样做,那么这不是您正在寻找的社区。