2

我发现了许多类似的问题,但似乎我仍然无法使我的设置正常工作:(

我正在尝试使用 django-merchant 在我的网站上接受简单的 IPN paypal 付款;如果我理解正确,一旦设置正确: - django-merchant 应该为 PayPal 提供一个视图,以便在看起来像myURL:myPORT/.../paypal-ipn-handler的地址调用;- 上面提到的视图是在 paypal/standard/ipn/views.py 中找到的视图,其中 paypal 是 django-paypal 应用程序的根目录,它是 django-merchant 包装的

目前我正在使用贝宝的调试版本,并且: - 我可以成功进行(假)付款并让贝宝调用“return-url”以显示成功消息;- 我的设置在具有静态 IP 地址的服务器上运行,我尝试完全禁用防火墙,所以不应该是“可达性”问题;- 如果我删除 django-paypal IPN 视图上的 @require_POST 装饰器并手动打开myURL:myPORT/.../paypal-ipn-handler浏览器页面,它会“成功”在数据库上创建一个失败的事务条目

但是:我永远无法让 PayPal 成功调用我的myURL:myPORT/.../paypal-ipn-handler(不进行虚假购买,不使用 PayPal 开发人员工具中的“模拟器”)。

我已经看到信号可能有问题,但我所有的测试都表明我的问题出现在此之前,并且 PayPay 购买确认从未到达指定的 paypal-ipn-handler(我完全按照 django-merchant 文档中的说明设置)。

对不起,很长的帖子,非常感谢:)

4

1 回答 1

1

解决了!!

以防万一有人遇到同样的问题:

它没有太多的文档记录,但似乎在测试模式下,PayPal IPN notify_url 仅在它位于“标准”端口(如:80)上时才有效。

这篇文章有帮助(特别是 Matthew Fox 的评论):
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?论坛=winservercore

于 2014-12-10T11:02:23.090 回答