Hallo zusammen,Die Funktion AuftragCreate scheint mit den Daten aus dem Beispiel immer folgenden Fehler auszugeben:
<response> <status> <action>AuftragCreate</action> <message>Invalid key (id)</message> <messageCode>5</messageCode> </status> <xml>address not found</xml></response>
Es wird ganz normal wie in der Dokumentation ein POST wie folgt gesendet (snippets):
Ist auch kein unterschied ob es mit curl gesendet wird, es kommt immer der gleiche fehler. Hash und config sind korrekt und funktionieren bei anderen aufrufen.
Der fehler tritt auch auf wenn bei <kundernnummer> new oder NEW eingegeben wird.
Es wird zusätzlich immer ein leerer Adressdatensatz erstellt.
private function _build_target_url($action) {
return $this->_configg'endpoint'] . '&action=' . $action . '&api_id=' . $this->_configg'api_id'] . '&hash=' . $this->_get_hash();
}
public function create_shipment() {
$xml = "
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<request>
<status>
<function>AuftragCreate</function>
</status>
<xml>
<kundennummer>10028</kundennummer>
<artikelliste>
<position>
<nummer>4270001856524</nummer>
<preis>9.99</preis>
<menge>1</menge>
<waehrung>EUR</waehrung>
</position>
</artikelliste>
</xml>
</request>";
$data = array('xml' => $xml, 'md5sum' => md5($xml));
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($this->_build_target_url('AuftragCreate'), false, $context);
print_r($result)
}
Basierend auf dem Open Source Code sieht das in der API wie folgt aus:
Die Adresse mit der Kundennummer 10028 existiert auch in der Datenbank: