2013-07-15 29 views
3

這是一個PHP(Zend Framework 1.11)站點,不使用現成的軟件包。當請求:爲什麼我會收到錯誤「4020:從無效IP地址收到的信息」。來自SagePay?

https://live.sagepay.com/gateway/service/vspserver-register.vsp 

(與PAYMENT一個TxType),我得到如下回應:

4020 : Information received from an Invalid IP address. 

我已經登錄到SagePay管理區,並增加了現場的IP地址服務器添加到「有效IP」部分,並確保它使用正確的SagePay網址發佈到和。

一個重要的注意事項是,今天上午,當我們通過更改Vendor屬性更改付款發送到的SagePay帳戶後,此問題就開始了。

更新:此帳戶(供應商)在其他帳戶上使用表格集成方法,但所涉及的站點使用服務器集成方法。個人帳戶可以支持多種不同的支付方式,或者需要激活其他支付方式嗎?我在管理面板中看不到與此相關的任何選項。

+0

數據庫不同步呢?當您更改帳戶時,您是否隨同它切換了相關密鑰? – DevZer0

+0

服務器模式不需要Crypt字段 – LeonardChallis

回答

7

正從SagePay的響應後,我發現了以下重要事項:

  • 您可以在同一個供應商科目交替使用表格/服務器/直接集成,而無需更改設置或註冊任何
  • 4020錯誤確實是一個IP限制錯誤,不僞裝另一個錯誤

這裏的問題是,Web服務器(www.mysite.com)的IP地址,是一個VPS,橫空出世不是curl請求發生時使用的地址相同。我做了一個測試PHP頁面,將$_SERVER['REMOTE_ADDR']中的IP郵寄給我自己,並將其放在另一臺服務器上。然後,我使用curl來抓取該腳本,並認爲它是一個不同的IP。將(零填充版本)放入我的SagePay控制面板中的Valid IPs部分(使用管理員帳戶登錄)即可立即生效。

更新

您可以使用:

curl icanhazip.com 

像這樣:

[[email protected] ~]# curl icanhazip.com 
177.12.41.200 

以顯示正確的IP使用,從你託管的服務器的命令行網站上,而不是上傳文件和所有malarkey。 More information and usage here

+1

我不得不打電話給Sage Pay,他們跟蹤失敗的交易,給我正確的IP添加到MySagePay,我很高興去。 – Collins

4

您必須將您的IP地址添加到SagePay控制面板。

其他建議:

  • 您可以在www.whatismyip.com仔細檢查您的IP地址和你比較,添加了什麼,
  • 確保因爲你添加它您的地址並沒有改變(例如你有動態尋址),
  • 檢查你的Apache配置用戶使用一些不同的IP地址,
相關問題