In my scenario a .NET webservice offers particular encrypting capabilities. I need to consume the webservice with PHP by sending my plain string to get an encrypted one in return. The .NET webservice is working properly. I found the NuSoap library, and adopted it.
Here the inclusion:
require_once('lib/nusoap.php'); And here the code:
// requires web service's specifications aka wsdl // $parameters: // requires following the array 'notation' // array('parameters' => (array('text' => 'Hello World!!!'))); // that equals to Hello World!!! // $proxy (->host, ->port, ->username, ->password) // optional, uses a proxy server function consume_webservice($wsdl, $method, $parameters, $debug = false, $proxy = null) { if ($proxy != null) $proxy->host = $proxy->port = $proxy->username = $proxy->password = false; $client = new soapclient($wsdl, true, $proxy->host, $proxy->port, $proxy->username, $proxy->password); $err = $client->getError(); if ($err) echo 'Constructor error' . $err; $result = $client->call($method, $parameters); // check for a fault if ($client->fault) { echo 'Fault'; print_r($result); } else { // check for errors $err = $client->getError(); if ($err) echo 'Error' . $err; } if ($debug) { echo 'Request' . htmlspecialchars($client->request, ENT_QUOTES); echo 'Response' . htmlspecialchars($client->response, ENT_QUOTES); echo 'Debug' . htmlspecialchars($client->debug_str, ENT_QUOTES); } return $result; } This approach works only with SOAP webservices. Please note that .NET web services include all response content into a “parameters” section by design.
...