将SOAP客户端从PHP5转换为PHP4 / nuSOAP时出现WSDL错误

时间:2012-10-07 00:09:28

标签: php soap nusoap porta-one

好吧,我已经厌倦了绞尽脑汁,所以希望有人可以启发我:

我正在尝试使用PHP和nuSOAP访问SOAP服务。虽然我已经使用PHP5的内置SoapClient成功访问了该服务,但遗憾的是我仅限于PHP4,并使用了nuSOAP;导致WSDL错误,我无法弄清楚。

PHP5代码(有效):

   $wsdl= 'https://mybilling.hipointinc.com:8443/wsdl.fcgi?get=Session.xsd';
   $soap_client = new SoapClient($wsdl, array('trace'=>1));

   $args = array("login" => $account_id, "password" => $password, "domain" => $domain);
   $session = $soap_client->login($args);

nuSOAP代码(不起作用):

   $wsdl= 'https://mybilling.hipointinc.com:8443/wsdl.fcgi?get=Session.xsd';
   $namespace = 'https://mybilling.hipointinc.com/UM/SOAP/Session';
   $soap_client = new soapclient($wsdl, true, null, $namespace);

   $args = array("login" => $account_id, "password" => $password, "domain" => $domain);
   $session = $soap_client->call('login', array($args));

这会返回以下错误:

  wsdl error: http://schemas.portaone.com/soap:LoginRequest (LoginRequest) is not a supported type.

为什么PHP5版本有效,而nuSOAP版本却没有?我确信这只是我忽略的一些愚蠢行为,但我会感激一些帮助。

有关详细信息,我正在使用Porta Switch,PortaBilling XML API:documentation

1 个答案:

答案 0 :(得分:1)

好的,经过深入探讨后,我终于得出了答案:我必须升级我正在使用的nuSOAP库的版本。事实证明我有一个旧版本,只是更新该版本解决了问题(叹气)我知道这是一个愚蠢的事情,但对于你们中任何一个通过谷歌发生在这个线程的未来编码员:从我的错误中学习,并确保您正在使用的资源是最新的。