Как отлаживать платежные шлюзы magento - PullRequest
4 голосов
/ 09 декабря 2010

Мне просто немного любопытно.Что я могу сделать, чтобы немного облегчить процесс отладки с платежными шлюзами.При выезде он всегда делает вызовы ajax.Таким образом, я не могу print_r () или echo увидеть прогрессию.Есть ли более простой способ сделать это, не разрушая ничего.Можно ли отключить вызовы ajax и сделать обычный пост.

Ответы [ 2 ]

6 голосов
/ 09 декабря 2010

Краткий ответ: сделать это для неразрушающей отладки.

Mage::log("Logging a message");

Далее следует длинный ответ.

Я не выполнил тонну отладки шлюза платежей, но многие изплатежные шлюзы имеют параметр «отладка» в

System -> Configuration -> Sales -> Payment Methods

. Примером этого является группа параметров authorize.net.Если вы переключите это в положение «да», отладочная информация начнет изливаться в файл журнала.Предполагается, что вы включили вход в систему

System -> Configuration -> Advanced -> Developer -> Log Settings

. Возможно, вам придется создать файлы журнала самостоятельно в

var/log/system.log
var/log/exception.log

. Убедитесь, что эти файлы доступны для записи на вашем веб-сервере.

Вы также можете войти в эти файлы самостоятельно с помощью статического вызова метода

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');
}

Однако я не уверен, насколько отлаживаются базовые классы (то есть, если в конфигурации нет флага отладки, это может быть из-зав самой модели платежного шлюза отладка не происходит).Хотя стоит исследовать.

Удачи!

0 голосов
/ 09 декабря 2010

Для AJAX вам может пригодиться FirePHP для 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...