웹 서비스를 사용하기 위해 보안 헤더를 보내는 데 문제가 있습니다. 그리고 이미 TargetProcess.com에서이 웹 서비스를 사용하는 데 수십 가지 방법을 시도했지만 잘못된 것을 잘 모릅니다.php5의 Soap을 통해 보안 wse 헤더를 보내십시오.
은 (http://demo.tpondemand.com/Services/ProjectService.asmx?wsdl는)
는 예를하지만 내가 SoapClient 클래스에 내장이 사용 PHP5을하려고하고, Nusoap의 정말 오래된 버전을 사용 .
잘못된 요청 오류가 발생하거나 인증 할 수 없습니다. 그러면이 헤더를 어떻게 보낼 수 있습니까?
$tp_header_part = '
<wsa:Action>
http://targetprocess.com/RetrieveAll
</wsa:Action>
<wsa:MessageID>
urn:uuid:'.$this->getGuid().'
</wsa:MessageID>
<wsa:ReplyTo>
<wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:To>http://medios.tpondemand.com/Services/ProjectService.asmx</wsa:To>
<wsse:Security SOAP-ENV:mustUnderstand="1">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="SecurityToken-'.$this->getGuid().'">
<wsse:Username>MYUSERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
MYPASSWORD
</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>';
$soap_var_header = new SoapVar($tp_header_part, XSD_ANYXML, null, null, null);
$soap_header = new SoapHeader('http://schemas.xmlsoap.org/ws/2003/06/secext', 'Security', $soap_var_header);
$client->__setSoapHeaders($soap_header);
는 단순히 문서 당 requiered GUID를 생성 getGuid 기능을 p.s :
이것은 내가 지금까지 가지고 있지만 작동하지 않는 것입니다.
아이디어가 있으십니까?
이 기능을 사용할 수 있는지 궁금하십니까? 나는 PHP에서 .NET SOAP API와 연결하려고 노력하고 있으며 악몽이었다. –