magento 1.3.1 неопределенная ошибка предупреждения при оформлении заказа только для кредитной карты, но не для PayPal - PullRequest
1 голос
/ 13 ноября 2010

я использую magento 1.3.1. При совершении платежа с помощью кредитной карты я получаю предупреждение javascript под названием «undefined». Я использую ANZ в качестве платежного шлюза. Деньги вычитаются. Но также не отображаются в админ-панели. Интересно, когда я использую PayPal для оплаты, это работает отлично.

Подскажите, пожалуйста, как я могу решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 14 ноября 2010

Ошибка вызвана тем, что ответ AJAX не возвращает допустимый JSON. Получите что-то вроде Firebug или Chrome, как предложил Алан, и просмотрите сетевое представление, чтобы увидеть, как выполняется запрос AJAX, когда вы проходите проверку. На saveOrder (последний шаг, где вы получаете сообщение об ошибке) проверьте его содержимое, а не JSON, держу пари, вы увидите ошибку PHP и трассировку стека. Это ключ к пониманию проблемы, но если вы не можете понять, добавьте ее к своему вопросу.

Логически ошибка должна возникать после того, как ANZ снимает средства с кредитной карты, но до того, как Magento фиксирует транзакцию в своей базе данных, поскольку происходит ошибка, транзакция откатывается.

Чтобы решить эту проблему, вам следует обратиться к автору ANZ eGate (Fontis) и попросить помощи в отладке.

2 голосов
/ 14 ноября 2010

Это предупреждение о 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 стоил бы попробовать, но вышеприведенное - лучший способ убедиться, что вы нашли правильный.)

Если вы не знаете, как что-то сделать в этом посте, у вас есть новые вопросы, которые можно задать здесь.

Если вы не хотите делать вышеперечисленное, это не то сообщество, которое вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...