Bonjour à tous,
Après avoir du mettre à jour ma version de PHP sur mon dédié j'ai rencontré un problème de validation des commandes payées par Citélis via Atos.
Notez au passage que Citélis n'a rien à voir là dedans car Atos est aussi utilisé par de nombreux autres systèmes de paiement.
Je voulais passer en php 5.2.x mais mon système de mise à jour Plesk m'a obligé à prendre un PHP 5.3.3
Bon, ok, mes scripts étaient prêts pour le 5.3 mais j'ai rencontré le problème des retours de paiement maintes fois cités ici pour lequel aucune réponse n'a été trouvée.
Des dizaines d'essais, des traceurs dans les scripts, l'observation des logs m'ont amené à constater que la session n'était pas récupérée dans checkout_process.php directement appelé par le serveur de la banque.
Le module Atos comporte en effet 3 lignes qui doivent normalement être renseignées comme suit :
Salut
Effectivement je me suis jamais penché sur ce qui faisait défaut sur PHP 5.3 : j'ai ouvert des portes dans des topics mais on ne m'a pas répondu ...
Donc bien vu pour le correctif
Par contre, simple curiosité personnelle, peux tu me dire ce qui diffère entre 5.2 et 5.3 qui engendre cette erreur ? car le traitement est le même ...
Pour la partie panier (l'effacement), désolé, j'avais pas vu l'erreur, je corrigerais si tu ne l'as pas fait d'ici là.
PS : tu as bu ou quoi ? je n'ai jamais vu autant de fautes d'orthographe dans l'un de tes topics
Non rien bu, mais parfois la fatigue de fin de journée m'amène à oublier quelques règles élémentaires d'accord
Je pense que la cause est le mode de connexion SSL ou non.
Dans application_top tu ne peux passer l'id de session en get si la connexion n'est pas SSL.
le lien est construit dans le module ATOS autour de la variable $request_type qui détermine le SSL
Il me semble donc que la cause est de ce coté et dans ce cas à rapprocher de la ligne application_top qui contient getenv('HTTPS').
En effet, selon la config PHP, cette requête ne retourne pas forcément 'on' mais peut-être 1 ou autre chose...
Par ailleurs comment peut-on récupérer un lien SSL visiblement obligatoire si on a pas configuré sa boutique en SSL ?
J'ai pas creusé et j'ai fixé en testant la variable POST 'DATA' ce qui ne présente pas de problème de sécurité car la validation de la commande ne peut se faire si justement cette variable $_POST['DATA'] n'est pas correctement remplie et que la requête ne vient pas du serveur de banque.
Pour ce qui est du fix de la contrib, je te laisse faire si tu veux. Mais ton procédé "anti hack" me parait superflu
Merci pour le debriefing
merci Gnidhal !!
Oui merci Gnidhal !!
je suppose que tu parles de la 2.3.1 et non de la 2.1.3
Non pas très différent à l'exception du fait que $_POST est écrit $HTTP_POST_VARS mais j'explique plus haut cette différence de notation des variables $_GET et $_POST
Compares le code en place et le code que je fournis
Oui après coup , j'ai vue que le code que tu fourni fonctionne également en OSC 2.1.3, j'avais mal lu , merci encore.
Désolé.
Bonjour,
Je suis actuellement en MS2.2 + PHP5.3 et parmi toutes les contributions disponibles (2.8, 3.2) aucune ne fonctionne chez moi.
J'ai toujours ce problème de panier plein et de commande non créée malgré un paiement CB accepté.
J'ai bien essayé de combiner ton code Gnidhal avec les autres contribs mais rien n'y fait... :/
Où puis-je trouver une contribution cohérente qui tienne compte de ma version d'Osc et du niveau PHP5.3 du serveur ?
Les 2 peuvent-ils être compatibles ensemble avec ATOS ou faut-il nécessairement upgrader OsC en 2.3 ?
Merci de votre aide.
bonjour, pas eu de réponse ? car même pb ici....
perso pour le retour atos vers checkout_process sur un serveur Ubuntu 12.04 ayant php5.3 sur une contrib MS2 j'ai juste ajouter ça au tout début du fichier checkout_process.php:
Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)