Im struggling with this 2 days and trying almost everything I found on internet. I have SOAP service with username and password in header securityContext but have no idea how to provide data in that form in PHP?
This is required header XML:
<soap:Header>
<SecurityContext xmlns="http://tempuri.org/">
<userName>string</userName>
<password>string</password>
</SecurityContext>
</soap:Header>
Huh, i managed it to work. Here is what is necessery if someone have similar problem.
Part for adding header values:
$soap = new SoapClient($wsdl, $options);
$auth = array(
'userName' => self::SOAP_USERNAME,
'password' => self::SOAP_PASSWORD,
);
$header = new SoapHeader(self::SOAP_NAMESPACE, 'SecurityContext', $auth);
$soap->__setSoapHeaders($header);
Also, because it's https request I needed to add some ssl options:
// set stream context opts
$opts = array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false,
),
);
// set options
$options = array(
'encoding' => 'UTF-8',
'soap_version' => SOAP_1_2,
'cache_wsdl' => WSDL_CACHE_NONE,
'connection_timeout' => 15,
'login' => self::SOAP_USERNAME,
'password' => self::SOAP_PASSWORD,
'stream_context' => stream_context_create($opts),
);