Добрый день.
1С-ники написали мне soap сервис для интеграции 1с и некоторых самописных систем.
Мы опубликовали базу, проверили через браузер - сначала идёт страница авторизации. Авторизовались и получили доступ к самому сервису и файлу wsdl.
Теперь я пытаюсь на php написать сервис, который будет работать с soap и дальше обрабатывать полученные данные.
Я попробовал пакет soap для php8.2-fpm и прямые curl вызовы. Результат: соединение не проходит, как будто я не правильно делаю авторизацию.
Пример кода:
$ch = curl_init('<здесь указан рабочий url>');
curl_setopt_array($ch, [
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $xml,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => 'username:password',
CURLOPT_HTTPHEADER => [
'Content-Type: text/xml; charset=utf-8',
],
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
]);
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
echo "Ошибка: $error";
} else {
echo $response;
}
Я не знаю платформу 1С-предприятие. Подскажите, как пройти авторизацию правильно?
Из ошибок: при использовании soap пакета - SOAP-ERROR: Parsing WSDL: Couldn't load from '<здесь указан рабочий url>' : failed to load external entity
При использовании прямого вызова curl - просто отваливается по таймауту.
Допускаю, что дело не только в авторизации. Если так - ткните меня носом как котёнка).
UPD: используется нестандартный порт 10443