0000
Operation processed successfully
*/ date_default_timezone_set('Europe/Madrid'); /////////////////////////CONEX///////////////////////////////////////////////// include("../../../assets/conn/conexion.php"); include("funcSignLogalty.php"); $bd_conn = new connexion($host_avanws,$user_avanws,$pass_avanws,$name_avanws,$port_avanws); $bd_conn->query("SET NAMES 'utf8'"); /////////////////////////VARIABLES///////////////////////////////////////////// /* $cli_user = $_SERVER["HTTP_CLIENT_ID"]; $fecha = date("YmdHis"); /////////////////////////ACCIONES////////////////////////////////////////////// $host = 'https://www.demo.logalty.es/lgt/lgtbus/public/DataService?wsdl'; chdir('system/controllers/signs/'); /////////////////////////CONSTRUCCION XML////////////////////////////////// include("xmlStateLogalty.php"); if ( $control_docs > 0 ) { /////////////////////////CERTIFICADO DEL XML/////////////////////////////// shell_exec( 'xmlsec1 --sign --output signed.xml --pkcs12 ./certificado/298037799637438295272938828521515761474776160040.p12 --pwd logalty request_sign.xml'); //se elimina primera línea del XML que contiene shell_exec( 'sed \'1d\' signed.xml > signed_send.xml'); shell_exec( 'rm signed.xml'); //se añade cabeceras SOAP shell_exec( 'echo \' \' > SOAP.xml '); shell_exec( 'cat SOAP.xml signed_send.xml > signed_SOAP.xml'); shell_exec( 'rm signed_send.xml'); shell_exec( 'rm SOAP.xml'); shell_exec( 'sed -e \'$a \' signed_SOAP.xml > signed_SOAP_send.xml'); shell_exec( 'rm signed_SOAP.xml'); //se obtiene el XML firmado $input_data = file_get_contents("signed_SOAP_send.xml"); $filename_in = 'PHP-in.txt'; $filenameOUT = 'PHP-out.txt'; $filenamePOST = 'PHP-post.txt'; $LOG = 'PHP.log'; //TRAZA DE IN DEL XML===================================================== $handle = fopen($filename_in, 'w'); if ( $handle ){ $writelog = fwrite($handle, $input_data) ; fclose($handle); } //HAGO EL POST DE LA FIRMA================================================= $request = 'POST'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL ,$host); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER,array('User-Agent: curl/7.15.5','Accept: * /*','Content-Type: text/xml; charset=UTF-8','Content-Length: '.strlen($input_data))); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,5); curl_setopt($curl, CURLOPT_TIMEOUT,30); curl_setopt($curl, CURLOPT_CUSTOMREQUEST,$request); curl_setopt($curl, CURLOPT_POSTFIELDS, $input_data); $result = curl_exec($curl); //INTERPRETO LA RESPUESTA======================================================= $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->loadHTML($result); libxml_clear_errors(); $xml = $doc->saveXML($doc->documentElement); $xml = simplexml_load_string($xml); print_r($xml); //VALIDO QUE EL LLAMADO FUE EXITOSO============================================ if ( isset($xml->body->envelope->body->data_state_response->main) AND $xml->body->envelope->body->data_state_response->main == "0000" ) { $i = 0; //RECORRO LOS DOCS========================================================= while( $i <= $control_docs ){ //HAGO EL UPDATE DE LOS ESTADOS DE LOGALTY============================= $guid = (string)$xml->body->envelope->body->data_state_response->states->state[$i]["guid"]; $estado_logalty = (string)$xml->body->envelope->body->data_state_response->states->state[$i]["substate_value"]; $resultado_logalty = (string)$xml->body->envelope->body->data_state_response->states->state[$i]["value"]; $estado_p0 = consultarEquivalenciaEstados($bd_conn, $estado_logalty); updateEstadosFirma($bd_conn, $estado_logalty, $resultado_logalty, $estado_p0, $guid ); // if ( $estado_logalty == 12 AND $resultado_logalty == 7 ) { //DESCARGO EL DOCUMENTO //print_r($guid); } $i ++; } }else{ $data[] = array ( "status" => "NOT OK", "message" => 'error' ); header("Content-type: application/json; charset=utf-8"); echo json_encode($data); } }else{ $data[] = array ( "status" => "NOT OK", "message" => 'no existen documentos pendientes por firma.' ); header("Content-type: application/json; charset=utf-8"); echo json_encode($data); } */ /* //PETICION DOC FIRMADO $host = 'https://www.demo.logalty.es/lgt/lgtbus/public/DataService?wsdl'; chdir('system/controllers/signs/'); include("xmlDescDoc.php"); /////////////////////////CERTIFICADO DEL XML/////////////////////////////// shell_exec( 'xmlsec1 --sign --output signed.xml --pkcs12 ./certificado/298037799637438295272938828521515761474776160040.p12 --pwd logalty request_download_doc.xml'); //se elimina primera línea del XML que contiene shell_exec( 'sed \'1d\' signed.xml > signed_send.xml'); shell_exec( 'rm signed.xml'); //se añade cabeceras SOAP shell_exec( 'echo \' \' > SOAP.xml '); shell_exec( 'cat SOAP.xml signed_send.xml > signed_SOAP.xml'); shell_exec( 'rm signed_send.xml'); shell_exec( 'rm SOAP.xml'); shell_exec( 'sed -e \'$a \' signed_SOAP.xml > signed_SOAP_send.xml'); shell_exec( 'rm signed_SOAP.xml'); //se obtiene el XML firmado $input_data = file_get_contents("signed_SOAP_send.xml"); $filename_in = 'PHP-in.txt'; $filenameOUT = 'PHP-out.txt'; $filenamePOST = 'PHP-post.txt'; $LOG = 'PHP.log'; //TRAZA DE IN DEL XML===================================================== $handle = fopen($filename_in, 'w'); if ( $handle ){ $writelog = fwrite($handle, $input_data) ; fclose($handle); } //HAGO EL POST DE LA FIRMA================================================= $request = 'POST'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL ,$host); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER,array('User-Agent: curl/7.15.5','Accept: * /*','Content-Type: text/xml; charset=UTF-8','Content-Length: '.strlen($input_data))); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,5); curl_setopt($curl, CURLOPT_TIMEOUT,30); curl_setopt($curl, CURLOPT_CUSTOMREQUEST,$request); curl_setopt($curl, CURLOPT_POSTFIELDS, $input_data); $result = curl_exec($curl); print_r($result); */ /* //recibir documento firmado chdir('system/controllers/signs/'); $xml ='
0000
Operation processed successfully
'; //INTERPRETO LA RESPUESTA======================================================= $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->loadHTML($xml); libxml_clear_errors(); $xml = $doc->saveXML($doc->documentElement); $xml = simplexml_load_string($xml); $main = (string)$xml->body->envelope->body->signed_binary_response->main; $guid = (string)$xml->body->envelope->body->signed_binary_response->signedbinarys->signedbinary[0]["guid"]; $binary = (string)$xml->body->envelope->body->signed_binary_response->signedbinarys->signedbinary[0]["signedbinary"]; $binary_b64 = base64_decode($binary); print_r($main); $test_doc = 'prueba.pdf'; //TRAZA DE IN DEL XML===================================================== $handle = fopen($test_doc, 'w'); if ( $handle ){ $writelog = fwrite($handle, $binary_b64) ; fclose($handle); } */ //PETICION CERTIFICADO $host = 'https://www.demo.logalty.es/lgt/lgtbus/public/DataService?wsdl'; chdir('system/controllers/signs/'); include("xmlDescCertf.php"); /* /////////////////////////CERTIFICADO DEL XML/////////////////////////////// shell_exec( 'xmlsec1 --sign --output signed.xml --pkcs12 ./certificado/298037799637438295272938828521515761474776160040.p12 --pwd logalty request_download_certf.xml'); //se elimina primera línea del XML que contiene shell_exec( 'sed \'1d\' signed.xml > signed_send.xml'); shell_exec( 'rm signed.xml'); //se añade cabeceras SOAP shell_exec( 'echo \' \' > SOAP.xml '); shell_exec( 'cat SOAP.xml signed_send.xml > signed_SOAP.xml'); shell_exec( 'rm signed_send.xml'); shell_exec( 'rm SOAP.xml'); shell_exec( 'sed -e \'$a \' signed_SOAP.xml > signed_SOAP_send.xml'); shell_exec( 'rm signed_SOAP.xml'); //se obtiene el XML firmado $input_data = file_get_contents("signed_SOAP_send.xml"); $filename_in = 'PHP-in.txt'; $filenameOUT = 'PHP-out.txt'; $filenamePOST = 'PHP-post.txt'; $LOG = 'PHP.log'; //TRAZA DE IN DEL XML===================================================== $handle = fopen($filename_in, 'w'); if ( $handle ){ $writelog = fwrite($handle, $input_data) ; fclose($handle); } //HAGO EL POST DE LA FIRMA================================================= $request = 'POST'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL ,$host); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER,array('User-Agent: curl/7.15.5','Accept: * /*','Content-Type: text/xml; charset=UTF-8','Content-Length: '.strlen($input_data))); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,5); curl_setopt($curl, CURLOPT_TIMEOUT,30); curl_setopt($curl, CURLOPT_CUSTOMREQUEST,$request); curl_setopt($curl, CURLOPT_POSTFIELDS, $input_data); $result = curl_exec($curl); print_r($result); */ $xml = '
0000
'; //INTERPRETO LA RESPUESTA======================================================= $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->loadHTML($xml); libxml_clear_errors(); $xml = $doc->saveXML($doc->documentElement); $xml = simplexml_load_string($xml); $main = (string)$xml->body->envelope->body->data_receiver_certificate_response->main; $binary = (string)$xml->body->envelope->body->data_receiver_certificate_response->receiver_certificates->receiver_certificate[0]["data"]; $binary_b64 = base64_decode($binary); print_r($main); $test_doc = 'prueba_certf.pdf'; //TRAZA DE IN DEL XML===================================================== $handle = fopen($test_doc, 'w'); if ( $handle ){ $writelog = fwrite($handle, $binary_b64) ; fclose($handle); } ?>