Hallo,
ich habe ein Problem mit den zanox Webservices. Ich möchte gerne einfach einmal eine simple Funktion benutzen. Leider schaffe ich es nicht, den Header mit dem Passwortticket korrekt zu setzen.
Mein aktuellster Versuch:
CODE <?php
try {
$server = "http://services.zanox.com/zdk/general/v1/general.asmx?wsdl";
$username = 'schnick';
$password = 'schnack';
$params = array( 'username' => $username, 'password' => $password);
$client = new soapclient($server, array('trace'=>true, "exceptions" => true));
$result = $client->__soapCall('Login', array('parameters' => $params));
$ticket = $result->LoginResult; //Bis hierhin klappts. Dass Ticket bekomme ich
$var->ticket=$ticket;
$sHeader = new soapHeader('https://services.zanox.com/zdk/prm', 'zanox', $var);
$result=$client->__soapCall('GetTicketExpirationDateTime', array(), NULL, $sHeader);
} catch(Exception $e) {
print "Request :<br>\n".$client->__getLastRequest();
}
?>
Es wird dabei der folgende Request abgesetzt:
CODE <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://services.zanox.com/zdk/general" xmlns:ns2="https://services.zanox.com/zdk/prm">
<SOAP-ENV:Header>
<ns2:zanox>
<ticket>--ticket--</ticket>
</ns2:zanox>
</SOAP-ENV:Header>
<SOAP-ENV:Body><ns1:GetTicketExpirationDateTime/></SOAP-ENV:Body></SOAP-ENV:Envelope>
Als Antwort bekomme ich "Please specifiy a zanox ticket in the SOAP header!
at Zanox.Web.Services.General.General.GetTicketExpirationDateTime()"
Laut zanox-Anleitung soll es wohl genau so aussehen:
CODE <zanox xmlns="https://services.zanox.com/zdk/general"><ticket>$ticket</ticket></zanox>
Die in der Anleitung verwendete nusoap-Bibliothek möchte ich eigentlich nicht nutzen und außerdem gibt es eh einen Namenskonflikt mit der nusoap-Bibliothek und der built-in SOAP-Klasse.
Hat also jemand eine Ahnung, wie ich den Request gestalten kann?
Liebe Grüße
realy
ich habe ein Problem mit den zanox Webservices. Ich möchte gerne einfach einmal eine simple Funktion benutzen. Leider schaffe ich es nicht, den Header mit dem Passwortticket korrekt zu setzen.
Mein aktuellster Versuch:
CODE <?php
try {
$server = "http://services.zanox.com/zdk/general/v1/general.asmx?wsdl";
$username = 'schnick';
$password = 'schnack';
$params = array( 'username' => $username, 'password' => $password);
$client = new soapclient($server, array('trace'=>true, "exceptions" => true));
$result = $client->__soapCall('Login', array('parameters' => $params));
$ticket = $result->LoginResult; //Bis hierhin klappts. Dass Ticket bekomme ich
$var->ticket=$ticket;
$sHeader = new soapHeader('https://services.zanox.com/zdk/prm', 'zanox', $var);
$result=$client->__soapCall('GetTicketExpirationDateTime', array(), NULL, $sHeader);
} catch(Exception $e) {
print "Request :<br>\n".$client->__getLastRequest();
}
?>
Es wird dabei der folgende Request abgesetzt:
CODE <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://services.zanox.com/zdk/general" xmlns:ns2="https://services.zanox.com/zdk/prm">
<SOAP-ENV:Header>
<ns2:zanox>
<ticket>--ticket--</ticket>
</ns2:zanox>
</SOAP-ENV:Header>
<SOAP-ENV:Body><ns1:GetTicketExpirationDateTime/></SOAP-ENV:Body></SOAP-ENV:Envelope>
Als Antwort bekomme ich "Please specifiy a zanox ticket in the SOAP header!
at Zanox.Web.Services.General.General.GetTicketExpirationDateTime()"
Laut zanox-Anleitung soll es wohl genau so aussehen:
CODE <zanox xmlns="https://services.zanox.com/zdk/general"><ticket>$ticket</ticket></zanox>
Die in der Anleitung verwendete nusoap-Bibliothek möchte ich eigentlich nicht nutzen und außerdem gibt es eh einen Namenskonflikt mit der nusoap-Bibliothek und der built-in SOAP-Klasse.
Hat also jemand eine Ahnung, wie ich den Request gestalten kann?
Liebe Grüße
realy