Хорошо, ребята, проблема в том, что WSSE в моем коде - это стандарт, который не очень хорошо работает с PHP SOAPClient.Я провел небольшое исследование и обнаружил, что есть несколько способов, чтобы эти двое хорошо играли вместе.Сначала я определил пространство имен, имя пользователя и пароль ...
$username = 'USERNAME';
$password = 'PASSWORD';
$strWSSENS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
Далее следует создать два класса, которые обрабатывают эту информацию (см. Справку в Интернете) ...
class clsWSSEAuth {
private $Username;
private $Password;
function __construct($username, $password) {
$this->Username=$username;
$this->Password=$password;
}
}
class clsWSSEToken {
private $UsernameToken;
function __construct ($innerVal){
$this->UsernameToken = $innerVal;
}
}
затем вызовите эти несколько функций для установки заголовков и т. Д. *
$objWSSEAuth = new clsWSSEAuth($objSoapVarUser, $objSoapVarPass);
$objSoapVarWSSEAuth = new SoapVar($objWSSEAuth, SOAP_ENC_OBJECT, NULL, $strWSSENS, 'UsernameToken', $strWSSENS);
$objWSSEToken = new clsWSSEToken($objSoapVarWSSEAuth);
$objSoapVarWSSEToken = new SoapVar($objWSSEToken, SOAP_ENC_OBJECT, NULL, $strWSSENS, 'UsernameToken', $strWSSENS);
$objSoapVarHeaderVal=new SoapVar($objSoapVarWSSEToken, SOAP_ENC_OBJECT, NULL, $strWSSENS, 'Security', $strWSSENS);
$objSoapVarWSSEHeader = new SoapHeader($strWSSENS, 'Security', $objSoapVarHeaderVal,true, 'http://abce.com');
Тогда все остальное как обычно ... с SOAPClient ...