Retour PAYBOX en Php 5.3 et plus, Validation de commande avec le retour PAYBOX en PHP 5.3 |
Bienvenue invité ( Connexion | Inscription )
Retour PAYBOX en Php 5.3 et plus, Validation de commande avec le retour PAYBOX en PHP 5.3 |
12 Feb 2014, 10:09
Message
#1
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Bonjour à tous,
Mon module de carte bancaire ne fonctionne plus de puis le changement de notre serveur et la mise à jour de PHP 5.3 Après 3 nuits blanches je me retourne vers les experts de notre communauté. Voici les informations concernant le nouveau serveur: Système d'exploitation : Linux 2.6.32 Serveur HTTP : Apache Version PHP : 5.3.20 (Zend : 2.3.0) Base de données : MySQL 5.1.71 site en HTTPS et enfin ma version oscommerce: osCommerce Online Merchant v2.2 RC1 W3C Valid FR installation du module PAYBOX de Mr delaballe : contribution PAYBOX et suivi les instructions de ce topic : lien retour PAYBOX j'ai le meme soucis que rol et GnidHal a commencer une piste avec un problème similaire avec ATOS j'ai fait également les modifications proposé sur : application_top.php Voila pour l'historique, et voici les résultats: Le client peut passer sa commande, il paye , je reçoit le mail de paiement succès, mais son panier ne se vide pas et la commande n'est pas enregistrée dans l'ADMIN. le test que j'ai fait en ligne pour un montant de 6 euros, une fois cliqué sur RETOUR BOUTIQUE de paybox m'affiche ceci: "https://www.monsite.com/checkout_success.php?pbx=1&osCsid=qunuj39l0689rsipj4v7dstqs4&osCsid=qunuj39l0689rsipj4v7dstqs4&PBX_TOTAL=600&auto=424840&erreur=00000" et le ticket de paiement par mail: Ref commande:qunuj39l0689rsipj4v7dstqs4 CARTE BANCAIRE le 11/02/2014 à 21:57 AUTO: 424840 MONTANT = 6.00 EUR TICKET A CONSERVER Avez vous une idée des modifications a faire dans reponse_paybox et checkout_success.php pour les problèmes de session en PHP 5.3 ? Au pire peut ton valider directement la commande dans l'admin des le retour de paybox sans se soucier des sessions ? (en modifiant le code, sans passer par OrderCheck_v2.2) Merci pour votre aide |
|
12 Feb 2014, 13:10
Message
#2
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
j' ai oublié de vous préciser que je reçois un second mail de PAYBOX:
Erreur : Paiement par Carte Bancaire Erreur sur la boutique : La session n'a plus être ouverte ! elle est inexistante ou bien elle a expirée CECI EST UN MESSAGE AUTOMATIQUE, MERCI DE NE PAS REPONDRE. J'attends votre aide avec impatience... |
|
12 Feb 2014, 15:50
Message
#3
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour
Si je comprends bien, la session est fermée quasi-instantanément, car je ne penses pas que tu aies attendu 20 minutes pour tes essais. Le nouveau serveur a quel réglage pour session.gc_maxlifetime (cf ici)? la normale est 1440. C'est dans phpinfo et si ce paramètre est mal réglé dans le serveur, la manip de la FAQ là est insuffisante: le serveu coupe avant la limite que tu fixes dans le code. C'est modifiable par ini_set() ou dans .htaccess Bons essais ! Chti poupon |
|
12 Feb 2014, 16:46
Message
#4
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Bonjour,
j'ai vérifier le serveur et le PHP est bien session.gc_maxlifetime est réglé à 1440 et j'ai allongé le temps à 3600 dans l'admin , en vain car le site est en production et j'ai toujours : erreur sur la boutique : La session n'a plus être ouverte ! elle est inexistante ou bien elle a expirée voici les valeurs session: Session Support enabled Registered save handlers files user sqlite Registered serializer handlers php php_binary wddx Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 Off Off session.bug_compat_warn Off Off session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_httponly Off Off session.cookie_lifetime 0 0 session.cookie_path /ajouprod/ / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 1000 1000 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 5 5 session.hash_function 0 0 session.name osCAdminID PHPSESSID session.referer_check no value no value session.save_handler user files session.save_path /var/lib/php/session /var/lib/php/session session.serialize_handler php php session.use_cookies On On session.use_only_cookies On On session.use_trans_sid 0 0 Je me demande si ce n'est pas la valeur de session name qui fait le problème local value: osCAdminID et master value: PHPSESSID , ou alors un autre mauvais réglage du serveur ? |
|
12 Feb 2014, 21:50
Message
#5
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Quels réglages de session dans l'admin et dans les configure.php ?
|
|
12 Feb 2014, 22:16
Message
#6
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
hello chti poupon, merci pour ton aide.
voici pour le configure .php: define('STORE_SESSIONS', 'mysql'); et pour la partie admin: Titre Valeur Répertoire des sessions /tmp Utilisation de force des cookies Non Vérifiez l'identification de session Non Vérifiez l'utilisateur Non Vérifiez l'adresse IP Non Empêchez les sessions d'araignée Non Recréez une session Oui |
|
13 Feb 2014, 10:34
Message
#7
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour
Ce réglage n'est pas celui recommandé dans la FAQ ici Par ailleurs, permettre aux robots de créer des sessions peut surcharger par moments le serveur. interdire les sessions d'araignée n'empêche pas les robots désignés d'explorer ton site. Bons essais ! Chti poupon |
|
13 Feb 2014, 11:08
Message
#8
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Bonjour,
la partie réglage de la F.A. ne fonctionne pas non plus, il reste 2 pistes: Mauvais paramétrages du serveur ? le code PHP5.3 qui a changer de code pour la gestion des cessions ? |
|
13 Feb 2014, 20:08
Message
#9
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Les fichiers function/session.php sont quasi identiques en 2.2 et en 2.3.1, prévue pour 5.3 et +.
La table session se remplit-elle corrrectement lors des essais ? Voir la FAQ rebrique sessions, notamment là |
|
13 Feb 2014, 21:11
Message
#10
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
La table se remplit correctement apparement:
voici un extrait : Textes complets sesskey : 62gb1t3s1hdapid9bd0b5fcdm3 expiry : 1392311185 value : cart|O:12:"shoppingCart":4:{s:8:"contents";a:0:{}s... pour ce qui est du code admin/include/session.php : c'était OK par rapport à la F.A.Q coté catalogue la modification avait été effectué mais avec une légère différence dans le code: function tep_session_save_path($path = '') { if (STORE_SESSIONS != 'mysql') { // added this line to turn off this checking if storing session info in db if (!empty($path)) { return session_save_path($path); } else { return session_save_path(); } } } en fait : if (!empty($path)) {... au lieu de: if ($path != '') {... pour moi c'est la meme chose mais nous verrons bien??? |
|
14 Feb 2014, 09:30
Message
#11
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
La table session.php se remplit
voici l' extrait du code application_top.php qui fait appel à la fonction session: // set the session cookie parameters if (function_exists('session_set_cookie_params')) { session_set_cookie_params(0, $cookie_path, $cookie_domain); } elseif (function_exists('ini_set')) { ini_set('session.cookie_lifetime', '0'); ini_set('session.cookie_path', $cookie_path); ini_set('session.cookie_domain', $cookie_domain); } par contre le problème est peut être lié au fait que j'ai supprimé le répertoire catalog , qui est directement à la racine du site ? voici un extrait de configure.php: define('HTTP_COOKIE_DOMAIN', 'www.mondomaine.com'); define('HTTPS_COOKIE_DOMAIN', 'mondomaine.com'); define('HTTP_COOKIE_PATH', '/'); define('HTTPS_COOKIE_PATH', '/'); et le htaccess à la racine du www : #RewriteBase / RewriteRule ^(.*)-p-(.*).html$ /product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ /index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ /index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ /popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ /articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ /article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ /product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ /product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ /information.php?info_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-links-(.*).html$ /links.php?lPath=$2&%{QUERY_STRING} <IfModule mod_rewrite.c> RewriteEngine On RewriteRule produit/([a-z]+) /advert.php?id=$1 </IfModule> ErrorDocument 404 /404.html # MOD_DEFLATE COMPRESSION SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php #Pour les navigateurs incompatibles BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html #ne pas mettre en cache si ces fichiers le sont déjà SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip #les proxies doivent donner le bon contenu Header append Vary User-Agent env=!dont-vary # BEGIN Expire headers <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 7200 seconds" ExpiresByType image/jpg "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" AddType image/x-icon .ico ExpiresByType image/ico "access plus 2592000 seconds" ExpiresByType image/icon "access plus 2592000 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType text/css "access plus 2592000 seconds" ExpiresByType text/javascript "access plus 2592000 seconds" ExpiresByType text/html "access plus 7200 seconds" ExpiresByType application/xhtml+xml "access plus 7200 seconds" ExpiresByType application/javascript A259200 ExpiresByType application/x-javascript "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" </IfModule> # END Expire headers # BEGIN Cache-Control Headers <IfModule mod_headers.c> <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> <FilesMatch "\\.(css)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> <FilesMatch "\\.(js)$"> Header set Cache-Control "max-age=2592000, private" </FilesMatch> <filesMatch "\\.(html|htm)$"> Header set Cache-Control "max-age=7200, public" </filesMatch> # Disable caching for scripts and other dynamic files <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule> # END Cache-Control Headers # KILL THEM ETAGS Header unset ETag FileETag none # protect wpconfig.php <files wp-config.php> order allow,deny deny from all </files> # protect the htaccess file <files .htaccess> order allow,deny deny from all </files> # protection de la lecture des répertoires Options -Indexes |
|
14 Feb 2014, 12:20
Message
#12
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour
Pas de problème, puisque la table session se remplit, apparemment normalement. La boutique sous la racine est normale, et le rewrite correct. Par contre, la partie "cache" du fichier .htaccess, bien que correcte
Bons essais ! Chti poupon |
|
14 Feb 2014, 17:06
Message
#13
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Bonjour chti poupon,
j'ai enlever le # BEGIN Cache-Control Headers.... du ht.access, mais ça ne fonctionne toujours pas, je suis suis vraiment à court d'idée , à part peut être changer le modulev2.cgi fourni par e-transaction du crédit agricole par un plus récent si je trouve ca quelque part ? ou alors faut il faire d'autre vérification sur la partie oscommerce ou serveur ? |
|
15 Feb 2014, 11:09
Message
#14
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Afin d'écarter le module de carte bancaire fourni par le crédit agricole, j'ai fait les tests de 5 modules reçu
transfert des modules via FTP en binaire et réglage des attribut à 755: voici le résultat: 1/ module_debian64bits_noyau2-6-18_libc2-3-6.cgi réponse de fonctionnement du cgi: PAYBOX INPUT ERROR (code -3) Version 307 - Sources 5.02 réponse appel serveur carte: AUCUN SERVEUR DISPONIBLE Version 307 - Sources 5.02 2/ module_fedora64bits_noyau2-6-16_libc2-3-6.cgi réponse de fonctionnement du cgi: PAYBOX INPUT ERROR (code -3) Version 302 - Sources 5.01 réponse appel serveur carte: paiment OK mais Erreur sur la boutique : La session n'a plus être ouverte ! elle est inexistante ou bien elle a expirée 3/ modulev3_rhe5_64bits.cgi réponse de fonctionnement du cgi: Internal Server Error 4/ modulev3.14_rhe5_64bits.cgi réponse de fonctionnement du cgi: PAYBOX INPUT ERROR (code -3) Version 314 - Sources 5.02 réponse appel serveur carte: paiment OK mais Erreur sur la boutique : La session n'a plus être ouverte ! elle est inexistante ou bien elle a expirée 4/ modulev211_Linux64bits.cgi réponse de fonctionnement du cgi: PAYBOX INPUT ERROR (code -3) Version 211 - Sources 4.10 réponse appel serveur carte: paiment OK mais Erreur sur la boutique : La session n'a plus être ouverte ! elle est inexistante ou bien elle a expirée 5/ modulev210_linux64bits.cgi réponse de fonctionnement du cgi: PAYBOX INPUT ERROR (code -3) Version 210 - Sources 4.10 réponse appel serveur carte: paiment OK mais Erreur sur la boutique : La session n'a plus être ouverte ! elle est inexistante ou bien elle a expirée Donc nous pouvons écarter le probléme du modulev2.cgi et se concentrer sur les modules en PHP |
|
16 Feb 2014, 16:46
Message
#15
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Bonjour à tous,
coté banque voici le paramétrage si ca peut vous aider à solutionner mon problème: Adresse URL retour OK: http://www.monsite.com/checkout_process.php Adresse URL retour erreur: http://www.monsite.com/checkout_payment.php Adresse URL retour abandon: http://www.monsite.com/checkout_payment.php Adresse URL retour attente: (vide) |
|
9 Mar 2014, 12:01
Message
#16
|
|
Ceinture blanche OSC Groupe : Membres Messages : 15 Inscrit : 12-February 14 Membre no 32534 |
Le problème est enfin résolu..., merci à Sebastien B. de chessy pour son aide.
En fait le fichier response_paybox.php de la contribution PAYBOX de Delaballe n'est pas compatible avec les versions de PHP 5.3 et + Voici donc les modifications sur le fichier d'origine: REMPLACER: // Récuparation des données renvoyées par la banque $request_method = $HTTP_SERVER_VARS["REQUEST_METHOD"]; $wRequestVars = "HTTP_" . $request_method . "_VARS"; $RequestVars = ${$wRequestVars}; // On récupére la session utilisé après par le fichier application_top.php session_name($RequestVars['osCsid']); include('includes/application_top.php'); PAR: // Récuparation des données renvoyées par la banque /*$request_method = $_SERVER["REQUEST_METHOD"]; $wRequestVars = "HTTP_" . $request_method . "_VARS"; $_GET = ${$wRequestVars};*/ // On récupére la session utilisé après par le fichier application_top.php session_name($_GET['osCsid']); $response_paybox_call = 'true'; include('includes/application_top.php'); Puis remplacer dans tous le fichier: $RequestVars par: $_GET Pour les problèmes de sessions faire la mise à niveau de PHP5.3 avec cette contribution: Mise à jour PHP 5.3 Pour les changements de code PHP 5.3+: Fonctionnalités obsolètes en PHP 5.3.x Faire les mise à jours d'oscommerce : v2.2 to v2.3.0 puis v2.3.0 to v2.3.1 et voila le tour est joué....j'espère que mes recherches vont vous faire gagner du temps, car j'ai fai quelque nuits blanche pour trouver la solution. |
|
Version bas débit | Nous sommes le : 29th March 2024 - 01:18 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |