Comment utiliser les APIs S²LOW en PHP
Les pré-requis techniques pour l’envoi de document à S²LOW sont les suivants :
- PHP > 5.2.x
- le module php_curl
La documentation des API disponibles pour S²LOW est accessible sur la forge adullact : Documentations APIs
<?php
// Url vers la plateforme s2low que vous voulez atteindre
$host = 'https://demo-s2low.extranet.adullact.org';
// l'api que vous voulez utiliser
$api = $url."/modules/actes/actes\_transac\_submit.php"
// Enveloppe à envoyer à s2low
$file = "/var/www/s2low/adl-TACT--123456725--20080624-1.tar.gz";
// la partie x509 du certificat : openssl pkcs12 -in certificat.p12 -out client.pem -clcerts -nokeys
define('PEM', './key/client.pem');
// la clé privée du certificat : openssl pkcs12 -in certificat.p12 -out key.pem -nocerts
define('SSLKEY', './key/key.pem');
//le certificat du CA : openssl pkcs12 -in certificat.p12 -out ca.pem -cacerts -nokeys
define('CA\_PATH', './key/');
define('PASSWORD', 'passwd');
// En fonction de l'api que l'on appelle, on doit renseigner le tableau suivant :
$data = array('api' => '1',
'enveloppe' => "@$file" );
$ch = curl\_init();
// Paramétrage des options curl
curl\_setopt($ch, CURLOPT\_URL, $url);
// En cas d'utilisation d'un proxy, on renseigne ici son adresse
// curl\_setopt($ch, CURLOPT\_PROXY, 'x.x.x.x:8080');
curl\_setopt($ch, CURLOPT\_POST, TRUE);
curl\_setopt($ch, CURLOPT\_POSTFIELDS, $data );
curl\_setopt($ch, CURLOPT\_SSL\_VERIFYPEER, FALSE);
curl\_setopt($ch, CURLOPT\_CAPATH, CA\_PATH);
curl\_setopt($ch, CURLOPT\_SSLCERT, PEM);
curl\_setopt($ch, CURLOPT\_SSLCERTPASSWD, PASSWORD);
curl\_setopt($ch, CURLOPT\_SSLKEY, SSLKEY);
curl\_setopt($ch, CURLOPT\_SSL\_VERIFYHOST, FALSE);
curl\_setopt($ch, CURLOPT\_VERBOSE, true);
curl\_setopt($ch, CURLOPT\_RETURNTRANSFER, TRUE);
$curl\_return = curl\_exec($ch);
if ($curl\_return === false) {
echo 'KO\\nErreur dans le module curl.' . '<br /gt;';
echo 'curl\_errno() = ' . curl\_errno($ch) . '<br /gt;';
echo 'curl\_error() = ' . curl\_error($ch) . '<br /gt;';
} else {
echo 'Document envoyé<br >';
}
curl\_close($ch);
?>