Utilisation du module Paybox avec Zenolithe sous EasyPHP/Windows.

Transcription

Utilisation du module Paybox avec Zenolithe sous EasyPHP/Windows.
Utilisation du module Paybox avec Zenolithe sous EasyPHP/Windows.
Ce document décrit un exemple d'utilisation du module de paiement en ligne de Paybox dans Zenolithe, via le mode « ligne de commande ».
Pour plus de détails sur les paramètres et sur les différents modes d'utilisations, veuillez vous reporter à la documentation officielle de Paybox (téléchargeable sur Pleiad), chapitre IV (« Lancement du modulev2.cgi »).
Le lancement par mode « formulaire HTML » est le plus aisé à comprendre et à mettre en oeuvre, mais il est moins bien sécurisé. C'est pourquoi il est recommandé d'utiliser par exemple le mode « ligne de commande », comme indiqué ci­après.
NB : Si vous utilisez le mode « formulaire HTML », il vous faudra vérifier que le module CGI est bien activé (c'est le cas par défaut avec EasyPHP). Pour le mode « ligne de commande », ce n'est pas nécessaire.
1. Récupération du CGI
Récupérez sur Pleiad le fichier « Paybox module CGI pour Windows » et copiez le par exemple dans le répertoire cgi­bin/ d'EasyPHP (par défaut : c:\Program Files\EasyPHP\cgi­bin\ ).
Renommez le en remplaçant l'extension .exe en .cgi . (NB : dans la suite de ce tutoriel, le fichier est renommé en paybox.cgi ).
2. Configuration de Zenolithe
Ajoutez au fichier de configuration de Zenolithe (fichier PHP­INF/conf/zenolithe.conf.php dans le répertoire d'installation de Zenolithe) la ligne suivante, pour préciser le chemin d'accès au module CGI de paybox (à adapter selon votre configuration) :
$context['paybox_cgi'] = '"C:/Program Files/EasyPHP/cgi­bin/paybox.cgi"';
NB : bien noter les quotes doubles ET les quotes simples.
3. Création du formulaire de paiement
Dans la page de validation de votre panier d'achat, ajoutez un formulaire de paiement :
<?php
$paybox_page = $context['name'].'/samples/paybox/paybox.php';
// adaptez la variable avec une URL de votre convenance.
?>
<form action="<?php echo $paybox_page ?>" method="post">
<!­­ Ajoutez ici des paramètres optionnels à transmettre au formulaire ­­> <input type="submit" name="bouton_paiement" value="paiement" />
</form>
4. Appel du module CGI
Créez une vue correspondant à l'URL du formulaire créé au point précédent (dans l'exemple présent : PHP­INF/views/samples/paybox/paybox.php) pour y ajouter la commande d'inclusion du module paybox :
<?php
// Initialisation des variables (à récupérer en session, // ou dans la configuration de zenolithe, par exemple) :
// valeurs fixes :
$pbx_mode = '4'; // 4 = "mode en ligne de commande". À ne pas changer.
$pbx_site = '1999888'; // Site de test. À ne pas changer.
$pbx_rang = '99'; // boutique de test. À ne pas changer.
$pbx_identifiant = '2'; // boutique de test. À ne pas changer.
$pbx_devise = '978'; // code de la devise. // (Euros : 978 | Francs suisses : 756 | US Dollars : 840)
$pbx_retour = 'montant:M;ref:R;auto:A;trans:T'; // Variables renvoyées par Paybox
// URLs de retour (à adapter selon votre cas) :
$pbx_effectue = $context['server_url_context'].'paybox/ok.php';
$pbx_refuse = $context['server_url_context'].'paybox/error.php';
$pbx_annule= $context['server_url_context'].'paybox/cancel.php';
// valeurs variables :
$pbx_total = 1500; // montant total en centimes (nombre entier).
$pbx_cmd = 'ma_reference_123456'; // référence de la commande.
$pbx_porteur = '[email protected]'; // Adresse email de l'acheteur.
// Liste des options Paybox (bien séparer chaque option par des espaces) :
$pbx_options = 'PBX_MODE='.$pbx_mode;
$pbx_options .= ' PBX_SITE='.$pbx_site;
$pbx_options .= ' PBX_RANG='.$pbx_rang;
$pbx_options .= ' PBX_IDENTIFIANT='.$pbx_identifiant;
$pbx_options .= ' PBX_TOTAL='.$pbx_total;
$pbx_options .= ' PBX_DEVISE='.$pbx_devise;
$pbx_options .= ' PBX_CMD='.$pbx_cmd;
$pbx_options .= ' PBX_PORTEUR='.$pbx_porteur;
$pbx_options .= ' PBX_EFFECTUE='.$pbx_effectue;
$pbx_options .= ' PBX_REFUSE='.$pbx_refuse;
$pbx_options .= ' PBX_ANNULE='.$pbx_annule;
$pbx_options = escapeshellcmd($pbx_options) . ' PBX_RETOUR='.$pbx_retour;
// Appel du module CGI :
echo shell_exec($context['paybox_cgi'].' '.$pbx_options);
?>
La fonction shell_exec() fait un appel de commande shell. escapeshellcmd() permet d'échapper les caractères spéciaux afin d'éviter les possibles attaques par injection de code.
NB : Dans un cas simple de réutilisation directe de données présentes en session ou transmises par le formulaire, on peut se contenter d'utiliser une simple vue. Si vous avez besoin d'effectuer d'autres opérations avant de transmettre les données à paybox, il est conseillé d'utiliser le modèle MVC comme pour vos autres pages (url_mapping, contrôleurs, etc.).
Ce code devrait vous rediriger sur la plateforme Paybox avec les données de la boutique de test. Vous pouvez alors simuler un paiement en ligne, valide ou non valide.
Pour effectuer des tests de paiement CB, vous pouvez utiliser le numéro CB suivant : Numéro CB : 1111222233334444 Cryptogramme visuel : 123 Date expiration : > date du mois en cours.
Attention : Plusieurs demandes de paiement successives sur la même référence de commande provoqueront une erreur. Veuillez donc vous assurer de bien générer un numéro de commande aléatoire à chaque test.

Documents pareils