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 при запуске, это вообще срабатывает? Не стесняйтесь модифицировать сторонний код для отладки.