2009-11-12 44 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服务器,则会发生这种情况。

相关问题