PHP-клиент Soap неправильно обрабатывает аргументы с типом s1: char при построении запроса.Soap API требует либо «Y», либо «N», но в XML-запросе я получаю «0».(Передача истинного Bool приводит к «1», но вместо «Y» это не принимается как API).
Я использую PHP версии 5.3.8 с собственным клиентом Soap
Вот мой PHP
$this->soapClient = new SoapClient( $client->wsdl,
array(
'soap_version' => SOAP_1_2,
'trace' => true
)
);
$result = $this->soapClient->SomeSoapMethod(array(
'sSessionKey' => $sessionKey,
// other string and int args that work fine here
'cReturnNonSeats' => 'Y' // API wants 'Y' or 'N'
));
Соответствующий узел XML в XML-запросе:
<ns1:cReturnNonSeats>0</ns1:cReturnNonSeats>
А из WSDL:
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="cReturnNonSeats" type="s1:char" />
</s:sequence>
</s:complexType>
Не вдаваясь в сборку XML вручную, можно ли каким-то образом контролировать, как эти аргументы передаются по типу?