Tôi đang cố gắng gửi RAW xml đến một dịch vụ web thông qua PHP và SoapClient. Vấn đề là khi tôi mã hóa XML của tôi nó thay đổi thứ tự của các phần tử trong XML được chuyển đổi thành một mảng kết hợp.Gửi XML thô qua yêu cầu SoapClient của PHP
// Initialize the Soap Client:
$this->_transactionServicesClient = new SoapClient($soapWSDLUrl);
Làm cách nào hoặc cách tốt nhất để gửi XML sau làm chuỗi cho SoapClient của tôi là gì?
<?xml version="1.0" encoding="UTF-8"?>
<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>
<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>
Cập nhật/Độ phân giải: Đây là mã tôi đã sử dụng để mở rộng khách hàng SOAP và gửi Soap Envelope liệu của tôi: My answer below
Tôi nhầm lẫn - bạn có gửi XML đó đến dịch vụ SOAP và nó không được phân tích cú pháp hoặc bạn có XML mà bạn muốn gửi bên trong thông báo SOAP không? – enygma
Tôi có XML tôi muốn gửi trong thông điệp xà phòng. Khi tôi gửi dữ liệu được mã hóa trong một mảng kết hợp, các nút sẽ mất trật tự ban đầu của chúng để phá vỡ yêu cầu. Một ví dụ: Inside CheckDetailEntries bạn có thể có các thẻ MenuItem hoặc Condiment. Nhưng để kết hợp Condiments với MenuItems, chúng phải theo một thứ tự nhất định bị mất khi tôi mã hóa XML. Vì vậy, tôi chỉ cần gửi chuỗi XML đến phương thức PostTransaction để xử lý. – Fostah
Có cách nào khác để bạn có thể liên kết chúng không? Dựa vào thứ tự của XML đến dường như có một chút mong manh với tôi ... – enygma