2009-04-08 18 views
0

Ich versuche, einen Webservice zu verwenden, die nur SOAP-AnforderungSet-Attribut für Parameter in SOAP-Anforderung PHP

soweit ich weiß, dass ich eine Anfrage, aber so aussieht erstellen müssen erlaubt, die

<?xml version="1.0" encoding="utf-8"?> 
<SessionCreateRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <POS> 
    <Source PseudoCityCode="SECRET_CODE" /> 
    </POS> 
</SessionCreateRQ> 

während der Parameter auf SessionCreateRQ Methode hinzufügen weiß ich nicht, wie Sie den POS-Parameter keine Ahnung, wie man setzen Sie das Attribut für diesen Parameter

im Versuch, die folgenden in pHP

genannt Quelle und muss hinzufügen
$body = array(
     'POS' => array('source' => 'PseudoCityCode:SECRET_CODE')); 

    try 
    { 
     $result = $c->SessionCreateRQ($body); 
    } 

aber kein Glück, hat jemand eine Ahnung wie ich diesen Aufruf richtig aufbauen soll?

danke!

+0

Es beantwortet nicht direkt die Frage, die Sie gefragt haben, aber PHP hat built-in functions for handling SOAP, sowohl aus der Perspektive eines Servers und eines Clients. Sie sollten in der Lage sein zu finden, was Sie in den SoapClient Funktionen benötigen. –

Antwort

1

Zuerst benötigen Sie WSDL-Definition für diesen Dienst (online oder in lokaler Datei). Jeder nicht schlechte SOAP-Dienst stellt Benutzern WSDL zur Verfügung.

Zweitens müssen Sie WSDL-Service-Definition in PHP-Code übersetzen. Versuchen Sie wsdl2php Generator. Seine generate-Datei mit Klassen, die Aufrufe an Web-Services machen.

Ihr Beispiel wird etwa wie folgt aussehen:

require_once 'GeneratedTypes.php'; 
$client = new SOAPService(); 
$res = $client->SessionCreateRQ(SECRET_CODE); 

P. S. wsdl2php nicht ideal, aber es funktioniert :)