Djangopaypal不接收信号

2024-06-26 12:39:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个沙盒贝宝区, 我的语言是python-Django,我使用Django贝宝 我服务器上的ipn-tes工作正常但是 当有人试图购买东西,在沙盒中的paypal处理后,我没有收到信号,在我的paypal_ipn中我看不到交易。 所以问题是我没有收到信号。 这是我的信号模型.py在

from paypal.standard.ipn.signals import payment_was_successful

def show_me_the_money(sender, **kwargs):
    code = sender.item_number
    type, number_product, pagamento_corso_id = code.split('_')
    obj = get_object_or_404(PagamentoCorso, int(pagamento_corso_id))
    obj.pagamento = True
    obj.save()

payment_was_successful.connect(show_me_the_money)

请帮帮我,因为是7天。。。我很沮丧!:-)


Tags: thedjango沙盒obj信号showpagamentopayment
3条回答

我认为你可以使用贝宝测试工具发送假通知到你的通知网址。这可能会使调试更容易。在

http://www.friendly-stranger.com/pictures/paypal.jpg

您还可以运行django paypal附带的测试。应该是

python manage.py test paypal

您还可以查看测试代码并创建自己的测试来调试问题。在

如果您仍然无法确定,请发布url配置和将IPN表单传递给模板的视图。在

在我的例子中,原因很简单-我已经将信号处理程序代码添加到views.py中,它不是自动加载的,因此处理程序从未真正被使用并连接到信号。最简单但难看的解决方案是将它们移到models.py,建议使用Django的ready()方法。在

我也有类似的问题。在我的例子中,我可以从访问日志中看到PayPal正在访问我的支付通知URL,请求为200ok,但Django端没有触发信号。在

结果发现,付款状态是“待定”而不是“已完成”(我没有监听paypal.standard.ipn.signals.payment_was_flagged信号)。在

我的付款被标记的原因是不正确的settings.PAYPAL_RECEIVER_EMAIL和不正确的paypal_dict["business"]电子邮件地址。完全相同的问题as for this guy。在

相关问题 更多 >