Создание подкласса PHP SoapClient _soapCall для обработки XML вместо массива для аргументов - PullRequest
1 голос
/ 08 марта 2012

Вот моя проблема: Мне нужен способ отправить аргументы ($xmlNusoap) в моем _soapCall как строка , а затем как-то подкласс _soapCall или _doRequest для обработки строки XML вместо ассоциативного массива. Если кто-то знает, как это сделать, вы спасете жизнь!

// Init SoapClient
$soapClient = new SoapClient("http://xxxx:8080/TransactionServices/TransactionServices6.asmx?WSDL", array("trace" => 1)); 

// My request as string
$xmlNusoap='<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.micros.com/pos/les/TransactionServices"><SOAP-ENV:Body><ns1:PostTransaction/></SOAP-ENV:Body></SOAP-ENV:Envelope><ns1:PostTransaction>
            <ns1:REQ>
                <ns1:RequestHeader>
                    <ns1:InterfaceVersion>3.0.7</ns1:InterfaceVersion>
                    <ns1:ClientName>TRANS_SERVICES</ns1:ClientName>
                </ns1:RequestHeader>    
                <ns1:CheckDetailEntries>
                    <ns1:MenuItem>
                        <ns1:ReferenceEntry>Pizza4</ns1:ReferenceEntry>
                        <ns1:Count>1</ns1:Count>
                        <ns1:Price>10.00</ns1:Price>
                        <ns1:ItemNumber>112001</ns1:ItemNumber>
                        <ns1:PriceLevel>1</ns1:PriceLevel>
                        <ns1:Seat xsi:nil="true"/>
                    </ns1:MenuItem>
                </ns1:CheckDetailEntries>
                <ns1:CheckHeaderRequest>
                    <ns1:CheckId>03:21:05.050505</ns1:CheckId>
                    <ns1:GuestCount>1</ns1:GuestCount>
                    <ns1:GuestInformation>
                    <ns1:ID>001</ns1:ID>
                    <ns1:FirstName>xxx</ns1:FirstName>
                    <ns1:LastName>xxx</ns1:LastName>
                    <ns1:Address1>xxx Rd</ns1:Address1>
                    <ns1:Address2>xx</ns1:Address2>
                    <ns1:Address3>xx</ns1:Address3>
                    <ns1:PhoneNum>xx</ns1:PhoneNum>
                    <ns1:UserText1>None</ns1:UserText1>
                    <ns1:UserText2>None</ns1:UserText2>
                    <ns1:UserText3>None</ns1:UserText3>
                    <ns1:GUID></ns1:GUID></ns1:GuestInformation>
                </ns1:CheckHeaderRequest>
                <ns1:OrderTypeNumber>1</ns1:OrderTypeNumber>
            </ns1:REQ>
        </ns1:PostTransaction>
    </SOAP-ENV:Body>        
</SOAP-ENV:Envelope>';

$PostTransaction = $soapClient->__soapCall("PostTransaction", array($xmlNusoap));

Обычно я строю $ args как ассоциативный массив. Однако это не сработает, поскольку мне нужно поддерживать определенный порядок дочерних элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...