osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Retour PAYBOX en Php 5.3 et plus, Validation de commande avec le retour PAYBOX en PHP 5.3
PhiDel80
posté 12 Feb 2014, 10:09
Message #1


Ceinture blanche OSC
Icône de groupe

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

Go to the top of the page
 
PhiDel80
posté 12 Feb 2014, 13:10
Message #2


Ceinture blanche OSC
Icône de groupe

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...
Go to the top of the page
 
chti_poupon
posté 12 Feb 2014, 15:50
Message #3


Ceinture noire OSC
Icône de groupe

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 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
Go to the top of the page
 
PhiDel80
posté 12 Feb 2014, 16:46
Message #4


Ceinture blanche OSC
Icône de groupe

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 ?





Go to the top of the page
 
chti_poupon
posté 12 Feb 2014, 21:50
Message #5


Ceinture noire OSC
Icône de groupe

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 ?
Go to the top of the page
 
PhiDel80
posté 12 Feb 2014, 22:16
Message #6


Ceinture blanche OSC
Icône de groupe

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

Go to the top of the page
 
chti_poupon
posté 13 Feb 2014, 10:34
Message #7


Ceinture noire OSC
Icône de groupe

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
Go to the top of the page
 
PhiDel80
posté 13 Feb 2014, 11:08
Message #8


Ceinture blanche OSC
Icône de groupe

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 ?

Go to the top of the page
 
chti_poupon
posté 13 Feb 2014, 20:08
Message #9


Ceinture noire OSC
Icône de groupe

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
Go to the top of the page
 
PhiDel80
posté 13 Feb 2014, 21:11
Message #10


Ceinture blanche OSC
Icône de groupe

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???






Go to the top of the page
 
PhiDel80
posté 14 Feb 2014, 09:30
Message #11


Ceinture blanche OSC
Icône de groupe

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




Go to the top of the page
 
chti_poupon
posté 14 Feb 2014, 12:20
Message #12


Ceinture noire OSC
Icône de groupe

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
  • fait double emploi avec le cache intégré, qui ne traite que ce qui est utile, quel que soit le navigateur
  • entre - peut-être - en conflit avec ce système intégré
  • n'est éventuellement pas compatible avec les fichiers retour de ton moyen de paiement


Bons essais !

Chti poupon
Go to the top of the page
 
PhiDel80
posté 14 Feb 2014, 17:06
Message #13


Ceinture blanche OSC
Icône de groupe

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 ?
Go to the top of the page
 
PhiDel80
posté 15 Feb 2014, 11:09
Message #14


Ceinture blanche OSC
Icône de groupe

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
Go to the top of the page
 
PhiDel80
posté 16 Feb 2014, 16:46
Message #15


Ceinture blanche OSC
Icône de groupe

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)

Go to the top of the page
 
PhiDel80
posté 9 Mar 2014, 12:01
Message #16


Ceinture blanche OSC
Icône de groupe

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. biggrin.gif

Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS 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)