paiement_en_ligne

Hébergements mutualisés - Paiement en ligne

ATOS

La fonction exec() de PHP étant désactivée, le système de paiement proposé par le groupe ATOS ne fonctionne pas directement.

Nous vous proposons une solution alternative permettant d'utiliser ce mode de paiement malgré tout.

Le principe est le suivant : Puisque vous ne pouvez pas utiliser les exécutables fournis par votre prestataire, nous les mettons en place sur un serveur dédié à cet effet. Le code ci-dessous vous permet d'échanger les données avec notre serveur via une connexion sécurisée.
Cette modification est transparente pour vos clients, et reste parfaitement sécurisée : en aucun cas les numéros de carte bancaire, ou quelque information sensible que ce soit ne transite par nos serveur. Cette méthode, via cURL, permet simplement de faire ce que vous pourriez faire directement sur un serveur dédié, avec la fonction exec() activée.

Dans le fichier call_request.php, vers la fin, remplacez

$result=exec("$path_bin $parm");

par

$base64Pathfile = base64_encode(file_get_contents("param/pathfile"));
$base64Cert = base64_encode(file_get_contents("param/certif.fr.//000000000000000//"));
$base64parmcomComm = base64_encode(file_get_contents("param/parmcom.//000000000000000//"));
$base64parmcomDefaut = base64_encode(file_get_contents("param/parmcom.//presta//"));
$base64Params = base64_encode($parm);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://atos.dinhosting.fr/request");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "params=".$base64Params.
                                       "&pathfile=".$base64Pathfile.
                                       "&cert=".$base64Cert.
                                       "&parcomCom=".$base64parmcomComm.
                                       "&parcomDefaut=".$base64parmcomDefaut);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);

Dans les fichiers call_response.php et call_autoresponse.php, remplacez

$result = exec("$path_bin $pathfile $message");

par

$identifiant = "000000000000000";

$base64Pathfile = base64_encode(file_get_contents("param/pathfile"));
$base64Cert = base64_encode(file_get_contents("param/certif.fr.//000000000000000//"));
$base64parmcomComm = base64_encode(file_get_contents("param/parmcom.//000000000000000//"));
$base64parmcomDefaut = base64_encode(file_get_contents("param/parmcom.//presta//"));
$base64Message = base64_encode($message);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://atos.dinhosting.fr/response");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "message=".$base64Message.
                                       "&pathfile=".$base64Pathfile.
                                       "&cert=".$base64Cert.
                                       "&parcomCom=".$base64parmcomComm.
                                       "&parcomDefaut=".$base64parmcomDefaut.
                                       "&identifiant=".$identifiant);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);

Vous devrez adapter certains chemins, dont l'identifiant commerçant (000000000000000 dans notre exemple) et le nom du prestataire (presta dans notre exemple). L'exemple suppose que vos fichiers sont placés dans le répertoire param/ comme suggéré dans la documentation officielle.

Attention : l'adresse https://atos.dinhosting.fr/ est une adresse interne au réseau Din'Hosting et n'est pas accessible de l'extérieur.

Paybox

Le module Paybox est préinstallé dans sa version 2 et sa version 3, selon la version qui vous intéresse, aux adresses

http://paybox.dinhosting.fr/payboxv2.cgi
http://paybox.dinhosting.fr/payboxv3.cgi 

Ce sont ces URL qui seront à placer dans vos scripts d'appel à Paybox.

paiement_en_ligne.txt · Dernière modification: 19/07/2015 19:29 (modification externe)