Bonjour,
Nous avons récemment migré notre site (HTML/PHP) sous Joomla 2.5, avec les extensions suivantes : FlexiContent, Chronoforms, Sourcerer, sh404SEF.
Nous disposions sur l'ancien site d'un système de paiement en ligne qui permettait à nos clients de payer leurs factures en ligne avec le module PAYBOX.
Ce système fonctionnait ainsi :
1) le client saisissait le n° de facture et un identifiant unique affiché sur sa facture + une adresse mail dans un premier formulaire
2) A la soumission, le formulaire allait vérifier dans un fichier texte si la combinaison n° facture + identifiant existe et rapportait les infos nécessaires à PAYBOX, notamment le montant de la facture. Sur la page de retour on affichait donc ces infos et un formulaire en champs cachés spécifique à PAYBOX. Le submit de ce 2e form, était un fichier .cgi situé à la racine du site.
Aujourd'hui, sous Joomla!, plus moyen de faire fonctionner cela, ça fait un mois que je tente de remettre l'outil d'aplomb.
J'en suis à ce stade :
1) j'uilise un chronoforms pour la saisie des identifiants
2) Je renvois (onSubmit) sur un article qui fait le traitement et affiche les infos + le formulaire en champs cachés de PAYBOX.
Quand je clique sur le submit de ce form, au lieu d'être renvoyé sur la page de paiement en ligne de PAYBOX, le fichier .cgi est téléchargé.
J'ai également contacté le support de PAYBOX, mais n'ai jamais reçu de réponse. Et je ne peux bien-sûr pas changer de fournisseur car nous sommes une université et ce n'est pas moi qui décide hein !
Je joins mon code source de l'article :
Je vous remercie par avance pour votre aide
Nous avons récemment migré notre site (HTML/PHP) sous Joomla 2.5, avec les extensions suivantes : FlexiContent, Chronoforms, Sourcerer, sh404SEF.
Nous disposions sur l'ancien site d'un système de paiement en ligne qui permettait à nos clients de payer leurs factures en ligne avec le module PAYBOX.
Ce système fonctionnait ainsi :
1) le client saisissait le n° de facture et un identifiant unique affiché sur sa facture + une adresse mail dans un premier formulaire
2) A la soumission, le formulaire allait vérifier dans un fichier texte si la combinaison n° facture + identifiant existe et rapportait les infos nécessaires à PAYBOX, notamment le montant de la facture. Sur la page de retour on affichait donc ces infos et un formulaire en champs cachés spécifique à PAYBOX. Le submit de ce 2e form, était un fichier .cgi situé à la racine du site.
Aujourd'hui, sous Joomla!, plus moyen de faire fonctionner cela, ça fait un mois que je tente de remettre l'outil d'aplomb.
J'en suis à ce stade :
1) j'uilise un chronoforms pour la saisie des identifiants
2) Je renvois (onSubmit) sur un article qui fait le traitement et affiche les infos + le formulaire en champs cachés de PAYBOX.
Quand je clique sur le submit de ce form, au lieu d'être renvoyé sur la page de paiement en ligne de PAYBOX, le fichier .cgi est téléchargé.
J'ai également contacté le support de PAYBOX, mais n'ai jamais reçu de réponse. Et je ne peux bien-sûr pas changer de fournisseur car nous sommes une université et ce n'est pas moi qui décide hein !
Je joins mon code source de l'article :
Code:
{source} <?php // Ouverture du fichier texte en lecture seule $fichier = fopen ("facture.txt", "r"); // Chaînes à retrouver : identifiant et n° de facture saisis $identifiant = $_POST["num_internet"]; $facture = $_POST["num_facture"]; // On récupère l'e-mail $email = $_POST["courriel"]; // Les infos ne sont pas encore valides $valide = false; // N° de Ligne de départ = 0 $numligne=0; while ((!feof($fichier)) and ($valide == false)) { // On regarde dans la ligne si on trouve l'identifiant $ligne = fgets($fichier, 4096); $tab_enr = explode(';', $ligne); // Si on trouve l'identifiant if (($tab_enr[0] == $identifiant) and ($tab_enr[1] == $facture)) { list($id, $numfac, $nomC, $montant, $adresse, $cp, $commune) = $tab_enr ; // Les informations sont valides $valide=true; } } if ($valide==true) { $montantdec=$montant/100; // On affiche les informations du client //echo '<h1>Paiement en ligne de votre facture</h1>'; echo '<h3>' . utf8_encode($nomC) . '</h3>'; echo 'Domicilié(e) :' . utf8_encode($adresse) . ' - ' . $cp . ' ' . $commune . '<br/><br/>'; echo 'Vous souhaitez régler la facture n° <b>' . $numfac . ', d\'un montant de <b>' . $montantdec . '€</b>.<br/><br/>'; // On prépare le formulaire d'envoi à Paybox echo '<FORM ACTION = "../cgi-bin/modulev2_CentOS_42.cgi" METHOD = "POST" name="paybox" id="paybox"> <INPUT TYPE = "hidden" NAME = "PBX_CMD" value="SERFA_' . $numfac . '"> <INPUT TYPE = "hidden" NAME = "PBX_TOTAL" value="' . $montant . '"> <INPUT TYPE = "hidden" NAME = "PBX_PORTEUR" value="' . $email . '"> <INPUT TYPE = "hidden" NAME = "PBX_LANGUE" VALUE = "FRA"> <INPUT TYPE = "hidden" NAME = "PBX_MODE" VALUE = "13"> <INPUT TYPE = "hidden" NAME = "PBX_OPT" VALUE = "/home/serfa/public_html/cgi-bin/serfapaybox.txt"> <INPUT TYPE = "hidden" NAME = "PBX_EFFECTUE" VALUE = "http://www.serfa.fr/web/fr_merci.htm"> <INPUT TYPE = "hidden" NAME = "PBX_REFUSE" VALUE = "http://www.serfa.fr/web/fr_regret.htm"> <INPUT TYPE = "hidden" NAME = "PBX_ANNULE" VALUE = "http://www.serfa.fr/web/fr_annul.htm"></td></tr>'; echo '<input type="submit" name="btn_paybox" value="Payer ma facture"/></FORM>'; } else { $jApp = JFactory::getApplication(); $jApp->redirect('../component/com_chronoforms/Itemid,181/view,form/', 'Les informations que vous avez saisies ne sont pas valides.<br/>Veuillez renouveler votre saisie ci-dessous :'); } //Fermeture du fichier fclose ($fichier); ?> {/source}
Commentaire