我发现了很多类似的问题,但似乎我仍然无法让我的设置工作:(
我正在尝试使用django-merchant在我的网站上接受简单的IPN paypal付款;如果我理解正确,一旦设置正确: - django-merchant应为PayPal提供一个视图,以便在一个看起来像 myURL的地址打电话:myPORT /.../ paypal-ipn-handler ; - 上面提到的视图是在paypal / standard / ipn / views.py中找到的,其中paypal是django-paypal应用程序的根目录,django-merchant包装
目前我正在使用paypal的调试版本,并且: - 我可以成功进行(假)付款并让PayPal调用“return-url”来显示成功消息; - 我的设置在带有静态IP地址的服务器上运行,我尝试完全禁用防火墙,所以不应该是“达到能力”的问题; - 如果我在django-paypal IPN视图上删除@require_POST装饰器并手动打开 myURL:myPORT /.../ paypal-ipn-handler 浏览器页面,它会“成功”创建一个失败的事务在db上输入
但是我不能让PayPal成功调用我的 myURL:myPORT /.../ paypal-ipn-handler (不进行虚假购买,不使用PayPal开发者中的“模拟器”工具)。
我看到可能有信号问题,但我的所有测试都表明我的问题出现之前,PayPay购买确认从未到达指定的paypal-ipn-handler(我设置完全与django-merchant文档中提到的一样) )。
很抱歉这篇长篇文章,非常感谢:)
答案 0 :(得分:1)
解决!!
以防有人遇到同样的问题:
没有太多记录,但似乎在TEST模式下,PayPal IPN notify_url仅在“标准”端口上有效,如:80。
这篇文章有助于(特别是马修福克斯的评论):
http://www.arronwoods.com/blog/2008/09/paypal-ipn-from-the-sandbox-not-working/
作为参考,如果在Windows下工作,这里是一种“快速而肮脏”的端口转发方式,如果您还没有使用项目的默认端口,请避免更改任何设置(替换端口号和当然,你的例子中的ip地址!):
https://social.technet.microsoft.com/Forums/windowsserver/en-US/417fcbcd-169d-4f7a-8f3a-7a00a91bad66/windows-2012-firewall-port-forwarding?forum=winservercore