Foros del Web » Programando para Internet » PHP »

Problema WebService NuSOAP + Certificado.

Estas en el tema de Problema WebService NuSOAP + Certificado. en el foro de PHP en Foros del Web. Hola buenos días, inicio este tema por la razón que describe el título. En mi lugar de trabajo estamos implementando un web service para el ...
  #1 (permalink)  
Antiguo 14/01/2015, 04:30
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación Problema WebService NuSOAP + Certificado.

Hola buenos días, inicio este tema por la razón que describe el título.
En mi lugar de trabajo estamos implementando un web service para el pago online de diversas cuestiones.

El punto es el siguiente: si realizo la acción sin implementar el certificado, el WS se conecta perfectamente con el server externo, pero no me deja realizar nada (correctamente) por tratarme de un ente inhabilitado o inválido.
Si la conexión la realizo adjuntando el certificado, me da como error lo siguiente "Error: wsdl error: Getting https://XXX.XX.XX.XXX/gpservices/GPService?wsdl - HTTP ERROR: cURL ERROR: 77: error setting certificate verify locations: CAfile: CA.cer CApath: /etc/ssl/certs" (el certificado se encuentra instalado correctamente en nuestro servidor en el directorio que ahí se apunta).

Dejo el código .php de ambas opciones.

Sin implementar certificado:
Código PHP:
require_once('lib/nusoap.php');

$client = new nusoap_client('https://200.45.17.242/gpservices/GPService?wsdl','wsdl');

$err $client -> getError();

if(
$err){    
    echo 
'Error en Constructor: ' $err 
}

$ip_cliente saberIp();

$armo_hash $ip_cliente $fecha 'SECRET_KEY';
$armo_hash sha1($armo_hash);

$request = array('SolicitudDePago' => array(
                                            
'Producto' => array(
                                                                
'IdProducto' => 'XX',
                                                                
'Version' => '0000.0000',
                                            ),
                                            
'Ente' => array(
                                                                
'IdEnte' => 'XXX',
                                                                
'Version' => '0000.0000',
                                            ),
                                            
'TokenAutEnte' => array(
                                                                
'TokenValue' => "'" $armo_hash "'",
                                                                
'Timestamp' => "'" $fecha "'",
                                                                
'ClienteIP' => "'" $ip_cliente "'",
                                            ),
                                            
'Detalles' => array(
                                                                
'FacturaLinkPagos' => array(
                                                                                        
'Cpe' => '00000000000',
                                                                                        
'Concepto' => '000',
                                                                                        
'Referencia' => '000000000000000000',
                                                                                        
'Importe' => '000000000000',
                                                                )
                                            )
                                        )
            );
                                    
$response $client->call('solicitarPago'$request);                                    

if(
$client->fault){
    echo 
'Fallo: ';
    
print_r($response);
}
else{    
    
//BUSCO ERRORES
    
$err $client->getError();
    if(
$err){        
        
//MUESTRO ERROR
        
echo 'Error: ' $err ;
    } 
    else{        
        
//MUESTRO RESULTADO
        
echo '';
        
print_r ($response);
    }

Implementando certificado:
Código PHP:
require_once('lib/nusoap.php');

$certificado "CA_Red_Link.cer";
$certRequest = array('cainfofile' => $certificado); 

$client = new nusoap_client('https://200.45.17.242/gpservices/GPService?wsdl','wsdl');

$err $client -> getError();

if(
$err){    
    echo 
'Error en Constructor: ' $err 
}

$autentico $client -> setCredentials('','','certificate',$certRequest); 

$ip_cliente saberIp();

$armo_hash $ip_cliente $fecha 'SECRET_KEY';
$armo_hash sha1($armo_hash);

$request = array('SolicitudDePago' => array(
                                            
'Producto' => array(
                                                                
'IdProducto' => 'XX',
                                                                
'Version' => '0000.0000',
                                            ),
                                            
'Ente' => array(
                                                                
'IdEnte' => 'XXX',
                                                                
'Version' => '0000.0000',
                                            ),
                                            
'TokenAutEnte' => array(
                                                                
'TokenValue' => "'" $armo_hash "'",
                                                                
'Timestamp' => "'" $fecha "'",
                                                                
'ClienteIP' => "'" $ip_cliente "'",
                                            ),
                                            
'Detalles' => array(
                                                                
'FacturaLinkPagos' => array(
                                                                                        
'Cpe' => '00000000000',
                                                                                        
'Concepto' => '000',
                                                                                        
'Referencia' => '000000000000000000',
                                                                                        
'Importe' => '000000000000',
                                                                )
                                            )
                                        )
            );
                                    
$response $client->call('solicitarPago'$request);                                    

if(
$client->fault){
    echo 
'Fallo: ';
    
print_r($response);
}
else{    
    
//BUSCO ERRORES
    
$err $client->getError();
    if(
$err){        
        
//MUESTRO ERROR
        
echo 'Error: ' $err ;
    } 
    else{        
        
//MUESTRO RESULTADO
        
echo '';
        
print_r ($response);
    }

Espero puedan darme una pista, ya que hace días estamos parados en el mismo lugar. Googleando mucho no encontré la verdad, posiblemente buscando mal, y desde el ente "prestador" del WS se obtuvieron muchas menos opciones que las encontradas en el buscador.

Muchas gracias de antemano, y aguardo respuestas.
Saludos!
  #2 (permalink)  
Antiguo 16/01/2015, 05:42
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema WebService NuSOAP + Certificado.

Nada?
Bueno, seguire buscando por otro foro.
Saludos!
  #3 (permalink)  
Antiguo 16/01/2015, 18:51
Avatar de elporfirio  
Fecha de Ingreso: octubre-2013
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Problema WebService NuSOAP + Certificado.

Y el certificado esta instalado en el APACHE que realiza las peticiones?

o por lo menos referenciado.



Actualizando... que error te arroja el LOG de apache.
__________________
visita http://elporfirio.com o habrá tabla ¬¬
  #4 (permalink)  
Antiguo 19/01/2015, 04:53
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema WebService NuSOAP + Certificado.

El certificado está instalado en apache, si, según el loco que armó todo el server en su momento y se encarga del mantenimiento.

El log de apache tira lo siguiente:
"xxx.x.xxx.xxx - - [19/Jan/2015:07:52:27 -0300] "GET /test/ HTTP/1.1" 200 362 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0"

Y este el mensaje completo cuando trato de procesar:
"Error: wsdl error: Getting https://xxx.xx.xx.xxx/gpservices/GPService?wsdl - HTTP ERROR: cURL ERROR: 77: error setting certificate verify locations: CAfile: CA.cer CApath: /etc/ssl/certs
url: https://xxx.xx.xx.xxx:xxx/gpservices/GPService?wsdl
content_type:
http_code: 0
header_size: 0
request_size: 0
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 2.734979
namelookup_time: 8.7E-5
connect_time: 2.734998
pretransfer_time: 0
size_upload: 0
size_download: 0
speed_download: 0
speed_upload: 0
download_content_length: -1
upload_content_length: -1
starttransfer_time: 0
redirect_time: 0
certinfo: Array"
  #5 (permalink)  
Antiguo 19/01/2015, 14:31
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: Problema WebService NuSOAP + Certificado.

Cita:
el certificado se encuentra instalado correctamente en nuestro servidor en el directorio que ahí se apunta
El error es claro y si como dices esta instalado correctamente en la ruta, debe estar corrupto.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #6 (permalink)  
Antiguo 20/01/2015, 04:00
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema WebService NuSOAP + Certificado.

Eso pensaba, esta mañana me comuníco con el encargado del server para revisar el asunto. Al código php no le encontras algún error?

Etiquetas: curl, nusoap, soap, webservice, xml
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 22:36.