Все работало, пока в один прекрасный момент не решили поменять все коннекты, в итоге 1с-ник настроил связь через другой порт и дал ссылку вида (раньше работало без порта, подразумеваю по стандартному):
http://00.000.000.000:55/Trade/ws/SiteExchange?wsdl (не пишите, типо, как оно работает с 0-лями... Это замененные данные)
И теперь постоянно ошибка. Может кто-то что-то подскажет... Вот кусок кода:
try {
$client = new SoapClient('http://00.000.000.167/Trade/ws/SiteExchange?wsdl',
array('login' => 'user',
'password' => 'pass',
'soap_version' => SOAP_1_2,
'cache_wsdl' => WSDL_CACHE_NONE, //WSDL_CACHE_MEMORY, //, WSDL_CACHE_NONE, WSDL_CACHE_DISK or WSDL_CACHE_BOTH
'exceptions' => true,
'trace' => 1));
} catch(SoapFault $e) {
trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);
var_dump($e);
}
P.S. Если вбить ссылку просто в браузер то запросит логин и пасс, и введя их отдаст информацию...
Клиент не может загрузить wsdl. Я так понимаю, что сам wsdl у вас тоже закрыт за http basic авторизацией.
SoapClient не пытается использовать параметры login и password для получения wsdl и предполагает, что документ доступен по прямой ссылке без авторизации. Но стандартную запись авторизации непосредственно в URL понимает и может использовать:
$client = new SoapClient(
'http://' . urlencode($login) . ':' . urlencode($password)
. '@00.000.000.167/Trade/ws/SiteExchange?wsdl',
array('login' => $login,
'password' => $pass,
'soap_version' => SOAP_1_2,
'cache_wsdl' => WSDL_CACHE_NONE,
'exceptions' => true,
'trace' => 1));
Сборка персонального компьютера от Artline: умный выбор для современных пользователей