के माध्यम से कच्चे एक्सएमएल भेजना मैं PHP और सोप क्लाइंट के माध्यम से एक webservice को रॉ एक्सएमएल भेजने की कोशिश कर रहा हूं। समस्या यह है कि जब मैं अपने एक्सएमएल को एन्कोड करता हूं तो यह एक्सएमएल में तत्वों का क्रम बदलता है जो एक एसोसिएटिव सरणी में परिवर्तित हो जाता है।PHP सोप क्लाइंट अनुरोध
// Initialize the Soap Client:
$this->_transactionServicesClient = new SoapClient($soapWSDLUrl);
मेरे सोप क्लाइंट को स्ट्रिंग के रूप में निम्न XML को भेजने का सबसे अच्छा तरीका कैसा होगा या कैसे होगा?
<?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>
अपडेट/समाधान: यहाँ कोड मैं सोप ग्राहक का विस्तार और मेरे कच्चे साबुन लिफाफा भेजने के लिए प्रयोग किया जाता है: My answer below
मैं उलझन में हूं - क्या आप उस एक्सएमएल को एसओएपी सेवा में भेज रहे हैं और इसे पार्स नहीं किया जा रहा है या आपके पास एक्सएमएल है जिसे आप एसओएपी संदेश के अंदर भेजना चाहते हैं? – enygma
मेरे पास एक्सएमएल है जो मैं साबुन संदेश में भेजना चाहता हूं। जब मैं किसी एसोसिएटिव सरणी में एन्कोड किए गए डेटा भेजता हूं, तो नोड्स ने अपना मूल ऑर्डर खोला जो अनुरोध को तोड़ देता है। एक उदाहरण: CheckDetailEntries के अंदर आप MenuItem या Condiment टैग्स प्राप्त कर सकते हैं। लेकिन म्यूज़ियम में मसालों को जोड़ने के लिए उन्हें एक निश्चित क्रम में होना चाहिए जो एक्सएमएल को एन्कोड करते समय खो जाता है। इसलिए मुझे प्रक्रिया के लिए PostTransaction विधि में XML स्ट्रिंग भेजने की आवश्यकता है। – Fostah
क्या कोई और तरीका है जिससे आप उन्हें जोड़ सकते हैं? आने वाले एक्सएमएल के आदेश पर निर्भर मेरे लिए थोड़ा नाजुक लगता है ... – enygma