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);
}
?>