2

我使用 Django 和 django-paypal 尝试设置支付系统。

使用开发人员 IPN 模拟器,我可以将帖子发送到我的服务器进行测试。

[13/Sep/2015 18:54:08] "POST /paypal/ HTTP/1.1" 200 4

有来自模拟器的帖子,没有问题。

现在我想让信号触发。我将以下内容放在我的一个 aps models.py 中,如文档中所示:

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)

但我从来没有从信号中得到任何响应。

我不知道为什么?而且我不知道如何测试这个

4

1 回答 1

-1

我不熟悉这个库,但是你在定义你的receiverandsender吗?

例如,在一个post_save信号上,我会这样构造它:

post_save.connect(receiver=my_function, sender=myModel)

看起来show_me_the_money钱是信号的接收者,但这里不清楚是什么发出了信号。也许应该是:

post_save.connect(receiver=my_function, sender=ST_PP_COMPLETED) 
于 2015-09-13T23:10:07.823 回答