До сих пор я не смог успешно передать параметры в запрос через PHP SoapClient.
<?php
class MockSoapClient extends \SoapClient
{
public function __doRequest($request, $location, $action, $version, $one_way = 0)
{
echo $request.PHP_EOL;
return '';
}
}
$client = new MockSoapClient(
'http://www.saiasecure.com/webservice/shipment/soap.asmx?wsdl',
[
'trace' => 1,
'soap_version' => SOAP_1_1,
]
);
$client->__soapCall(
'GetByProNumber',
[
'parameters' => [
'UserID' => 'username',
'Password' => 'password',
'TestMode' => 'Y',
'ProNumber' => '123',
]
]
);
Запуск с: php test.php |xmllint -format -
Получение выходных данных:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.SaiaSecure.com/WebService/Shipment">
<SOAP-ENV:Body>
<ns1:GetByProNumber/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Ожидается, что выходные данные будут содержать некоторую форму параметров в элементе GetByProNumber.
Версия PHP: 7.0.30(Ubuntu 16.04)
Есть отчеты "не об ошибках", которые близко имитируют проблему, но я не могу понять, что нужно изменить, чтобы это работало.https://bugs.php.net/bug.php?id=33366
У кого-нибудь есть идеи или советы?