Я пытаюсь сделать SOAP-вызов с исходящим «WSS». Это первый раз, когда я работаю с вызовами SOAP, и мне нужно сделать запрос к службе SOAP правительства Бельгии.
Теперь у меня есть вызов, работающий в SoapUI, но вызов PHP является своего родасложная часть ....
В SoapUI я создал хранилище ключей с защищенным паролем файлом .p12
. У этого также есть outgoing WS-Security configuration
, названный X.509
. Эта конфигурация имеет 2 записи WSS, одну метку времени и одну подпись со следующими свойствами:
Теперь мне нужно преобразовать это в код PHP, предпочтительнее используябиблиотека GuzzleHTTP, но если есть еще одна (лучше?) библиотека, я бы хотел это знать.
В запросе используется базовая аутентификация, пароль или имя пользователя не заполнены, но есть исходящий. Выбранная конфигурация WSS называется X.509
.
Код PHP, который я сейчас пробовал, выглядит следующим образом:
$xml = '<XML_REQUEST_CONTENT>';
$params = [
'headers' => [
'Content-Type' => 'text/xml; charset=UTF8',
],
'keep_alive' => true,
'trace' => true,
'local_cert' => storage_path('app/checkinatwork/keystore.p12'),
'passphrase' => '<PASSWORD_FOR_THE_p12_FILE>',
];
$client = new Client();
$req = new Request('POST', 'https://...', $params, $xml);
$resp = $client->send($req);
return $resp->getBody()->getContents();
Я понятия не имею, как аутентифицировать запрос ...
У меня также есть .pem
en файл .crt
, который находится в хранилище ключей ...