我通过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,它将显示未标记且支付状态为"已完成"。但是,信号没有连接。
我在这里没有得到任何东西(或多件事!)。任何指针都非常赞赏。
Ť
答案 0 :(得分: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”。
答案 1 :(得分:1)
如果我注意的话会有所帮助......
up = UserProfile.objects.get(user.username=ipn_obj.custom)
用户。的用户名强> ...