为什么我收到错误"4020:从无效的IP地址收到的信息".来自SagePay?

Leo*_*lis 4 php zend-framework opayo

这是一个PHP(Zend Framework 1.11)站点,不使用现成的软件包.当请求:

https://live.sagepay.com/gateway/service/vspserver-register.vsp
Run Code Online (Sandbox Code Playgroud)

(用TxTypePAYMENT),我得到如下回应:

4020 : Information received from an Invalid IP address.
Run Code Online (Sandbox Code Playgroud)

我已登录SagePay管理区域并将实时服务器的IP地址添加到有效IP部分,我已确保使用正确的SagePay URL发布到和.

一个重要的注意事项是,这个问题是今天早上开始的,当时我们通过更改Vendor属性更改了付款发送到的SagePay帐户.

更新:使用表单集成方法在其他帐户上使用此相同帐户(供应商),但相关站点使用服务器集成方法.个人帐户可以支持多种不同的付款方式,还是需要激活另一种?我在管理面板中看不到与此相关的任何选项.

Leo*_*lis 8

得到SagePay的回复后,我发现了以下重要说明:

  • 您可以在同一供应商的帐户上交替使用表单/服务器/直接集成,而无需更改设置或注册任何内容
  • 4020错误确实是IP限制错误,并没有伪装另一个错误

这里的问题是,Web服务器(www.mysite.com)的IP地址,是一个VPS,竟然相同地址时所用的一个curl请求被做了.我做了一个测试PHP页面,将IP邮寄$_SERVER['REMOTE_ADDR']给自己并将其放在另一台服务器上.然后curl,我习惯抓住那个脚本,然后看到它是一个不同的IP.将此(零填充版本)Valid IPs放入My SagePay控制面板中的部分(使用管理员帐户登录),它立即生效.

更新

您可以使用:

curl icanhazip.com
Run Code Online (Sandbox Code Playgroud)

像这样:

[user@host ~]# curl icanhazip.com
177.12.41.200
Run Code Online (Sandbox Code Playgroud)

从您托管网站的服务器的命令行显示正确的IP,而不是上传文件和所有malarkey.更多信息和用法.


ken*_*orb 5

您必须将您的 IP 地址添加到 SagePay 控制面板中。

其他建议:

  • 您可以在 www.whatismyip.com 上仔细检查您的 IP 地址并比较您添加的内容,
  • 确保您的地址自添加以来没有更改(例如您有动态寻址),
  • 检查您的 Apache 用户是否配置为使用不同的 IP 地址,