2010-04-05 42 views
2

我正在尝试将Django-Paypal集成到一个网站上,一旦客户付款,我需要发送一个动态网址,用户可以从该网址下载一些特定信息。integration django-paypal

我正在向所有用户注册一个允许他们购买文档的URL。只有具有经过验证的电子邮件ID的注册用户才能访问的URL使用django注册,允许用户连接到贝宝并进行支付。

如何捕捉到信号,并验证其用户已作出哪些产品,他/她所购买的支付,在此基础上的信息

1)我需要知道两个信息,该用户做出的付款,并且他或她做了哪些产品付款?

2)只有当我有这些信息时,才可以通过电子邮件发送正确的UR:L。

任何帮助表示赞赏。我不太确定django信号如何工作。 payment_was_successful信号返回什么细节?

我使用IPN

+0

ramdaz,请注意,您可以*选中标记*的答案,以表明它是正确的。这也会提高你的接受率。 – 2011-10-05 16:32:27

回答

3

要捕获的信号,你定义你的功能,并将其连接到这样的信号:

from paypal.standard.ipn.signals import payment_was_successful 
def my_payment_was_successful_handler(sender, **kwargs): 
    pass 

payment_was_successful.connect(my_payment_was_successful_handler) 

为了能够识别IPN消息为用户,我通常会修改PayPal按钮来传递一个名为custom的字段,并将其设置为django user.id或您可以查找的某个其他标识符来标识您的用户。 custom变量将在sender参数中发回,您可以找到该用户。

要找到该产品,product_name也发送到sender到上面列出的处理程序。您可能会为您的产品建立一个模型,并且您需要通过此product_name查找它们以便在电子邮件中发送适当的内容。

+0

恩,谢谢。这正是我想要做的。 – ramdaz 2010-04-05 18:42:53