我正在使用 dcramer 的 django-paypal 分支,并且到目前为止我一直成功地设置它。我试图将“paypal.pro.signals.payment_was_successful”连接到我编写的监听器,但它多次发送信号,这导致我的应用程序出错。我已经尝试将'dispatch_uid'添加到我的连接语句中,但它仍然多次发送......我做错了什么?我什至应该使用这个信号吗?
问问题
500 次
2 回答
2
解决方案是在将句柄连接到信号时添加一个 dispatch_uid 关键字 arg。有关示例,请参见http://code.djangoproject.com/wiki/Signals#TipsandTroubleshooting 。
你的代码看起来像:
payment_was_successful.connect(paypal_payment_processed, dispatch_uid="something-rational-here")
于 2010-11-11T14:09:36.867 回答
1
目前这很简单。我在我的应用程序的 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)
于 2010-09-27T03:28:59.490 回答