我如何允许django-merchant接收paypal IPN构造?

时间:2014-12-10 02:29:15

标签: django paypal django-paypal

我发现了很多类似的问题,但似乎我仍然无法让我的设置工作:(

我正在尝试使用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文档中提到的一样) )。

很抱歉这篇长篇文章,非常感谢:)

1 个答案:

答案 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