Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] nusoap und arrays als parameter

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] nusoap und arrays als parameter

    Hallo werte Gemeinde,

    mittels nusoap greife ich auf die Amazon SOAP API zu um den Bestellimport in unserem POS zu automatisieren.

    Klappt soweit gut, hänge jetzt aber an einer Stelle fest und hoffe auf kreativen Input:

    Das Runterladen von XML Bestellinformationen (sog. "Dokumenten") muss bestätigt werden damit diese gelöscht werden können.
    Die Dokument verfügen über eine eindeutige ID welche als Array an den Service übergeben werden müssen:

    PHP-Code:
    ....
    $ack_array=array('123456','123457'));
    $params=array(
        
    'merchant' => $merchant,
        
    'documentIdentifierArray' => $ack_array
    );
    $result=$client->call('postDocumentDownloadAck',$params); 
    Soweit die Theorie, in der Praxis ist der Rückgabewert "false" und der Fehler "Response not of type text/xml: text/html; charset=iso-8859-1"

    Beim debugging zeigt sich dass der von nusoap generierte Envelope so aussieht:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4445="http://tempuri.org">
    <SOAP-ENV:Body>
    <merchant xmlns="http://systinet.com/xsd/SchemaTypes/">
    <merchantIdentifier>M_********</merchantIdentifier>
    <merchantName>*******</merchantName>
    </merchant>
    <documentIdentifierArray xmlns="http://systinet.com/xsd/SchemaTypes/"></documentIdentifierArray>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Wie es aussieht, parst nusoap das übergebene Array nicht, der enstprechende Knoten bleibt leer. So gesehen kein Wunder, das die Response false ist

    Irgendjemand eine Idee ob dies ein Bug in nusoap ist?

    [Version: NuSOAP/0.9.5 (1.123) ]

    Für jeden Denkanstoß dankbar!

    PS: Eine Übergabe der DokID als String geht nicht da die WDSL ein Array vorschreibt.

  • #2
    Kenn mich damit jetzt nicht aus, aber wies aussieht erwartet wird Iso
    Response not of type text/xml: text/html; charset=iso-8859-1
    Das XML ist aber UTF-8
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Hallo Paul,

      vielen Dank für deine Antwort. Guter Gedanke, das war aber nicht das Problem.

      Der Fehler lag im Aufbau von $ack_array. Das muss nämlich so aussehen:

      $ack_array=array( 'string' => '123456' );

      Dann klappt es! Trotzdem vielen Dank für deine Bemühungen!

      Kommentar

      Lädt...
      X