PayPal IPN 得到 405:不允许的方法

Posted

技术标签:

【中文标题】PayPal IPN 得到 405:不允许的方法【英文标题】:PayPal IPN getting 405: method not allowed 【发布时间】:2012-02-19 02:21:56 【问题描述】:

所以我可以使用 Fiddler 愉快地调用我的 IPN 处理页面(一个 aspx 页面)来发布一个相当准确的 IPN 应该发送的版本,并且它工作正常。但是,一旦我使用 IPN 测试工具或尝试“真实”交易,它就会抛出 405:

2012-01-25 18:46:55 193.128.120.227 POST /paypal_notify.aspx - 80 - 173.0.82.126 - 302 0 0
2012-01-25 18:46:55 193.128.120.227 POST /403_error.htm - 80 - 173.0.82.126 - 405 0 1

我就是想不通。从 IPN 调用 ASP 页面可以正常工作,但 ASPX 和 ASHX 都抛出 405。然而,我自己发布到页面不是问题。

如果有人有任何想法可能导致这种情况,我将不胜感激!

【问题讨论】:

【参考方案1】:

好吧,您首先要重定向到错误页面。 Paypal 尝试对 /403_error.htm 进行 POST,因为这可能应该是 GET,所以您会得到 405。首先,您的 paypal_notify.aspx 可能有问题。

403 表示禁止,那么你们有什么安全方案会抛出 403 吗?

您可能希望将您在 paypal_notify.aspx 中使用的代码发布到 403 的错误页面中,以便我们找出导致 302 的原因。

【讨论】:

啊啊啊啊啊!我是个白痴!我忘记了我们有一个 Session_OnStart 方法,它为某些 UserAgents 和 IP 踢出 403 - 它已经在代码中大约 10 年了,我从来没有看过它。上帝知道它匹配的是什么,但我现在要修复它。谢谢马蒂亚斯 :) 不客气,有时只是需要多一双眼睛 :)

以上是关于PayPal IPN 得到 405:不允许的方法的主要内容,如果未能解决你的问题,请参考以下文章

PayPal 订阅 IPN 和其他

405 方法不允许 - ASP.NET Web API

缺少 PayPal 沙盒 IPN 历史记录

Http post 405方法不允许

捕获重复的 PayPal IPN 付款

paypal ipn没有得到验证