wordpress - 无法接收 PayPal IPN - PayPal 总是收到 403 错误

标签 wordpress apache .htaccess paypal paypal-ipn

我正在尝试在 wordpress 应用程序中接收 IPN 消息(以了解付款何时发生)。 Wordpress 在 linux/apache 上运行(PHP 作为 FastCGI)。

但付款后我没有在服务器上收到 IPN。看起来 PayPal 无法将它们发送到我的服务器,因为它收到 403 状态代码(“无权限”)。 SSL 访问日志显示如下:

173.0.81.1 - - [04/Sep/2015:08:44:40 +0200] "POST /index.php?sell_media-listener=IPN HTTP/1.0" 403 9402 "-" "PayPal IPN ( https://www.paypal.com/ipn )"
173.0.81.33 - - [04/Sep/2015:08:44:59 +0200] "POST /index.php HTTP/1.1" 403 9533 "-" "-" 

上面的第一行显示了 PayPal 在交易后进行的原始调用。第二行来自 PayPal 的 IPN 模拟器的测试调用,这次不是针对处理 IPN 的脚本/函数,而是直接针对每个人都应该可以访问的正常 index.php。两次都返回 403。

有人知道为什么 PayPal 收到这个 403 而不是 200 状态代码吗?到目前为止,我听说可能是我的托管商(以及许多其他网络托管公司)阻止了没有用户代理字符串的请求,而 PayPal(根据他们的说法)正在这样做。

据我所知,我这边的 IPN 监听器现在也在 curl 请求中向 PayPal 提交了一个用户代理字符串,但仍然看不到任何变化。

我还在我的 wordpress 文件夹根目录中的 .htaccess 文件的开头添加了以下行:

Allow from .paypal.com
Allow from api.paypal.com
Allow from api-3t.paypal.com
Allow from api-aa.paypal.com
Allow from api-aa-3t.paypal.com
Allow from api-s.paypal.com
Allow from api-m.paypal.com
Allow from svcs.paypal.com
Allow from notify.paypal.com
Allow from reports.paypal.com
Allow from ipnpb.paypal.com
Allow from www.paypal.com
Allow from mobile.paypal.com
Allow from m.paypal.com
Allow from www.paypalobjects.com
Allow from pointofsale.paypal.com

但这也没有任何改变。我的托管商不是很有帮助,他只是说“确保发送用户代理字符串...”。

有什么想法吗?

最佳答案

IPN 以_从 PayPal 发给您的入站邮件开始,而不是您向他们发送的邮件(尽管在收到 PayPal 的邮件后您会发邮件给他们以进行验证)。您的托管服务提供商报告他们阻止的正是这个入站帖子。

您无法更改 PayPal 发布此帖子的方式;这是 PayPal 的代码,不是您的。

而且您自己的 Web 服务器配置可能不是阻止帖子的原因;它可能是由托管服务提供商管理的上游系统(或者至少,这就是您所报告的 - 您是否已与实际的托管服务提供商核实过这一点,而不是“听说”有时会发生这种情况?)

因此,如果您的托管公司的解释是阻止 PayPal 的帖子,您唯一的选择是:

1) 与您的托管公司交谈并说服他们更改政策或破例不阻止 PayPal IPN 帖子,或

2) 在别处托管您的 IPN 脚本(使用不会阻止 PayPal 的 IPN 的托管服务提供商)

关于wordpress - 无法接收 PayPal IPN - PayPal 总是收到 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32391890/

相关文章:

apache - Logstash:修改apache日期格式

ruby-on-rails - 我的乘客供电的Rails应用有时需要很长时间才能加载

php - 带有大写和小写符号的 .htaccess 和 href 链接

.htaccess - 多语言站点,基于 cookie 或接受语言的重定向 (RewriteRule)

javascript - 如何将 animejs 导入我的 wordpress 主题?

javascript - WP enqueue 方法无法加载自定义脚本

php - 在命令行 PHP 脚本中找不到“Memcache”

javascript - .htaccess 重定向不会发生

javascript - 在谷歌地图信息窗口中获取wordpress帖子内容

php - 如何连续运行 PHP 脚本?