Ver Mensaje Individual
  #33 (permalink)  
Antiguo 04/08/2010, 23:49
fran86
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
Respuesta: Ayuda traducir consumo webservices desde .net a php

Bueno, no se si ayudando, pero intentando seguro.. esto al parecer es prueba y error.

En base al ejemplo que te decia de wso2php, arme esto:
Código PHP:
Ver original
  1. try {
  2.    
  3.     $rec_cert = ws_get_cert_from_file('../keys/bob_cert.cert');
  4.     $pvt_key = ws_get_key_from_file('../keys/alice_key.pem');
  5.    
  6.    
  7.     $sec_array = array("encrypt"=>TRUE,
  8.                        "algorithmSuite" => "Basic256Rsa15",   // lista de algoritnos en http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826547
  9.                        "securityTokenReference" => "EmbeddedToken"
  10.                  );
  11.    
  12.     $policy = new WSPolicy(array("security"=>$sec_array));
  13.    
  14.     $sec_token = new WSSecurityToken(array("privateKey" => $pvt_key, "receiverCertificate" => $rec_cert));
  15.    
  16.     $client = new WSClient(array("wsdl"=>"https://desarrollo.pse.com.co/PSEWebServices/MainServices.asmx?wsdl",
  17.                                  "useWSA" => TRUE,
  18.                                  "policy" => $policy,
  19.                                  "securityToken" => $sec_token    
  20.                            )
  21.                   );
  22.    
  23.     $proxy  = $client->getProxy();
  24.    
  25.     $l = $proxy->getBankList(); // lleva parametros?
  26.    
  27.     var_dump($l);
  28.  
  29. } catch (Exception $e) {
  30.     if ($e instanceof WSFault) {
  31.         printf("Soap Fault: %s\n", $e->Reason);
  32.     } else {
  33.         printf("Message = %s\n",$e->getMessage());
  34.     }
  35. }

Fijate que el array que le pasas cuando instancias WSPolicy tiene un monton de opciones (esas no son todas, en la docu de la API aparecen). Por ahi debe estar lo que hay que cambiarle para que ande.

Codigo de .net tenes mas? en una de esas hay pistas ahi.

Con respecto a wse-php, por lo menos es lo que dice que hace xD:
Cita:
Currently provides support for employing WS-Security and WS-Addressing when using the native PHP 5 SOAP extension.

Última edición por fran86; 05/08/2010 a las 00:05