具有codeigniter的IPN模拟器403

时间:2010-09-26 16:02:49

标签: php codeigniter paypal paypal-ipn

我的IPN模拟器获得403我的网站在线(不是在本地主机上),我使用paypal_lib库知道是什么原因造成的?

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

2 个答案:

答案 0 :(得分:1)

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

您使用的网址是否可用(而不是在您网站的密码保护部分)?

我建议将您的网站连接到沙箱并启用沙箱中的IPN调用,以便您可以准确了解正在发生的事情。此外,我刚刚为CodeIgniter发布了另一个PayPal IPN库,它具有比Paypal_Lib更多的日志记录,并且还具有调试模式以及直接测试IPN。我希望你觉得它很有用:

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

答案 1 :(得分:1)

我刚刚完成了同样的噩梦,除了没有使用PayPal和AlertPay。机会是相似的。

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

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

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

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