Hallo liebe Gemeinde!
Ich glaube ich stehe gerade aufm Schlauch beim zusammenbauen einer SOAP-Message, im speziellen Fall des Response.
Ich benutze php 5.2.5 und habe mir einen soap-server mit WSDL erstellt, soweit so gut. Nun muss das Ding ja auch antworten, das klappt auch, aber halt nicht in der gewünschten XML-Struktur.
	
Das Ding funktioniert schonmal, ich komme in der Klasse Event an und kann dort die einzelnen Properties rausholen und weiter verwursten. 
Als Response soll die Klasse Result mit 3 Properties zurückgeschickt werden.
	
Fülle ich das ganze nun mit Leben und 
	
Bekomme ich folgendes Ergebnis:
	Ich hätte jetzt erwartet, dass ich unterhalb der Eventresponse die Struktur meines Result-Objekts wieder fiinde. Habe ich da irgendwie was generell missverstanden?
Nächster Versuch war mit SAOPVAR(...), auch mit mäßigem Erfolg:
	
Das liefert mir:
	Hat vielleicht jemand nen Tipp, wo ich da falsch denke?
Danke schön!
					Ich glaube ich stehe gerade aufm Schlauch beim zusammenbauen einer SOAP-Message, im speziellen Fall des Response.
Ich benutze php 5.2.5 und habe mir einen soap-server mit WSDL erstellt, soweit so gut. Nun muss das Ding ja auch antworten, das klappt auch, aber halt nicht in der gewünschten XML-Struktur.
PHP Code:
	
	
$server = new SoapServer("Events.asmx.wsdl",array('soap_version' => SOAP_1_2));
$server->setClass("Events");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
    } else 
    {
        echo "This SOAP server can handle following functions: ";
        $functions = $server->getFunctions();
        foreach($functions as $func) {
            echo $func . "\n";
        }
    } 
Als Response soll die Klasse Result mit 3 Properties zurückgeschickt werden.
PHP Code:
	
	
class Result
{
    public $TransactionGUID;//string
    public $Nr;//int
    public $Description;//string
} 
PHP Code:
	
	
$EventResult = new Result();
       $EventResult->TransactionGUID= $this->TransactionGUID;
       $EventResult->Nr = 0;
       $EventResult->Description="OK";
       
       return $EventResult; 
Code:
	
	<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
  xmlns:ns1="http://somewhere.de/my_server.php">
   <env:Body>
      <ns1:EventResponse/>
   </env:Body>
</env:Envelope>
Nächster Versuch war mit SAOPVAR(...), auch mit mäßigem Erfolg:
PHP Code:
	
	
 $MMSReceivedEventResult = new SoapVar(array("EventResult"=>array($this->TransactionGUID=>"TransactionGUID")) ,SOAP_ENC_OBJECT ); 
Code:
	
	<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://somewhere.de/my_server.php">
   <env:Body>
      <ns1:EventResponse>
         <EventResult>
            <item>
               <key>42bd79fa-985a-47e2-9d97-0ed4b1a274ed</key>
               <value>TransactionGUID</value>
            </item>
         </EventResult>
      </ns1:EventResponse>
   </env:Body>
</env:Envelope>
Danke schön!
 
          
 Moderator
 Moderator
Comment