Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/11/2010, 08:01
Avatar de Snaft_J1
Snaft_J1
 
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 4 meses
Puntos: 8
Respuesta: SOAP con certificado digital

hola.

alguna vez me estuve rompiendo el coco con algo así y fueron horas invertidaas pero luego me tope con algo en la universidad de toronto, con lo cual logre acceder a un web service con SSL WS-Security.

descarga la libreria aqui: http://www.sis.utoronto.ca/web_servi...sample-1.1.zip

y ahora una pequeña implementación de uso, espero esto te sea de ayuda.

Client.php
Código PHP:
Ver original
  1. <?php
  2. require('soap-wsse.php');
  3.  
  4. class mySoap extends SoapClient {
  5.  
  6.    function __doRequest($request, $location, $saction, $version) {
  7.     $doc = new DOMDocument('1.0');
  8.     $doc->loadXML($request);
  9.  
  10.     $objWSSE = new WSSESoap($doc);
  11.  
  12.     $objWSSE->addUserToken("YOUR_USERNAME_HERE", "YOUR_PASSWORD_HERE", TRUE);
  13.  
  14.     return parent::__doRequest($objWSSE->saveXML(), $location, $saction, $version);
  15.    }
  16. }
  17.  
  18.  
  19. $wsdl = 'https://devauth.utcc.utoronto.ca/wsbuild/services/1_0_0/PersonService?wsdl';
  20.  
  21. $sClient = new mySoap($wsdl, array('trace'=>1));
  22. $wrapper->credentials->personId = new SoapVar("9300002", XSD_STRING);
  23. try {
  24.     $result = $sClient->getEmail($wrapper);
  25.     print_r($result->return);
  26. } catch (SoapFault $fault) {
  27.     print("Fault string: " . $fault->faultstring . "\n");
  28.     print("Fault code: " . $fault->detail->WebServiceException->code . "\n");
  29. }
  30.  
  31. echo $sClient->__getLastRequest() .
  32.     "\n" .
  33.     $sClient->__getLastResponse();
  34. ?>

para utilizar estas clases necesitarias tener php5 o superior y la extension soap activa.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....