2010-12-09 6 views
4

나는 약간 궁금합니다. 지불 게이트웨이에 대한 디버깅 경험을 좀 더 쉽게 만들려면 어떻게해야합니까? 체크 아웃시에는 항상 아약스 호출이 수행됩니다. 그래서 나는 print_r()이나 진행을보기 위해 echo 할 수있는 방법이 없습니다. 아무 것도 파괴하지 않고 쉽게 할 수있는 방법이 있습니까? ajax 호출을 비활성화하고 정기적으로 게시물을 올릴 수 있습니까?magento 지불 게이트웨이를 디버그하는 방법

답변

6

짧은 답변입니다 : 비파괴 디버깅에 대해이 작업을 수행합니다.

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

긴 대답은 다음과 같습니다.

내가 payement 게이트웨이 디버깅의 톤을 수행하지만, 지불 게이트웨이의 많은하지 않은는 "디버그"이것의 예를 들어

System -> Configuration -> Sales -> Payment Methods 

확인에 authorize.net 옵션 그룹을 설정해야합니다. 이것을 "예"위치로 바꾸면 디버그 정보가 로그 파일로 스며 오기 시작합니다. 이것은 당신이 당신이 파일을 웹 서버에 쓰기 권한이 있는지 확인

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

에 로그가 직접 파일을 만들어야 할 수도 있습니다

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

에 로그온 돌았습니다 가정합니다.

또한 자신은 정적

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

메소드 호출 이러한 파일에 로그인 할 수 있습니다.

마지막으로 지불 게이트웨이에 디버그 설정이 없으면 항상 위장 할 수 있습니다. 모든 지불 모델은 다음 클래스에서 상속 (로되어있다)

이 클래스는 디버그 설정 플래그를 사용할 수 있다면 디버깅이 수, 또는

/** 
* Define if debugging is enabled 
* 
* @return bool 
*/ 
public function getDebugFlag() 
{ 
    return $this->getConfigData('debug'); 
} 

떨어져있는 경우를 결정하는 방법이있다

class Mage_Payment_Model_Method_Abstract 
app/code/core/Mage/Payment/Model/Method/Abstract.php 

일시적으로 어떻게 설정에서 디버그 플래그가 존재하지 않는 경우 기본 클래스는 (의미합니까 디버깅 많이 할 수 잘 모르겠어요 항상

public function getDebugFlag() 
{ 
    return 1; 
    //return $this->getConfigData('debug'); 
} 

그러나 true를 반환하려면이 방법을 변경 지불 게이트웨이 모델 자체에서 디버깅이 진행되지 않기 때문에). 가치가 탐구하지만.

행운을 빈다.

아약스의 경우
+1

과거에 authorize.net을 사용해 보았는데 서버간에 XML 트랜잭션 만 전송했습니다. 내가 기대했던 것만 큼 유용하지는 않았다. – clockworkgeek

+0

+1 좋은 정보 시계 태엽에 대해,하지만 로그에서 볼 수있는 다른 정보가 있습니까? –

+0

내가 통신하고있는 URL과 그 기능을 수행하는 기능을 알고 싶었습니다. 그 밖의 다른 방법을 찾아 내서 그렇게 나쁘지 않았 음을 감사드립니다. – clockworkgeek

0

AJAX의 경우 FirePHP for 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 
+0

당신은 내부 HTTP 요청을 위해 피들러를 사용해야합니다. –

관련 문제