Senden von Daten-arrays in nusoap und PHP
Hoffe mir kann jemand helfen mit diesem. Ich bin Gebäude nusoap-client mit den folgenden teilweise WSDL:
<s:element name="SavePrestaPicklist">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="USERNAME" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="PASSWORD" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="BRANCH" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="CUSTOMERNUMBER" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="CUSTOMERPO" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="SHIPMETHOD" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="PRESTAPO" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="PICKITEMS" type="tns:ArrayOfPICKITEM" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfPICKITEM">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="PICKITEM" nillable="true" type="tns:PICKITEM" />
</s:sequence>
</s:complexType>
<s:complexType name="PICKITEM">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PARTNUMBER" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="BRANCH" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MFRCODE" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="QUANTITY" type="s:string" />
</s:sequence>
</s:complexType>
Mein client sieht wie folgt aus:
$orderdata = getorder('123');
$orderdata = array(
'USERNAME' => $config['export_username'],
'PASSWORD' => $config['export_password'],
'BRANCH' => '01',
'CUSTOMERNUMBER' => $data['order']['address1'],
'CUSTOMERPO' => $data['order']['gift_message'],
'SHIPMETHOD' => $shipMethod,
'PRESTAPO' => $data['order']['id_order']);
//Build the pickitems array of pickitem.
$pickitems = array();
foreach($data['products'] as $item) {
$pickitem = array(
'PARTNUMBER' => $item['name'],
'BRANCH' => '01',
'MFRCODE' => '642',
'QUANTITY' => $item['product_quantity']);
$pickitems[] = $pickitem;
}
$data['PICKITEMS'] = $pickitems;
$usingWsdl = true;
$client = new nusoap_client($config['export_wsdl'], $usingWsdl);
$response = $client->call('SavePrestaPicklist', $orderdata);
Funktioniert das nicht und sendet eine PICKITEMS wie diese:
<PICKITEMS>
<0>
<PARTNUMBER>BLAH</PARTNUMBER>
<BRANCH>BLAH</BRANCH>
ETC.
</0>
<1>
ANOTHER ITEM SET
</1>
</PICKITEMS>
Was ich will, ist dieses:
<PICKITEMS>
<PICKITEM>
<PARTNUMBER>BLAH</PARTNUMBER>
<BRANCH>BLAH</BRANCH>
ETC.
</PICKITEM>
<PICKITEM>
ANOTHER ITEM SET
</PICKITEM>
</PICKITEMS>
Da kann man nicht duplizieren 'PICKITEM die Schlüssel in PHP-ich kann nicht herausfinden, wie dies zu tun. Jede Hilfe würde geschätzt werden.
- Was ist die Struktur der server-Funktion SavePrestaPicklist? die Reihenfolge der Parameter und Typ. Sie konnte serialisieren die variable $orderdata in der client-Seite und dann unserialize es im server-Seite vor dem Aufruf SavePrestaPicklist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Senden Sie unformatierten XML-Code mit der $ - client->senden () - Methode.
Sehen Sie hier das Beispiel:
http://itworkarounds.blogspot.com/2011/07/send-raw-xml-with-php-nusoap.html
Wenn das auch nicht funktioniert, können Sie versuchen, die Buchung der XML mit CURL.