настройка django-paypal для проблем с сигналом pro (wpp) веб-сайта PayPal - PullRequest
1 голос
/ 25 сентября 2010

Я использую форк dcramer от django-paypal и до сих пор успешно его настраивал.Я попытался подключить «paypal.pro.signals.payment_was_successful» к слушателю, которого я написал, но он посылает сигнал несколько раз, что вызывает ошибки в моем приложении.Я попытался добавить dispatch_uid к своему оператору соединения, но он все равно отправляет его несколько раз ... Что я делаю не так?Должен ли я даже использовать этот сигнал?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Решение заключается в добавлении ключевого слова dispatch_uid arg при подключении вашего дескриптора к сигналу.См. http://code.djangoproject.com/wiki/Signals#TipsandTroubleshooting для примера.

Ваш код будет выглядеть так:

payment_was_successful.connect(paypal_payment_processed, dispatch_uid="something-rational-here")
1 голос
/ 27 сентября 2010

Это довольно просто в данный момент. Я зарегистрировал сигнал в init.py

моего приложения

в init.py

from paypal.pro.signals import payment_was_successful
from listeners import paypal_payment_processed

payment_was_successful.connect(paypal_payment_processed)

в listeners.py

def paypal_payment_processed(sender, **kwargs):
   print 'signal called'

тогда мое представление об оболочке django-paypal содержит следующее:

def apartment_store_lease_step_4_content(request, apartment_id, lease_obj):

item = {
    "amt": total,
    "custom": lease_obj.id ,
    "cancelurl" : "OMITTED",
    "returnurl" : "OMITTED"
}

ctx = {        
    "lease_purchase" : lease_obj,
    "contract" : contract
}
ctx.update(locals())


kw = {
    "item" : item,
    "payment_template" : "OMITTED",
    "confirm_template" : "OMITTED",
    "success_url" :  "OMITTED",
    "context": ctx
}

ppp = PayPalPro(**kw)
return ppp(request)
...