Sending Multidimensional Array using php
Hi,
For anybody facing troubles with sending complex array to KF webservice, this might help. After considerable hairpulling i managed to solve the riddle. This is for the function InsertInvoice. Note: you have to provide explicit type for <anytype> element. You are free to thank me anytime <? require_once('nusoap.php'); //$client = new soapclient('https://secure.kashflow.co.uk/api/service.asmx?WSDL','wsdl'); $soapaction = "KashFlow/InsertInvoice"; $wsdl = "https://secure.kashflow.co.uk/api/service.asmx"; $namespace = "KashFlow"; $client = new soapclient($wsdl); $mysoapmsg = $client->serializeEnvelope(' <InsertInvoice xmlns="KashFlow"><UserName>yourusername</UserName><Password>yourpassword</Password><Inv><InvoiceDate>2009-01-20T11:11:04+00:00</InvoiceDate><DueDate>2009-01-20T11:11:04+00:00</DueDate><CustomerID>525434</CustomerID><Lines><anyType xsi:type="InvoiceLine"><Quantity>150</Quantity><Description>Bindaas baby</Description><Rate>30</Rate><ChargeType>812270</ChargeType><VatRate>21</VatRate></anyType></Lines></Inv></InsertInvoice> ','',array(),'document', 'literal'); $response = $client->send($mysoapmsg, $soapaction); if ($client->fault) { echo '<h3>Fault</h3><pre>'; print_r($response); echo '</pre>'; } echo "<p>SOAP query</p>"; echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; echo "<p>SOAP response</p>"; echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; ?> Back to top |
|||||
All times are GMT - 8 Hours
|