2016-06-02 12 views
0

Ich möchte wissen, wie man folgende Soap-Anfrage in PHP mit soapclient-Funktion schreiben?wie man soapclient funktion in php schreibt?


WSDL: https://test.edentiti.com/Registrations-Registrations/DynamicFormsService?wsdl

Aktion aufzurufen:

> <soapenv:Envelope 
    > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    > xmlns:dyn="http://dynamicform.services.registrations.edentiti.com/"> 
    > <soapenv:Header/> <soapenv:Body> 
    >  <dyn:registerVerification> 
    >   <accountId>ABCDEFGHIJKL</accountId> 
    >   <password>1010101010</password> 
    >   <ruleId>default</ruleId> 
    >   <name> 
    >    <givenName>John</givenName> 
    >    <honorific></honorific> 
    >    <middleNames></middleNames> 
    >    <surname>Citizen</surname> 
    >   </name> 
    >   <email>[email protected]</email> 
    >   <currentResidentialAddress> 
    >    <country>AUS</country> 
    >    <postcode>2000</postcode> 
    >    <state>NSW</state> 
    >    <streetName>address</streetName> 
    >    <streetNumber></streetNumber> 
    >    <streetType></streetType> 
    >    <suburb>city</suburb> 
    >   </currentResidentialAddress> 
    > 
    >   <generateVerificationToken>false</generateVerificationToken> 
    >  </dyn:registerVerification> </soapenv:Body> </soapenv:Envelope> 

Ich möchte wissen, dass, wie oben Funktion in den folgenden zu schreiben.

//Create the client object 
$soapclient = new SoapClient(''); 
$params = array(...........); 
$response = $soapclient->.......($params); 
var_dump($response); 
+0

versuchen NuSOAP PHP-Bibliothek – PravinS

+0

@PravinS Warum sollte er eine 3rd-Party-Lib verwenden, wenn er nach dem nativen Client fragt? Was ist los mit dem nativen Soap-Client? – DanFromGermany

+0

@DanFromGermany Ich benutze es seit einer Weile und hatte eine gute Erfahrung, also nur einen Vorschlag – PravinS

Antwort

2

Sie können einfach das registerVerification Verfahren mit einer Reihe von Daten als einzigen Parameter nennen:

$wsdl = 'https://test.edentiti.com/Registrations-Registrations/DynamicFormsService?wsdl'; 
$client = new SoapClient($wsdl); 
$registerVerificationData = [ 
    'accountId' => 'ABCDEFGHIJKL', 
    'password' => '1010101010', 
    'ruleId' => 'default', 
    'name' => [ 
     'givenName' => 'John', 
     'honorific' => null, 
     'middleNames' => null, 
     'surname' => 'Citizen', 
    ], 
    'email' => '[email protected]', 
    'currentResidentialAddress' => [ 
     'country' => 'AUS', 
     'postcode' => '2000', 
     'state' => 'NSW', 
     'streetName' => null, 
     'streetNumber' => null, 
     'streetType' => null, 
     'suburb' => 'city', 
    ], 
    'generateVerificationToken' => false, 
]; 
$response = $client->registerVerification($registerVerificationData); 
var_dump($response); 

Wenn der SOAP-Server die null Eigenschaften definiert werden müssen, Sie alle null Werte ersetzen können mit SoapVar Instanzen vor registerVerification() Aufruf:

array_walk_recursive($registerVerificationData, function (&$value) { 
    if ($value === null) { 
     $value = new SoapVar(null, XSD_ANYTYPE); 
    } 
}); 
+0

Ausgezeichnete Antwort ... was ich suchte .... danke .... – user3264863

+0

Hallo pieter. Können Sie die Antwort von http://stackoverflow.com/questions/37810785/how-to-write-array-of-soap-api-call geben? Ich verwechsle nur in PHP-Array schreiben. – user3264863