Django-PayPal сигналы не стреляют

Я часами пытался заставить мои сигналы работать с django-paypal.

Вот мой signal.py (который импортирован в мой urls.py):

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"

Когда я использую симулятор IPN PayPal, я знаю, что транзакция работает, потому что я могу зайти в базу данных, посмотреть на таблицу paypal_ipn и увидеть, что транзакция введена просто отлично, поэтому сигналы ДОЛЖНЫ работать.

Я также попробовал обе версии django-paypal как для dcramer, так и для johnboxall, но до сих пор не радуюсь.

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

1 ответ

Решение

См. Ошибки / предупреждения в платежной транзакции. Сигнал payment_was_successful срабатывает только при отсутствии флагов в транзакции, даже если флаги вообще не критичны (например, если settings.PAYPAL_RECEIVER_EMAIL!= электронная почта получателя транзакции).

Вы можете отлаживать standard.ipn.models.PayPalIPN.send_signals метод, использующий pdb при запуске, это вообще срабатывает? Не стесняйтесь модифицировать сторонний код для отладки.

Другие вопросы по тегам