2009-11-12 46 views
1

因此,我正在將Fedex的地址驗證整合到我正在處理的網站中。 Fedex Web服務是基於SOAP的,所以我們在WSDL的神奇之地。我還沒有流利的Web服務,所以請耐心等待。這個SOAP Fault是否意味着我認爲的意思?

只能使用生產級別的地址驗證服務;我有我的生產憑證位於我的WSDL的端口部分中的生產URL。

在測試服務集成,我收到這種挑釁消息:

故障 代碼:VersionMismatch 字符串:版本不對

聯邦快遞支持,迄今似乎不能回答這個問題,所以我會問這裏:爲什麼我得到這個錯誤?我是否懷疑服務器上的SOAP版本可能已過時,如果有的話,是否有任何解決方法可以讓人知道?

+0

故障代碼有點稀疏 - 您使用哪種SoapClient? – 2009-11-12 18:19:22

+0

Henrik - 開始使用PHP的本地SOAP方法,切換到使用NuSOAP,因爲它給了我更好的調試信息。 – 2009-11-19 16:19:16

回答

1

WSDL和SOAP都有幾個版本,並且PHP似乎至少有issues並且至少有WSDL 2.0

檢查WSDL文件的頭部以驗證FedEx想要的內容(它們可能會爲不同版本提供多種Web服務),並使用嗅探器檢查腳本實際發送的內容。

0

此錯誤表示您沒有獲得有效的且由客戶端庫識別的SOAP信封。換句話說,服務器返回的XML通常如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Body> 
     ... 
    </soapenv:Body> 
</soapenv:Envelope> 

...看起來像別的東西。

除了其他原因,如果服務器崩潰併發送隨機錯誤頁面,或者終端URL根本不是SOAP服務器,則會發生這種情況。

相關問題