Foros del Web » Programando para Internet » PHP »

Ayuda traducir consumo webservices desde .net a php

Estas en el tema de Ayuda traducir consumo webservices desde .net a php en el foro de PHP en Foros del Web. Con el tema de wso2, has leido http://wso2.org/library/2814 ? Me parece que no es necesario el mapa de clase. En ese ejemplo lo unico raro ...

  #31 (permalink)  
Antiguo 04/08/2010, 17:52
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Respuesta: Ayuda traducir consumo webservices desde .net a php

Con el tema de wso2, has leido http://wso2.org/library/2814 ?

Me parece que no es necesario el mapa de clase. En ese ejemplo lo unico raro que le veo es que contruye el request en base a un xml $reqPayloadStrin, aunque leyendo la api rapidamente( http://wso2.org/project/wsf/php/2.0.0/docs/api.html ) en la seccion "WSClient Methods Related to WSDL Mode" una vez que crees el cliente con las opciones de seguridad haces $proxy = $client->getProxy(); y $variable = $proxy->getBankList();...


wso2 vs wse-php.. quien ganara ?

Última edición por fran86; 04/08/2010 a las 18:00
  #32 (permalink)  
Antiguo 04/08/2010, 21:22
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Ayuda traducir consumo webservices desde .net a php

Gracias fran por seguirme ayudando..

Si efectivamente a mi tambien me muestra las funciones "yo uso wso2php" pero cuando necesito consumir el listado de bancos no me devuelve nada... ya ya le tengo lo de los certificados pero tampoco funciona... yo sigo creyendo que el consumo de getbanklist falta agregarle coas pero no e sabido que..

Uso wso2php porque el otro no estoy seguro que soporte Ws security .. el otro si lo especifica... Voy a probar con el otro de todas maneras aunqeu ya e porbado como con 4 jaja
  #33 (permalink)  
Antiguo 04/08/2010, 23:49
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 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
  #34 (permalink)  
Antiguo 09/08/2010, 15:15
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Ayuda traducir consumo webservices desde .net a php

hola fran de nuevo yo.

COnsultando con una persona de otro lado creo que tengo mal el consumo del metodo,,, aca coloco como seria el consumo con clase soap de php el problema es que esta no tiene ws security y no funciona... Pero lo coloco para si es posible me ayude arevisar el ejemplo con wso2 o con la otra que soporta security.

Código PHP:
<?php

$wsdl 
"https://desarrollo.pse.com.co/PSEWebServices/MainServices.asmx?wsdl";
$client = new SoapClient($wsdl, array(
    
'trace'            => true,
    
'exceptions'    => true,
    
'soap_version'   => SOAP_1_1
));

/**
* Segun parece, los parametros hay que pasarlos en el tipo de dato que corresponde
* segun la definicion del webservice, estas son las clases necesarias para pasar el dato
*/
class getbankListInformationType {
    public 
$entityCode;
}

class 
getBankList {
    public 
$getBankListInformation;
}

/**
* Luego se deben crear los objetos y asignar los valores de las propiedades/
*/
$var1 = new getbankListInformationType();
$var1->entityCode '8600672037';

$param  = new getBankList();
$param->getBankListInformation $var1;

// *******************************************************************************

$error 0;
try {
    
$LisBancos $client->getBankList($param);
} catch (
SoapFault $fault) { 
    
$error 1;
    echo 
"<pre><b>ERROR:</b><br>".$fault->faultcode."-".$fault->faultstring.".</pre>"
}

if(
is_array($LisBancos))
//si hay valores en el array
    
for($i=0;$i<count($LisBancos);$i++)
    {
        echo 
$LisBancos[$i]['financialInstitutionCode'].'<br>';
    }
}else{
    echo 
'No hay bancos';
}

?>
Donde encuentro el instalador de wse-php para realziar las pruebas con este? gracias

Etiquetas: traducir, .net, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:30.