/** * Generate a Soap Header using the specified service URI and SoapAction * Include the details from the Security Token for login * * @ignore */ protected function generateSoapHeader($serviceURI, $soapAction, $securityToken) { $soapHeaderDOM = new DOMDocument(); $headerNode = $soapHeaderDOM->appendChild($soapHeaderDOM->createElement('s:Header')); $headerNode->appendChild($soapHeaderDOM->createElement('a:Action', $soapAction))->setAttribute('s:mustUnderstand', '1'); $headerNode->appendChild($soapHeaderDOM->createElement('SdkClientVersion', "8.1.0.383"))->setAttribute('xmlns', 'http://schemas.microsoft.com/xrm/2011/Contracts'); $headerNode->appendChild($soapHeaderDOM->createElement('UserType', "CrmUser"))->setAttribute('xmlns', 'http://schemas.microsoft.com/xrm/2011/Contracts'); $headerNode->appendChild($soapHeaderDOM->createElement('a:ReplyTo'))->appendChild($soapHeaderDOM->createElement('a:Address', 'http://www.w3.org/2005/08/addressing/anonymous')); $headerNode->appendChild($soapHeaderDOM->createElement('a:MessageId', 'urn:uuid:' . parent::getUuid())); $headerNode->appendChild($soapHeaderDOM->createElement('a:To', $serviceURI))->setAttribute('s:mustUnderstand', '1'); $securityHeaderNode = $this->authentication->getSecurityHeaderNode($securityToken); $headerNode->appendChild($soapHeaderDOM->importNode($securityHeaderNode, true)); return $headerNode; }