2012-08-02 4 views
0

몇 시간 동안 django-paypal에서 작동하도록 신호를 보내려고했습니다. 내가 페이팔의 IPN 시뮬레이터를 사용하는 경우django-paypal 신호가 실행되지 않음

from django.dispatch import receiver 
from paypal.standard.ipn.signals import payment_was_successful, payment_was_flagged 

@receiver(payment_was_successful) 
def confirm_admin_payment(sender, **kwargs): 
    print 'SUCCESS: %s' % sender.payer_email 

@receiver(payment_was_flagged) 
def payment_flagged(sender, **kwargs): 
    print "FLAGGED: %s" % sender.payer_email 

print "signals.py has been imported" 

, 나는 데이터베이스에 갈 수 있기 때문에 트랜잭션이 작동 알고 보면 다음과 같습니다

는 (내 urls.py에서 가져온) 내 signals.py입니다 paypal_ipn 테이블과 트랜잭션이 잘 보였으므로 신호가 작동해야합니다.

저는 dcramer와 johnboxall의 django-paypal 버전을 모두 시험해 보았습니다.하지만 여전히 기쁨은 없습니다.

나는 아이디어가 없으며, 조사하고이 사실을 파악하려고 노력했습니다. 선배 들께 감사드립니다.

+0

신호에 약간의 문제가 있었고이 vid가 다시 궤적에 있음을 발견했습니다. http://www.youtube.com/watch?v=qwp8k5GQoNU&feature=related – Timbadu

답변

0

결제 거래의 오류/경고를 참조하십시오. 플래그은 플래그가 전혀 중요하지 않더라도 트랜잭션에 플래그가없는 경우에만 발생합니다 (예 : settings.PAYPAL_RECEIVER_EMAIL! = 트랜잭션 수신자 이메일).

시작시 pdb를 사용하여 standard.ipn.models.PayPalIPN.send_signals 방법을 디버깅 할 수 있습니다. 전혀 실행되지 않습니까? 디버깅 목적으로 타사 코드를 수정하는 데 빛을 내지 마십시오.

+0

standard.ipn.models.send_signals에서 print_was_successful 및 payment_was_flagged 내에서 if 문에 대해 함수의 시작 부분에 하나, 끝 부분에 각각 하나씩). ipn 시뮬레이터로 테스트 할 때, 이는 start, payments_was_successful (또는 paypal_receiver_email이 유효하지 않은 경우 payment_was_flagged) 신호를 출력 한 다음 신호가 끝난 것입니다. 그러나, 내 signals.py 여전히 자신의 메시지를 인쇄하지 마십시오. – mizx

+1

pdb를 사용하고 다른 테스트를 한 후, 내 신호가 paypal.standard.ipn.views에있을 때 작동하도록 할 수 있습니다. 내 '수입 기호'가 뭔가 다른 것으로 생각 되니? – mizx

관련 문제