0

我使用 IPN 模拟器得到 403 我的网站在线(不在本地主机上)并且我使用 paypal_lib 库知道什么可能导致这种情况吗?

这是来自 IPN 模拟器的消息:IPN 传递失败。HTTP错误代码403:禁止

4

2 回答 2

1

还没有人回答这个问题——奇怪的是你被 403 禁止了。SO 上的大多数人都使用 Django PayPal IPN 库并违反了 CSRF 身份验证,但是您的 CodeIgniter 安装可能没有类似的东西。

您使用的 URL 是否确实可用(而不是例如在您网站的受密码保护的部分)?

我建议将您的站点连接到沙箱并从沙箱启用 IPN 调用,这样您就可以确切地看到正在发生的事情。此外,我刚刚为 CodeIgniter 发布了一个替代的 PayPal IPN 库,它的日志记录比 Paypal_Lib 多得多,并且具有调试模式,可以直接测试 IPN。希望对你有帮助:

https://github.com/orderly/codeigniter-paypal-ipn

于 2011-02-21T00:11:38.570 回答
1

我刚刚完成了同样的噩梦,除了使用 PayPal 和 AlertPay。问题很可能是相似的。

事实证明,至少在我的情况下,403 Forbidden 代码非常具有误导性。我的按钮代码有错误。我两次使用相同的论点。我复制了一个自定义参数行以添加另一个自定义参数,但我忘记更改参数的名称。

所以我提交了带有重复参数的按钮,它给了我一个 403 Forbidden 错误。这不是一个非常有用的错误,因为它导致我查看所有错误的地方。我也认为这是我的 ipn 侦听器的权限问题,但与此无关。

在相关问题上,在我解决了这个问题后,我开始收到 500(内部服务器错误)。这个 500 错误原来是我的另一个编码错误,但这次是在我的 ipn 侦听器脚本中。我用了一个“休息”;不允许的“if”语句 (PHP) 中的语句。从技术上讲,这不是语法错误,因此脚本仍在加载并且代码仍在其周围执行,但这是一个非法语句,这导致了我的 IPN 上的 500 内部服务器错误。

希望这将帮助其他人解决同样的问题。

于 2011-07-01T02:47:01.183 回答