我有一个沙盒贝宝区, 我的语言是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天。。。我很沮丧!:-)
我认为你可以使用贝宝测试工具发送假通知到你的通知网址。这可能会使调试更容易。在
http://www.friendly-stranger.com/pictures/paypal.jpg
您还可以运行django 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。在相关问题 更多 >
编程相关推荐