Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > WSDL/SOAP авторизация


Автор: etc 10.10.2013, 22:25
Добрый день уважаемые.
Не получается авторизироваться на веб-сервисе через wsdl/soap. Перекапал все интернеты, нашел такой способ:

Код

<?php
class API_Client {
 
    private static $instance = NULL;
     
    private function __construct() {
     
    }
     
    
    public static function getInstance() {
     
        if (!self::$instance) {
        
            $ns   = "auth";
            $wsdl = "http://site.ru/XmlGate.svc?singleWSDL";
             
            $auth->username = 'login';
            $auth->password = 'pass';
 
            $auth_vals    = new SoapVar($auth, SOAP_ENC_OBJECT);
 
            $authenticate = new SoapHeader($ns,'AuthInfo',$auth_vals, false);
             
            $client = new SoapClient($wsdl,array('cache_wsdl' => 0));
                                              
            $client->__setSoapHeaders(array($authenticate));
             
            self::$instance = $client;
        }
         
        return self::$instance;
    }
     
     
    private function __clone(){
         
    }
 
}
 
$data_1 = API_Client::getInstance()->GetHotelInformation('15523');
 
print_r($data_1);
?>



И выскакивает ошибка: Fatal error: Uncaught SoapFault exception: [a:InternalServiceFault] Данные для авторизации в заголовке AuthData не предоставлены. in Z:\home\gal\www\index.php:42 Stack trace: #0 Z:\home\gal\www\index.php(42): SoapClient->__call('GetHotelInforma...', Array) #1 Z:\home\gal\www\index.php(42): SoapClient->GetHotelInformation('15523') #2 {main} thrown in Z:\home\gal\www\index.php on line 42

Подскажите как поправить это?! 
Спасибо.

Автор: etc 11.10.2013, 12:31
Нашел проблему. В 15 строке не правильно указан параметр.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)