Как сделать запрос SOAP в PHP или LARAVEL - PullRequest
0 голосов
/ 09 июля 2020

в PostMan я делаю запрос, и все в порядке (т.е. у меня есть ответ), т.е. я отправляю:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:impl="http://impl.ws.common.syntesys.eulerhermes.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <impl:signOnDefaultCompany>
         <login>MyLogin</login>
         <password>MyPassword</password>
      </impl:signOnDefaultCompany>
   </soapenv:Body>
</soapenv:Envelope>

по URL: https://online.syntesys.com.pl/webservice/public/IdentityAssertionServiceWS?wsdl

Как перенести приведенный выше код в PHP 7.4 (и желательно во фреймворк LARAVEL 7.x), но PHP достаточно.

в PHP Я попытался вызвать __getFunctions () и получил ответ, то есть функции, которые я могу использовать, например:

in:

$client = new \SoapClient("https://online.syntesys.com.pl/webservice/public/IdentityAssertionServiceWS?wsdl");
dd($client->__getFunctions());

out:

array:2 [▼
  0 => "signOnDefaultCompanyResponse signOnDefaultCompany(signOnDefaultCompany $parameters)"
  1 => "signOnResponse signOn(signOn $parameters)"
]

но когда я хочу вызвать SOAP функция «signOnDefaultCompany», я получаю сообщение об ошибке «SoapFault, не удалось подключиться к хосту» , то есть:

в:

$client = new \SoapClient("https://online.syntesys.com.pl/webservice/public/IdentityAssertionServiceWS?wsdl");

$operation = array(
    "login" => 'MyLogin',
    "password" => 'MyPassword',
);

$res = $client->__call('signOnDefaultCompany',$operation);
dd($res);

или в:

$client = new \SoapClient("https://online.syntesys.com.pl/webservice/public/IdentityAssertionServiceWS?wsdl");

$operation = array(
    "login" => 'MyLogin',
    "password" => 'MyPassword',
);


$res = $client->signOnDefaultCompany([$operation]);
dd($res);

У меня нет опыта работы с SOAP, просьба о помощи, как должен выглядеть код, для работы функции signOnDefaultCompany и получения ответа

...