167 lines
5.7 KiB
PHP
167 lines
5.7 KiB
PHP
<?php
|
|
require_once 'print/print.php';
|
|
|
|
define('INFOGREFFE_FILETIME', 28800);
|
|
define('INFOGREFFE_PATH', PATH_DATA.'/infogreffe/kbis/');
|
|
|
|
if ( !file_exists(INFOGREFFE_PATH) ) { mkdir(INFOGREFFE_PATH); }
|
|
|
|
define('INFOGREFFE_DEBUG', true);
|
|
|
|
$infogreffe_ws_url = INFOGREFFE_WS_URL;
|
|
$infogreffe_ws_uri = INFOGREFFE_WS_URI;
|
|
$infogreffe_ws_user = INFOGREFFE_WS_USER;
|
|
$infogreffe_ws_pass = INFOGREFFE_WS_PASS;
|
|
|
|
if(INFOGREFFE_DEBUG)
|
|
{
|
|
$infogreffe_ws_url = 'https://wsrcte.extelia.fr/WSContextInfogreffe/INFOGREFFE';
|
|
$infogreffe_ws_uri = 'https://wsrcte.extelia.fr/';
|
|
$infogreffe_ws_user = '85000109';
|
|
$infogreffe_ws_pass = '160409';
|
|
}
|
|
|
|
define('INFOGREFFE_WS_REF','dgekbis-'.$siren);
|
|
|
|
function infogreffe_kbis ( $siren ) {
|
|
global $infogreffe_ws_url, $infogreffe_ws_uri, $infogreffe_ws_user,
|
|
$infogreffe_ws_pass;
|
|
$req = '<demande>'.
|
|
'<emetteur>'.
|
|
'<code_abonne>'.$infogreffe_ws_user.'</code_abonne>'.
|
|
'<mot_passe>'.$infogreffe_ws_pass.'</mot_passe>'.
|
|
'<reference_client>'.INFOGREFFE_WS_REF.'</reference_client>'.
|
|
'<code_requete>'.
|
|
'<type_profil>A</type_profil>'.
|
|
'<origine_emetteur>IC</origine_emetteur>'.
|
|
'<nature_requete>C</nature_requete>'.
|
|
'<type_document>KB</type_document>'.
|
|
'<type_requete>S</type_requete>'.
|
|
'<media>WS</media>'.
|
|
'<mode_diffusion>'.
|
|
'<mode type="XL" />'.
|
|
'</mode_diffusion>'.
|
|
'</code_requete>'.
|
|
'</emetteur>'.
|
|
'<commande>'.
|
|
'<num_siren>'.$siren.'</num_siren>'.
|
|
'</commande></demande>';
|
|
FB::log($req, 'req');
|
|
$post = '<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://webservices.infogreffe.fr/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getProduitsWebServicesXML><param0 xsi:type="xsd:string">'.$req.'</param0></ns1:getProduitsWebServicesXML></SOAP-ENV:Body></SOAP-ENV:Envelope>';
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, $infogreffe_ws_url);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
|
|
curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE);
|
|
curl_setopt($ch, CURLOPT_POST, TRUE);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
|
|
$output = curl_exec($ch);
|
|
$xml = str_replace("<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>",'', $output);
|
|
$xml = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $xml);
|
|
|
|
return $xml;
|
|
}
|
|
|
|
function infogreffe_kbisToHTML ( $fichier ) {
|
|
// Load the XML source
|
|
$xmlDoc = new DOMDocument;
|
|
$xmlDoc->load($fichier);
|
|
$xsl = new DOMDocument;
|
|
$xsl->load(realpath(dirname(__FILE__).'/KbisWebService.xsl'));
|
|
$proc = new XSLTProcessor;
|
|
$proc->importStyleSheet($xsl); // attach the xsl rules
|
|
$html = $proc->transformToXML($xmlDoc);
|
|
$fichierHTML = str_replace('.xml', '.html', $fichier);
|
|
file_put_contents($fichierHTML, $html);
|
|
return $fichierHTML;
|
|
}
|
|
|
|
function infogreffe_kbisErreur ( $xml ) {
|
|
if (!empty($xml)){
|
|
$doc = new DOMDocument();
|
|
$load = $doc->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING);
|
|
if (!$load) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
$fichierPDF = '';
|
|
$erreur = '';
|
|
$fichier = 'kbis-'.$siren.'.xml';
|
|
// Le fichier n'existe pas en cache
|
|
if ( !file_exists(INFOGREFFE_PATH.$fichier)
|
|
// Le fichier existe en cache
|
|
|| ( file_exists(INFOGREFFE_PATH.$fichier) &&
|
|
date('Ymd', filemtime(INFOGREFFE_PATH.$fichier)+INFOGREFFE_FILETIME ) < date('Ymd') )
|
|
// Le fichier existe en cache mais contient un message d'erreur
|
|
|| ( file_exists(INFOGREFFE_PATH.$fichier)
|
|
&& date('Ymd', filemtime(INFOGREFFE_PATH.$fichier)+INFOGREFFE_FILETIME ) < date('Ymd')
|
|
&& filesize(PATH_DATA.'/infogreffe/xml/'.$fichier)<=2000) ){
|
|
|
|
//Génération du fichier PDF
|
|
$xml = infogreffe_kbis($siren);
|
|
FB::log($xml, 'xml');
|
|
if ( !infogreffe_kbisErreur($xml) )
|
|
{
|
|
file_put_contents(INFOGREFFE_PATH.$fichier, $xml);
|
|
$fichierHTML = infogreffe_kbisToHTML(INFOGREFFE_PATH.$fichier);
|
|
$fichierPDF = wkhtmltopdf($fichierHTML);
|
|
} else {
|
|
$erreur = str_replace("<?xml version='1.0' encoding='UTF-8'?>",
|
|
'', $xml);
|
|
}
|
|
} else {
|
|
if ( file_exists(INFOGREFFE_PATH.'/kbis-'.$siren.'.pdf') ) {
|
|
$fichierPDF = INFOGREFFE_PATH.'/kbis-'.$siren.'.pdf';
|
|
}
|
|
}
|
|
FB::log($fichierPDF, 'fichierPDF');
|
|
?>
|
|
<div id="center">
|
|
<h1>PIECES OFFICIELLES</h1>
|
|
<table>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Numéro identifiant Siren</td>
|
|
<td width="350" class="StyleInfoData"><?=substr($siren,0,3).' '.substr($siren,3,3).' '.substr($siren,6,3)?></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="30"> </td>
|
|
<td width="200" class="StyleInfoLib">Raison Sociale</td>
|
|
<td width="350" class="StyleInfoData"><?=$raisonSociale?></td>
|
|
</tr>
|
|
<tr><td colspan="3"> </td></tr>
|
|
</table>
|
|
<h2>Extrait RCS</h2>
|
|
<table>
|
|
<tr>
|
|
<td width="100"> </td>
|
|
<td width="380">
|
|
<?php
|
|
if ( $fichierPDF!='') {
|
|
?>
|
|
<a title="Cliquez ici pour visualiser le kbis" target="_blank" href="./datafile.php?type=kbis&q=<?=basename($fichierPDF)?>">
|
|
<u>Visualiser le Kbis <img src="/img/icone_pdf.gif"/></u>
|
|
</a>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<p>Une erreur c'est produite durant le traitement !</p>
|
|
<p><?=$erreur?></p>
|
|
<?php
|
|
}
|
|
?>
|
|
</td>
|
|
<td width="100"> </td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
|