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



好吧,我厌倦了为此绞尽脑汁,所以希望这里有人可以启发我:

我正在尝试使用 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:文档

好的,在进一步探索之后,我终于得出了答案:我必须升级我正在使用的 nuSOAP 库的版本。 事实证明,我有一个旧版本,只需更新该版本即可解决问题(叹气)我知道这是愚蠢的,但对于通过谷歌遇到此线程的任何未来编码人员:从我的错误中吸取教训,并确保您使用的资源是最新的。

最新更新