Ошибка WSDL при переводе клиента SOAP с PHP5 на PHP4/nuSOAP

Хорошо, я устал ломать голову над этим, поэтому, надеюсь, кто-то здесь может меня просветить:

Я пытаюсь получить доступ к службе SOAP, используя PHP и nuSOAP. Хотя я успешно получил доступ к сервису с помощью встроенного в 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: документация


person scotsninja    schedule 07.10.2012    source источник


Ответы (1)


Хорошо, изучив это еще немного, я наконец пришел к ответу: мне пришлось обновить версию библиотеки nuSOAP, которую я использовал. Оказывается, у меня была более старая версия, и простое обновление этой версии решило проблему (вздох). Я знал, что это какая-то глупость, но для любого из вас, будущих кодеров, которые столкнулись с этой веткой через Google: учитесь на моей ошибке и убедитесь, что ресурсы, которые вы используете, обновлены.

person scotsninja    schedule 07.10.2012