我正在使用Django和django-paypal尝试设置支付系统。
使用developer IPN simulator我可以将帖子发送到我的服务器进行测试。
[13/Sep/2015 18:54:08] "POST /paypal/ HTTP/1.1" 200 4
有来自模拟器的帖子,没问题。
现在我想要发出信号。我将以下内容放在我的aps models.py中,与documentation:
中一样from paypal.standard.models import ST_PP_COMPLETED
from paypal.standard.ipn.signals import valid_ipn_received
def show_me_the_money(sender, **kwargs):
print "Hello"
ipn_obj = sender
if ipn_obj.payment_status == ST_PP_COMPLETED:
# Undertake some action depending upon `ipn_obj`.
if ipn_obj.custom == "Upgrade all users!":
Users.objects.update(paid=True)
else:
#...
valid_ipn_received.connect(show_me_the_money)
但我从来没有从信号中得到任何回复。
我不明白为什么?而且我不知道如何测试这个
答案 0 :(得分:0)
我不熟悉这个库,但是您定义的是receiver
和sender
吗?
例如,在post_save
信号上,我会像这样构造它:
post_save.connect(receiver=my_function, sender=myModel)
看起来show_me_the_money
钱是信号的接收者,但是这里不清楚什么是发射信号。也许它应该是:
post_save.connect(receiver=my_function, sender=ST_PP_COMPLETED)