0

我一直在通过 django-paypal 文档选择自己的方式,并且当我从沙盒模拟器发送 IPN 时,我得到了连接信号。

我可以:

UserProfile.objects.update(has_paid=True)

我也可以这样做:

UserProfile.objects.update(middle_name=sender.custom) # sender.custom set to "Lyndon" on IPN

每个人都可以免费获得一年。不是我想要的……我想做的是

up = UserProfile.objects.get(user=ipn_obj.custom)
up.has_paid = False
up.save()

但在这种情况下,我会在即时付款通知 (IPN) 模拟器上收到服务器错误 (500) 消息。

IPN delivery failed. HTTP error code 500: Internal Server Error

我的数据库中仍然有一个 Paypal IPN,它将显示为未标记且付款状态为“已完成”。但是,信号没有连接。

我只是在这里没有得到一些东西(或多个东西!)。任何指针都非常感谢。

4

2 回答 2

2

尝试使用它,

UserProfile.objects.filter(user=ipn_obj.custom).update(has_paid=False)

对于那种你无法理解问题所在的错误,请使用 ipdb:

你应该安装ipdb,

$ pip install ipdb

并运行转到不起作用的代码并添加,

import ipdb; ipdb.set_trace()

当您在本地运行(我的意思是使用 runserver)并发出请求以使该代码段运行时,您将在上述行之后看到跟踪。

请注意,接下来使用“n”并继续在 ipdb 上使用“c”。

于 2012-09-29T20:32:21.157 回答
1

如果我注意会有所帮助...

up = UserProfile.objects.get(user.username=ipn_obj.custom)

用户。用户名...

于 2012-09-21T21:28:31.637 回答