Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
*

Module de paiement CM-CIC


Pages: 1 [2] 3 4
  Imprimer  

  Module de paiement CM-CIC
Auteur Message
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #15 le: 24 Juin 2008 à 18:04:30 »

Envoie ici le debut de ton code de la ligne 1 à MoveNext() tel qu'il est.
Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #16 le: 24 Juin 2008 à 18:11:31 »

Code:
<?php
// set the level of error reporting 
error_reporting(E_ALL);

//recuparation des données renvoyées par la banque
$request_method $_SERVER["REQUEST_METHOD"];
$wRequestVars "_" $request_method;
$RequestVars = ${$wRequestVars};

// include server parameters
require('includes/configure.php');
  
// include the list of project filenames
require(DIR_WS_INCLUDES 'filenames.php');
// include the list of project database tables
require(DIR_WS_INCLUDES 'database_tables.php');
// include the database functions
require(DIR_WS_FUNCTIONS 'database.php');

// make a connection to the database... now
zen_db_connect() or die('Unable to connect to database server!');
// set application parameters
global $db;
$configuration $db->Execute('select configuration_key as cfgKey, configuration_value as cfgValue from ' TABLE_CONFIGURATION);
while (!
$configuration->EOF) {
  
define($configuration->fields['cfgKey'], $configuration->fields['cfgValue']);
  
$configuration->MoveNext();
}

C'est moi qui ai mis le error_reporting sur ALL, je voulais voir s'il y avait des NOTICES à trainer...
Journalisée
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #17 le: 24 Juin 2008 à 18:52:47 »

Ah ouais,  c'est laquelle la ligne 33 ?? Y avait pas des commentaires avant ?
Moi, j'ai dans cybermut pour zencart 1.1
Code:
$request_method = $HTTP_SERVER_VARS["REQUEST_METHOD"];
$wRequestVars = "HTTP_" . $request_method . "_VARS";
« Dernière édition: 24 Juin 2008 à 18:57:00 par gob33 » Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #18 le: 24 Juin 2008 à 21:25:53 »

Ouuuups, toutes mes confuses, j'avais viré tout le copyright  pour que ça soit plus plus clair, j'ai pas du tout calculé la numérotation des lignes  Embarassed

Donc voilà le début du code, dans son intégralité.
Code:
<?php
/** 
* Traite la reponse de la banque au commercant, renvoi sur checkout_process pour validation de la commande 
*
*      $Id$ cmcic_response.php v 1.0 30/01/2004 
*  
*      Contribution par E. DA MOTA aka Vilain Mamuth (vilain_mamuth@yahoo.com) 
*      Copyright 2003 MaCCS - Body's Cult http://www.bodyscult.com 
*/// remplace application top, enleve la contrainte du cookie qui n'existe pas lorsque le serveur de la banque envoi son code retour
// l'id de session est recupere à partir du champ texte-libre renvoyé par CM - CIC
// set the level of error reporting 
error_reporting(E_ALL);

//recuparation des données renvoyées par la banque
$request_method $_SERVER["REQUEST_METHOD"];
$wRequestVars "_" $request_method;
$RequestVars = ${$wRequestVars};
 
// include server parameters
require('includes/configure.php');
  
// include the list of project filenames
require(DIR_WS_INCLUDES 'filenames.php');
// include the list of project database tables
require(DIR_WS_INCLUDES 'database_tables.php');
// include the database functions
require(DIR_WS_FUNCTIONS 'database.php');

// make a connection to the database... now
zen_db_connect() or die('Unable to connect to database server!');
// set application parameters
global $db;
$configuration $db->Execute('select configuration_key as cfgKey, configuration_value as cfgValue from ' TABLE_CONFIGURATION);
while (!
$configuration->EOF) {
  
define($configuration->fields['cfgKey'], $configuration->fields['cfgValue']);
  
$configuration->MoveNext();
}
J'ai oublié de te dire que j'ai supprimé ces lignes :
Code:
if ($request_type == 'NONSSL') {
define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
} else {
define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
}

Qui viennent après la ligne 23, cad après
require('includes/configure.php');
Je les ai virées parce que ça me donnait ça comme message d'erreur :
"Notice: Undefined variable: request_type in C:\wamp\www\legrenierdelila\cmcic_response.php on line 21
Notice: Constant DIR_WS_CATALOG already defined in C:\wamp\www\legrenierdelila\cmcic_response.php on line 24
Fatal error: Call to a member function Execute() on a non-object in C:\wamp\www\legrenierdelila\cmcic_response.php on line 38"

Aaaaaaaargh, je craque (smiley qui devient dingue !!!)
Journalisée
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #19 le: 25 Juin 2008 à 14:43:08 »

Bon, on va pas faire dans la dentelle.
En fait, en comparant cmcic_response.php(A) et application_top.php de osC2.2(B),
on peut voir que c'est quasi la meme chose, tu peux suivre la sequence de démarrage du truc.
Mais (B) a évolué depuis 2004 et comprend donc de nouvelles lignes.

Donc je pense que tu peux arriver à le transposer sur ZC et ça fera plus d'erreurs.
Prendre application_top.php de ZC, le copier en cmcic_response.php.
Ajouter ensuite dedans, au bon endroit, le code spécifique cmcic pris dans (A) .
Ca sera forcement initialisé correctement . Il y a 3 bouts à recopier :

Code:
1er BOUT:
//recuparation des données renvoyées par la banque
$request_method = $HTTP_SERVER_VARS["REQUEST_METHOD"];
$wRequestVars = "HTTP_" . $request_method . "_VARS";
$RequestVars = ${$wRequestVars};


2eme BOUT:
// ********************************************************************************************************************
// recuperation de l'id de session contenu dans texte-libre
zen_session_id($RequestVars['texte-libre']);
// ********************************************************************************************************************


3eme BOUT (traitement et fin):
// ________________________________________________________________________________________________________________
include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);
// load selected payment module
include(DIR_WS_MODULES . 'payment/cmcic.php');
$payment_modules = new cmcic();

// load the selected shipping module
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);

require(DIR_WS_CLASSES . 'order.php');
$order = new order;

// on archive les données reçues de la banque dans la table cmcic_response
.............................................................
// remplacement de application bottom
// close session (store variables)
zen_session_close();
« Dernière édition: 25 Juin 2008 à 14:44:57 par gob33 » Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #20 le: 25 Juin 2008 à 18:18:50 »

Pffffff.
Merci pour le tuyau... mais ça marche pas Sad
Peut-être que j'ai pas fait ça correctement, mais au mieux j'arrive sur un "Content-type: text/plain Version: 1 Document falsifie" sans parler de la liste à rallonge de Notices, warnings et autres... 
Bon, ceci dit, c'est peut-être en bonne voie, puisque même si j'ai eu retour NOT OK du serveur CIC*, ça a quand même pris la commande dans la table cmcic_response, et ça a envoyé le mail de commande à la boutique, mais complètement vide...  Confused
* : Messages de retour NOT OK :
Code:
Fatal error:  Call to undefined function zen_db_insert_id() in <b>/monsite.com.com/cmcic_response.php</b> on line <b>238
J'ai donc ajouté la ligne :
// include the database functions
require(DIR_WS_FUNCTIONS . 'database.php');
Ce qui me donne alors :
Code:
Warning:  mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in /monsite.com/includes/functions/database.php on line 71
Fatal error:  Call to a member function reset() on a non-object in /monsite.com/cmcic_response.php on line398

Là, je viens de tout reprendre de zéro : cc de application_top.php en haut de mon fichier cmcic_response.php, puis j'ai procédé par élimination au fur et à mesure que les fatal errors et autres gros mots disparaissaient, et j'arrive à ça :
Code:
Notice: Use of undefined constant DOWN_FOR_MAINTENANCE_TYPE - assumed 'DOWN_FOR_MAINTENANCE_TYPE' in C:\monsite\includes\init_includes\init_customer_auth.php on line 25

Notice: Undefined index: texte-libre in C:\monsite\cmcic_response3.php on line 158
This function has been deprecated. Please use Register Globals Off compatible code

... Rolling Eyes
Journalisée
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #21 le: 26 Juin 2008 à 18:04:35 »

En partant de application_top.php de zencart, j'ajoute les bouts (1) et (2), pour le bout(3) je récupère checkout_process.php de zencart, et ça me donne le fichier ci-joint. J'ai aucun moyen de le tester vu que j'ai pas de boutique ni de compte cic.
Il est complètement différent et s'il marche pas ce sera pas étonnant.
Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #22 le: 26 Juin 2008 à 21:07:51 »

Gob

Merci, ça ne tourne pas encore, mais ça avance Wink enfin, j'espère !!!
Pour l'instant, j'ai commencé par reprendre des déclarations de variables qui ne passent pas en PHP5 (t'sais mon coup de gu**le  sifflotage), j'arrête pour ce soir, je ne pourrai pas m'y remettre avant lundi maintenant, c'est pas que ça arrange mes affaires, mais bon...
En tous cas, ça serait vraiment topissime si on arrivait à sortir un module qui tienne la route !

Bon week-end  Smile
Journalisée
Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #23 le: 01 Juillet 2008 à 22:57:47 »

Bon ben là, j'y capte plus grand chose...

Gob, j'ai mis ton fichier en error_reporting(E_ALL), histoire de repérer où ça pouvait coincer.
J'ai eu des dizaines et des dizaines de lignes de notice et warning, que j'ai éliminées au fur et à mesure. J'ai sans doute mal fait parce que j'arrive à ça :

Au mieux, plus de message d'erreur de type notice ou warning, ça me renvoie sur shopping_cart mais au final j'obtiens quand même une erreur
"Code retour : payetest CGI2 : NOT OK"
Avec comme message dans le mail de retour : rien. Que dalle nada.

Et sinon, j'ai comme message :
Content-type: text/plain Version: 1 Document falsifie

Et comme si ça suffisait pas, j'ai pas les mêmes messages d'erreur sous firefox ou sous IE, et idem en local que sur mon serveur distant.

Je craque un peu là...  Sad Sad Sad
Journalisée
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #24 le: 02 Juillet 2008 à 16:24:30 »

Ca ne marche pas au checkMAC() :
Code:
if (!$payment_modules->checkMAC($RequestVars)) {
// Quelque chose ne va pas dans la requête, on prévient la banque et on arrête tout
$payment_modules->sendAR("NotValid");
} else {
d'ou "Document falsifié" et no mail.

Il faut revérifier que tu as correctement entré le code TPE,  la clef générée par le kit CIC,  modifié $pass .
Regarder que les paramètres du module sont entrés dans l'admin.
Se référer à la FAQ osC http://www.oscommerce-fr.info/forum/index.php?showtopic=7967.

Remplacer aussi ligne 57 de cmcic_response.php par :
Code:
//récupération des données renvoyées par la banque
$request_method = $_SERVER['REQUEST_METHOD'];
$wRequestVars = '_' . $request_method;
$RequestVars = ${$wRequestVars};

Vérifier aussi que t'es en PHP5 en local et hote.
« Dernière édition: 02 Juillet 2008 à 16:28:00 par gob33 » Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #25 le: 02 Juillet 2008 à 21:35:54 »

Merci Gob.
J'ai déjà tout testé, re-testé, et re-re-testé, je ne sais combien de fois. Même résultat.
J'avais déjà fait la modif sur le _SESSION depuis un bout de temps.
En local, je suis en PHP 5.2.6 (livré avec la dernière version de Wamp), en distant, 5.2.0, mais je ne crois pas que ça change grand chose, si ?
Bon, ben, je crois que je suis bonne pour tout reprendre depuis le début. J'suis complètement découragée...

Jean-Luc, si tu as des tuyaux, ça serait vraiment sympa de les partager, je suis dans une impasse, là Sad


Journalisée
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #26 le: 03 Juillet 2008 à 07:35:40 »

Il faut procéder alors par élimination des choses qui marchent.
Eliminons PHP car tout en version 5. Ensuite tu vas tracer les variables clés dans le code en ajoutant juste après
Code:
echo $toto; exit(); (ou print, ou print_r)
Ca affiche la variable ou le tableau ou l'objet et stoppe le code.
Essaie entre $RequestVars; et checkMAC() pour les variables cruciales.
Tu vérifies alors le retour immédiat des données de CIC.
« Dernière édition: 03 Juillet 2008 à 07:37:26 par gob33 » Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #27 le: 03 Juillet 2008 à 22:40:11 »

Bon, je vais essayer de récapituler...

Je t'envoie 4 fichiers, les 2 premiers : l'un qui s'appelle cmcic_test.txt qui me renvoie tous les messages d'erreurs error_reporting(E_ALL) :  du fichier cmcic_text_php.txt
Les 3ème et 4ème suivants, l'un qui s'appelle cmcic_response.txt qui me renvoie tous (sauf IE en local*) les messages d'erreurs du fichier cmcic_response_php.txt
*IE, en local m'affiche ce qui devrait correspondre à checkout_success, sauf que c'est cmcic_text.php que ça affiche dans la barre d'adresse.

J'ai testé le echo, au mieux, ça ne me donnait que "Array". Au pire page blanche, avec ou sans le mode débug, idem avec ou sans la page de débug : même pas de log généré.

Je pense qu'il y a un souci au niveau des sessions : j'ai mis le fichier enable_error_logging.php dans le dossier includes/extra_configures/
Du coup, le error_reporting ne servait plus à rien, mais j'avais comme message d'erreur dans le fichier log :
Code:
Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /monsite/includes/autoload_func.php:95) in /monsite/includes/functions/sessions.php on line 108
Warning:  Cannot modify header information - headers already sent by (output started at /monsite/includes/autoload_func.php:95) in monsite/includes/init_includes/init_templates.php on line 78
Warning:  Cannot modify header information - headers already sent by (output started at /monsite/includes/autoload_func.php:95) in /monsite/includes/functions/functions_general.php on line 44
Ce qui n'apparait jamais quand je désactive le fichier enable_error_logging.php en le passant .txt
J'ai vérifié l'intégralité des fichiers (si, si, même les fichiers french...) pour corriger les espaces en fin de code ?>

Pour rappel : j'utilise ZC  1.3.7.1, sous PHP 5.2.6 en local, mais PHP 5.2.0-8 en distant.
J'ai vérifié le fix-bug du fichier sessions.php.
J'ai testé le fichier de config avec soit :
Code:
define('STORE_SESSIONS', '');
soit avec
Code:
define('STORE_SESSIONS', 'db');
Ca ne change rien.
Les CHMOD sont OK, j'ai vérifié, re-vérifié, re-revérifié tous les paramètres de clé (la clé, c'est bien mon code TPE ?), le passphrase et tutti quanti.

Je crois avoir à peu près tout testé, mon logiciel (webexpert) m'a planté en beauté en fin d'après-m' donc pas moyen de retester en arrière, mais soit je tourne en rond en refaisant les mêmes erreurs, soit je loupe un truc (ou plusieurs).  Confused

Au prochain épisode, je pense que j'aurai pété une pile  Sad
Journalisée
gob33
Acharné
****

Points gagnés: -1
Messages: 264


Voir le profil
Re : Module de paiement CM-CIC
« Répondre #28 le: 04 Juillet 2008 à 12:26:22 »

Je vais regarder tes fichiers mais pour l'instant un point d'arrêt après $RequestVars [echo $RequestVars; exit(); ] doit afficher les paramètres CIC sous forme Array(qqchose). S'il y a rien, alors il faut voir en amont. Ensuite, le clé et le numéro TPE c'est différent. J'espère que tu as suivi A LA LETTRE la 2eme partie de la FAQ osC ci-dessus mentionnée.

J'ajoute que qqun a les memes pbs ici http://www.oscommerce-fr.info/forum/index.php?showtopic=55854.
« Dernière édition: 04 Juillet 2008 à 13:30:38 par gob33 » Journalisée

Emma
Modérateurs
Espoir
*****

Points gagnés: 0
Messages: 238


Voir le profil WWW
Re : Module de paiement CM-CIC
« Répondre #29 le: 04 Juillet 2008 à 15:54:31 »

Oui, j'ai respecté à la lettre la procédure, je l'ai même refaite intégralement à 3 ou 4 reprises.
J'ai testé le echo $RequestVars; exit(); mais ça ne m'inqique que "array", y compris dans le mail envoyé par le serveur de la banque.
Et j'ai exactement le même problème que décrit sur le forum d'OsC  Confused
Journalisée

Pages: 1 [2] 3 4
  Imprimer  
 

Aller à: