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

Bienvenue invité ( Connexion | Inscription )

3 Pages V   1 2 3 >  
Reply to this topicStart new topic
> [installation] Cybermut - CIC (creload5)
bioskop
posté 24 Feb 2004, 12:21
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Bonjour,

Pour ne pas interférer avec la discussion principale qui ce trouve là :
http://www.oscommerce-fr.info/forum/index.php?showtopic=5860&hl=cybermut

j'ouvre un autre fil de discussion.

Je viens de me lancer dans l'installation du module cybermut de vilain_mamuth avec les différentes modif indiquées dans la discussion ci-dessus. J'ai reçu les différentes infos du CIC (n∞TPE, Clé...).

Ma première question :

Dans le fichier install du module, il est indiqué :
QUOTE
4) Si vous utilisez une Passphrase pour la génération du HMAC, il faut la renseigner dans le fichier includes/modules/payment/cmcic.php

function hmac_CMCIC ($key, $data = \"\")
{
 $pass = \"\"; // Indiquez ici votre passphrase ! Vous pouvez en créer une aléatoirement gr‚ce aux Cybermut Open Tools
....


C'est quoi ce truc ? C'est optionnel ? Enfin bon, j'ai pas compris... sad.gif

Si vous pouviez m'indiquer à quoi ça sert et si j'en ai besoin, ça serait super sympa de votre part !!!!


--------------------
OSC 2.2
Go to the top of the page
 
bioskop
posté 24 Feb 2004, 14:05
Message #2


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



C'est bon, j'ai compris !

Je suppose que c'est conseillé d'utiliser une Passphrase non ?

Je continue et vous tiens au courant ... rolleyes.gif


--------------------
OSC 2.2
Go to the top of the page
 
vinioute
posté 24 Feb 2004, 23:42
Message #3


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 67
Inscrit : 20-March 03
Membre no 974



C'est plus que conseillé !
c'est ce qui permet de faire un vrai cryptage
Go to the top of the page
 
bioskop
posté 25 Feb 2004, 11:12
Message #4


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



J'ai effectivement fractionné ma clé de cryptage !

Et ça marche !!!!!!!!!! biggrin.gif biggrin.gif biggrin.gif biggrin.gif

J'ai un peu galéré avec la cmcic_response.php car j'utilise une creload 5 et non la MS2, du coup, pas de fichier filenames.php ni de database_tables.php ...

Après quelques copier-coller, tout semble marcher !

Merci infiniement à vilain_mamuth pour la contrib et à vinioute pour les modif à faire pour que ça marche avec le kit 1.03h

Sans vous, bonjour la galère excl.gif


J'ai néanmoins une question :

Pour les tests, ils proposent des n∞ de carte :

QUOTE
0000 0100 0000 0001 not auth. (code-retour=Annulation)
0000 0100 0000 0002 authorized (code-retour=payetest)


Que je mette la première ou la deuxième, le paiement est accepté par le CIC et validé dans mon OSC. Par contre, si je mets un autre n∞ de carte au hasard, le paiement est heureusement refusé.
Donc je n'ai pas compris à quoi sert la première carte (code-retour=Annulation) que la CIC valide sans problème sur le serveur de test ?


--------------------
OSC 2.2
Go to the top of the page
 
vinioute
posté 25 Feb 2004, 12:31
Message #5


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 67
Inscrit : 20-March 03
Membre no 974



Hhmmm c'est étrange car dans le cmcic_response.php il y a un code qui gère ca, normalement :

CODE


       switch ($RequestVars['code-retour']) {

               case "Annulation" :

                       tep_mail(STORE_NAME . ': CYBERMUT', STORE_OWNER_EMAIL_ADDRESS , "Commande Annulée : " . $RequestVars['reference'],

                               "Cette commande a été annulée", STORE_NAME, STORE_OWNER_EMAIL_ADDRESS);

                       $payment_modules->sendAR("Valid");

                       break;

               case "payetest":

               case "paiement":



Donc si la banque renvoi un code-retour d'annulation ca doit envoyer un mail au store owner.
J'ai pas testé précisément ca enfin ca devrait fonctionner de la sorte.

Vinioute
Go to the top of the page
 
bioskop
posté 25 Feb 2004, 13:19
Message #6


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Bizzare ça !

Une remarque : Sur le mail de confirmation que m'envoie le serveur de test, il indique dans la requete émise "code-retour=payetest" maldré l'utilisation d'un n∞ qui devrait indiquer "Annulation". Donc le problème semble de leur coté non ?

et une question : A quoi sert un code-retour "Annulation" alors que si une carte n'est pas valide, la banque la signale imédiatement à l'acheteur (et donc ne valide pas le paiement ? (ou alors il y a un truc que je n'ai pas compris, ce qui ne m'étonnerait pas confused.gif )


--------------------
OSC 2.2
Go to the top of the page
 
vinioute
posté 25 Feb 2004, 14:22
Message #7


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 67
Inscrit : 20-March 03
Membre no 974



Si une carte n'est pas sure, la banque fait sans doute des vérifications avant de te renvoyer un retour positif sur ton cmcic_response.

A ce moment la, il est possible qu'on te renvoit le code annulation.
Maintenant le mieux est de lire leur doc pour savoir exactement à quoi ca correspond.
Pour ta remarque je suis étonné que le second choix te donne tout de meme un "code-retour=payetest".
J'utilise cybermut donc il y a peut etre une différence. Mais moi j'ai 4 propositions de numéros de carte. 2 annulation, 2 paytest.

Peut eter peux tu les appeler pour voir avec eux ce qu'il en est, sil il n'y a pas un problème. Enfin ca m'étonnerait meme si ca semble etre le cas par rapport à ton mail de confirmation.

Vinioute
Go to the top of the page
 
bioskop
posté 25 Feb 2004, 14:28
Message #8


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Comme toi, j'ai bien les 4 cartes de test, mais les 4 donnent code-retour="payetest" !

J'essaie de les joindre pour voir et je vous tiens au courant...


--------------------
OSC 2.2
Go to the top of the page
 
bioskop
posté 25 Feb 2004, 14:45
Message #9


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Je les ai eu au téléphone, et c'est bien eux qui merde...
J'attends de leurs nouvelles !


--------------------
OSC 2.2
Go to the top of the page
 
bioskop
posté 9 Mar 2004, 09:26
Message #10


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Alors pour le code-retour, j'ai la réponse ! C'est juste un petit truc à savoir :

Si vous avez opté pour le paiement fractionné (et donc mettant les paiements en attente sur le serveur du CIC), il n'y a pas de code-retour=Annulation) car la verification de la carte n'est faite que lorsqu'on valide le paiement (ce qui est logique mais qui m'a troublé !).

Donc dans ce cas, les 4 cartes tests donnent un code-retour="payetest".

C'est a savoir (et indiqué nul part à ma connaissance) !

Pour tester un code-retour=Annulation, il faut leur demander de passer en débit immédiat le temps des tests, puis de repasser à la formule de son choix.

Donc, j'ai fini mon intégration. ça marche nikel sur une Creload5 !


--------------------
OSC 2.2
Go to the top of the page
 
bioskop
posté 9 Mar 2004, 09:40
Message #11


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Bonjour à tous,

Je commence à recevoir pas mal de PM pour intégrer cybermut sur une creload 5. Donc je vais essayer ici de détailler la procédure.

Commençons par le début :

- Obtenir la clé fournie par le CIC (je parle toujours du CIC mais ça marche pareil pour le Crédit Mutuel) à la suite de la signature du contrat.
- Télécharger le zip CM_CIC_Paiement-1.03h (lien fourni par la banque ou ici : http://commerce.e-i.com/news/versions/CM_CIC_Paiement-1.03h.zip
- Télécharger le module de vilain_mamuth :

http://www.oscommerce.com/community/contributions,1870

Ensuite c'est là qu'il faut faire gaffe :

La contrib de vilain_mamuth fonctionne pour une version un peu plus ancienne de CM_CIC_Paiement (la 1.03g), donc il faut faire les modif de vinioute qui sont sur un autre fil :

QUOTE
Au niveau du fichier cmcic.php :

remplacer
CODE
$k1 = $pass

par :

$k1 = pack("H*",sha1($pass));


et

il faut corriger la fonction :
checkMAC($bnkquery)

comme ceci :

CODE
  function checkMAC($bnkquery)

  {

     define("CMCIC_PHP2_FIELDS", "%s%s+%s+%s+%s+%s+%s+%s+");

     // procede au controle d'integrité des données renvoyées par le serveur

     $databank = sprintf(CMCIC_PHP2_FIELDS, $bnkquery['retourPLUS'],

                                   MODULE_PAYMENT_CMCIC_TPE,

                                   $bnkquery["date"],

                                   $bnkquery['montant'],

                                   $bnkquery['reference'],

                                   $bnkquery['texte-libre'],

                                   MODULE_PAYMENT_CMCIC_VERSION,

                                   $bnkquery['code-retour']);

     

     $hmacbank = strtolower($bnkquery['MAC']);

     // on verifie que le mac envoyé par la banque correspond bien aux données recu

     if ($this->hmac_CMCIC($this->cle, $databank) == $hmacbank) {

        return true;

     } else {

        return false;

     }

     // ----------------------------------------------------------------------------------------------

  }



Voilà le début.

A suivre ...


--------------------
OSC 2.2
Go to the top of the page
 
bioskop
posté 9 Mar 2004, 13:03
Message #12


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Ensuite :

Editer la clé que vous avez téléchargé avec un éditeur de texte.
Copiez l'intégralité des lignes contenues dans ce fichier.

Maintenant, dans le dossier CM_CIC_Paiement-1.03h, il y a un fichier à ouvrir :

CM_CIC_Paiement-1.03hToolsHMAC-SHA1.html

Acceptez les termes des licences.

Copier les lignes de la clé dans la première fenêtre à la place de l'exemple.

Cliquez sur le bouton "Générer une phrase aléatoire pour fragmenter la clef"

La chaine de caractère qui apparait en dessous de ce bouton (case de droite, à coté de SHA1) est la chaine qu'il faut copier dans le fichier cmcic.php vers la ligne 198 (entre les " "):

CODE
$pass = ""; // Indiquez ici votre passphrase ! Vous pouvez en créer une aléatoirement grâce aux Cybermut Open Tools



Pensez également à changer le lien en fonction de votre banque vers la ligne 32 (et à rechanger pour passer en production !) :

CODE
$this->form_action_url = 'https://www.creditmutuel.fr/telepaiement/test/paiement.cgi';


C'est fini pour les modifs dans ce fichier.

Ensuite, reprendre la Boite à outils OpenKits Hmac-SHA1 et cliquer sur le bouton "PHP>=4.3.0 without MySQL" (inutile de remplir les cases url.retour et les autres).

En dessous, dans la deuxième fenêtre, apparait un code du genre :
CODE
$MyTpe = array ( "tpe" =>"0000001", "soc" => "undefinedSite", "key" => "28fd4911e9688b79ace1f63039c4b471e93d2e8b" );

$MyTpe["retourok"] = "http://url.retour.com/ok.cgi";

$MyTpe["retourko"] = "http://url.retour.com/ko.cgi";

$MyTpe["submit"]   = "Paiement CB - Card Payment";


Il y a là une chaine de 40 caractères (dans cette exemple : 28fd4911e9688b79ace1f63039c4b471e93d2e8b

Copiez la (sans les " ") et placez là dans le fichier 1234567.key qui est dans le dossier cmcic du module (en remplaçant la chaine exemple qui est dedans).
Renomez 1234567.key en fonction de votre n° de TPE.

Activez votre module dans l'admin et remplissez les champs !

A partir de là, normalement, vous pouvez accéder à votre plateforme de test en validant une commande !

Prochaine étape, le fichier cmcic_response.php pour que le retour après paiement sur le site de la banque se fasse bien !

A suivre ....


--------------------
OSC 2.2
Go to the top of the page
 
BIg_nose
posté 9 Mar 2004, 21:49
Message #13


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 32
Inscrit : 28-February 04
Membre no 2059



à suivre wink.gif
@++
Big_nose
Go to the top of the page
 
bioskop
posté 19 Mar 2004, 13:17
Message #14


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Voilà le contenu du fichier cmcic_response.php qui devrait fonctionner avec la creload 5.
Je ne peux pas le tester car je n'ai plus accès au serveur de test du cic.
Contactez-moi en cas de problème

QUOTE
<?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 &~E_NOTICE);

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

// include server parameters
require('includes/configure.php');

if ($request_type == 'NONSSL') {
define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
} else {
define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
}
// include the list of project filenames

//require(DIR_WS_INCLUDES . 'filenames.php');

 define('FILENAME_ACCOUNT', 'account.php');
 define('FILENAME_ACCOUNT_EDIT', 'account_edit.php');
 define('FILENAME_ACCOUNT_EDIT_PROCESS', 'account_edit_process.php');
 define('FILENAME_ACCOUNT_HISTORY', 'account_history.php');
 define('FILENAME_ACCOUNT_HISTORY_INFO', 'account_history_info.php');
 define('FILENAME_ADDRESS_BOOK', 'address_book.php');
 define('FILENAME_ADDRESS_BOOK_PROCESS', 'address_book_process.php');
 define('FILENAME_ADVANCED_SEARCH', 'advanced_search.php');
 define('FILENAME_ADVANCED_SEARCH_RESULT', 'advanced_search_result.php');
 define('FILENAME_ALSO_PURCHASED_PRODUCTS', 'also_purchased_products.php'); // This is the bottom of product_info.php (found in modules)
 define('FILENAME_CCVAL_FUNCTION', 'ccval.php');
 define('FILENAME_CHECKOUT_ADDRESS', 'checkout_address.php');
 define('FILENAME_CHECKOUT_CONFIRMATION', 'checkout_confirmation.php');
 define('FILENAME_CHECKOUT_PAYMENT', 'checkout_payment.php');
 define('FILENAME_CHECKOUT_PAYMENT_ADDRESS', 'checkout_payment_address.php');
 define('FILENAME_CHECKOUT_PROCESS', 'checkout_process.php');
 define('FILENAME_CHECKOUT_SHIPPING', 'checkout_shipping.php');
 define('FILENAME_CHECKOUT_SHIPPING_ADDRESS', 'checkout_shipping_address.php');
 define('FILENAME_CHECKOUT_SUCCESS', 'checkout_success.php');
 define('FILENAME_CONTACT_US', 'contact_us.php');
 define('FILENAME_CONDITIONS', 'conditions.php');
 define('FILENAME_CREATE_ACCOUNT', 'create_account.php');
 define('FILENAME_CREATE_ACCOUNT_PROCESS', 'create_account_process.php');
 define('FILENAME_CREATE_ACCOUNT_SUCCESS', 'create_account_success.php');
 define('FILENAME_DEFAULT', 'default.php');
 define('FILENAME_DOWNLOAD', 'download.php');
 define('FILENAME_INFO_SHOPPING_CART', 'info_shopping_cart.php');
 define('FILENAME_LOGIN', 'login.php');
 define('FILENAME_LOGOFF', 'logoff.php');
 define('FILENAME_NEW_PRODUCTS', 'new_products.php'); // This is the middle of default.php (found in modules)
 define('FILENAME_PASSWORD_CRYPT', 'password_funcs.php');

 define('FILENAME_PASSWORD_FORGOTTEN', 'password_forgotten.php');
 define('FILENAME_POPUP_IMAGE', 'popup_image.php');
 define('FILENAME_POPUP_SEARCH_HELP', 'popup_search_help.php');
 define('FILENAME_PRIVACY', 'privacy.php');
 define('FILENAME_POLLCOLLECT', 'pollcollect.php');
 define('FILENAME_PRODUCT_INFO', 'product_info.php');
 define('FILENAME_PRODUCT_LISTING', 'product_listing_col.php');
 define('FILENAME_PRODUCT_NOTIFICATIONS', 'product_notifications.php');
 define('FILENAME_PRODUCT_REVIEWS', 'product_reviews.php');
 define('FILENAME_PRODUCT_REVIEWS_INFO', 'product_reviews_info.php');
 define('FILENAME_PRODUCT_REVIEWS_WRITE', 'product_reviews_write.php');
 define('FILENAME_PRODUCTS_NEW', 'products_new.php');
 define('FILENAME_REDIRECT', 'redirect.php');
 define('FILENAME_REVIEWS', 'reviews.php');
 define('FILENAME_SHIPPING', 'shipping.php');
 define('FILENAME_SHOPPING_CART', 'shopping_cart.php');
 define('FILENAME_SPECIALS', 'specials.php');
 define('FILENAME_DEFAULT_SPECIALS', 'default_specials.php');
 define('FILENAME_TELL_A_FRIEND', 'tell_a_friend.php');
 define('FILENAME_TLD', 'tld.txt');
 define('FILENAME_UPCOMING_PRODUCTS', 'upcoming_products.php'); // This is the bottom of default.php (found in modules)
 define('FILENAME_MEMBERS', 'members.php');

//require(DIR_WS_INCLUDES . 'database_tables.php');

 define('TABLE_ADDRESS_BOOK', 'address_book');
 define('TABLE_ADDRESS_FORMAT', 'address_format');
 define('TABLE_BANNERS', 'banners');
 define('TABLE_BANNERS_HISTORY', 'banners_history');
 define('TABLE_BRANDING_LANGUAGES', 'branding_languages');
 define('TABLE_BRANDING_LANGUAGES_TEXT', 'branding_languages_text');
 define('TABLE_CATEGORIES', 'categories');
 define('TABLE_CATEGORIES_DESCRIPTION', 'categories_description');
 define('TABLE_CONFIGURATION', 'configuration');
 define('TABLE_CONFIGURATION_GROUP', 'configuration_group');
 define('TABLE_COUNTER', 'counter');
 define('TABLE_COUNTER_HISTORY', 'counter_history');
 define('TABLE_COUNTRIES', 'countries');
 define('TABLE_CURRENCIES', 'currencies');
 define('TABLE_CUSTOMERS', 'customers');
 define('TABLE_CUSTOMERS_BASKET', 'customers_basket');
 define('TABLE_CUSTOMERS_BASKET_ATTRIBUTES', 'customers_basket_attributes');
 define('TABLE_CUSTOMERS_INFO', 'customers_info');
 define('TABLE_LANGUAGES', 'languages');
 define('TABLE_MANUFACTURERS', 'manufacturers');
 define('TABLE_MANUFACTURERS_INFO', 'manufacturers_info');
 define('TABLE_ORDERS', 'orders');
 define('TABLE_ORDERS_PRODUCTS', 'orders_products');
 define('TABLE_ORDERS_PRODUCTS_ATTRIBUTES', 'orders_products_attributes');
 define('TABLE_ORDERS_PRODUCTS_DOWNLOAD', 'orders_products_download');
 define('TABLE_ORDERS_STATUS', 'orders_status');
 define('TABLE_ORDERS_STATUS_HISTORY', 'orders_status_history');
 define('TABLE_ORDERS_TOTAL', 'orders_total');
 define('TABLE_PRODUCTS', 'products');
 define('TABLE_PRODUCTS_ATTRIBUTES', 'products_attributes');
 define('TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD', 'products_attributes_download');
 define('TABLE_PRODUCTS_DESCRIPTION', 'products_description');
 define('TABLE_PRODUCTS_NOTIFICATIONS', 'products_notifications');
 define('TABLE_PRODUCTS_OPTIONS', 'products_options');
 define('TABLE_PRODUCTS_OPTIONS_VALUES', 'products_options_values');
 define('TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS', 'products_options_values_to_products_options');
 define('TABLE_PRODUCTS_TO_CATEGORIES', 'products_to_categories');
 define('TABLE_REVIEWS', 'reviews');
 define('TABLE_REVIEWS_DESCRIPTION', 'reviews_description');
 define('TABLE_SESSIONS', 'sessions');
 define('TABLE_SPECIALS', 'specials');
 define('TABLE_TAX_CLASS', 'tax_class');
 define('TABLE_TAX_RATES', 'tax_rates');
 define('TABLE_GEO_ZONES', 'geo_zones');
 define('TABLE_ZONES_TO_GEO_ZONES', 'zones_to_geo_zones');
 define('TABLE_WHOS_ONLINE', 'whos_online');
 define('TABLE_ZONES', 'zones');

// include the database functions
require(DIR_WS_FUNCTIONS . 'database.php');
// make a connection to the database... now
tep_db_connect() or die('Unable to connect to database server!');
// set the application parameters
$configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);
while ($configuration = tep_db_fetch_array($configuration_query)) {
define($configuration['cfgKey'], $configuration['cfgValue']);
}
// define general functions used application-wide
require(DIR_WS_FUNCTIONS . 'general.php');
require(DIR_WS_FUNCTIONS . 'html_output.php');
require(DIR_WS_FUNCTIONS . 'webmakers_added_functions.php');
// include shopping cart class
require(DIR_WS_CLASSES . 'shopping_cart.php');
// check if sessions are supported, otherwise use the php3 compatible session class
if (!function_exists('session_start')) {
define('PHP_SESSION_NAME', 'osCsid');
define('PHP_SESSION_PATH', $cookie_path);
define('PHP_SESSION_DOMAIN', $cookie_domain);
define('PHP_SESSION_SAVE_PATH', SESSION_WRITE_DIRECTORY);

include(DIR_WS_CLASSES . 'sessions.php');
}
// define how the session functions will be used
require(DIR_WS_FUNCTIONS . 'sessions.php');
// set the session name and save path
tep_session_name('osCsid');
tep_session_save_path(SESSION_WRITE_DIRECTORY);
// ********************************************************************************************************************
// recuperation de l'id de session contenu dans texte-libre
tep_session_id($RequestVars['texte-libre']);
// ********************************************************************************************************************
// start the session
$session_started = false;
tep_session_start();
$session_started = true;
// create the shopping cart & fix the cart if necesary
if (tep_session_is_registered('cart') && is_object($cart)) {
if (PHP_VERSION < 4) {
 $broken_cart = $cart;
 $cart = new shoppingCart;
 $cart->unserialize($broken_cart);
}
} else {
tep_session_register('cart');
$cart = new shoppingCart;
}
// include currencies class and create an instance
require(DIR_WS_CLASSES . 'currencies.php');
$currencies = new currencies();
// include the mail classes
require(DIR_WS_CLASSES . 'mime.php');
require(DIR_WS_CLASSES . 'email.php');
// set the language
if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) {
if (!tep_session_is_registered('language')) {
 tep_session_register('language');
 tep_session_register('languages_id');
}

include(DIR_WS_CLASSES . 'language.php');
$lng = new language();

if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) {
 $lng->set_language($HTTP_GET_VARS['language']);
} else {
 $lng->get_browser_language();
}

$language = $lng->language['directory'];
$languages_id = $lng->language['id'];
}
// include the language translations
require(DIR_WS_LANGUAGES . $language . '.php');
// currency
if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency))) {
if (!tep_session_is_registered('currency')) tep_session_register('currency');

if (isset($HTTP_GET_VARS['currency'])) {
 if (!$currency = tep_currency_exists($HTTP_GET_VARS['currency'])) $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
} else {
 $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
}
}
// ________________________________________________________________________________________________________________
include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);
// load selected payment module
include(DIR_WS_MODULES . 'payment/cmcic.php');
$payment_modules = new cmcic();

// load selected payment module
//  require(DIR_WS_CLASSES . 'payment.php');
//  $payment_modules = new payment($payment);


// 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;

require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
// on verifie que c bien la banque qui repond par le check du MAC
if (!$payment_modules->checkMAC($RequestVars)) {
// qqch ne va pas dans la requete, on previent la banque et on arrete tout
$payment_modules->sendAR(\"NotValid\");
} else {
// le MAC est correct, on regarde le code retour
switch ($RequestVars['code-retour']) {
 case \"Annulation\" :
  tep_mail(STORE_NAME . ': CYBERMUT', STORE_OWNER_EMAIL_ADDRESS , \"Commande Annulée : \" . $RequestVars['reference'],
   \"Cette commande a été annulée\", STORE_NAME, STORE_OWNER_EMAIL_ADDRESS);
  $payment_modules->sendAR(\"Valid\");
  break;
 case \"payetest\":
 case \"paiement\":
  // on procede à la validation de la commande et on envoi l'accusé de réception;
// ------------------ copie du code de checkout_process, uniquement ce qu'il faut pour valider la commande ----------------
// attention à certaines contributions qui sont suceptibles de demander la modification de checkout_process, les modifs sont à apporter aussi ici
  // Validation de la commande
           $order_totals = $order_total_modules->process();

           $sql_data_array = array('customers_id' => $customer_id,
               'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
               'customers_company' => $order->customer['company'],
               'customers_street_address' => $order->customer['street_address'],
               'customers_suburb' => $order->customer['suburb'],
               'customers_city' => $order->customer['city'],
               'customers_postcode' => $order->customer['postcode'],
               'customers_state' => $order->customer['state'],
               'customers_country' => $order->customer['country']['title'],
               'customers_telephone' => $order->customer['telephone'],
               'customers_email_address' => $order->customer['email_address'],
               'customers_address_format_id' => $order->customer['format_id'],
               'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
               'delivery_company' => $order->delivery['company'],
               'delivery_street_address' => $order->delivery['street_address'],
               'delivery_suburb' => $order->delivery['suburb'],
               'delivery_city' => $order->delivery['city'],
               'delivery_postcode' => $order->delivery['postcode'],
               'delivery_state' => $order->delivery['state'],
               'delivery_country' => $order->delivery['country']['title'],
               'delivery_address_format_id' => $order->delivery['format_id'],
               'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],
               'billing_company' => $order->billing['company'],
               'billing_street_address' => $order->billing['street_address'],
               'billing_suburb' => $order->billing['suburb'],
               'billing_city' => $order->billing['city'],
               'billing_postcode' => $order->billing['postcode'],
               'billing_state' => $order->billing['state'],
               'billing_country' => $order->billing['country']['title'],
               'billing_address_format_id' => $order->billing['format_id'],
               'payment_method' => $order->info['payment_method'],
               'cc_type' => $order->info['cc_type'],
               'cc_owner' => $order->info['cc_owner'],
               'cc_number' => $order->info['cc_number'],
               'cc_expires' => $order->info['cc_expires'],
               'date_purchased' => 'now()',
               'orders_status' => $order->info['order_status'],
               'currency' => $order->info['currency'],
               'currency_value' => $order->info['currency_value']);
           tep_db_perform(TABLE_ORDERS, $sql_data_array);
           $insert_id = tep_db_insert_id();
           for ($i=0; $i<sizeof($order_totals); $i++) {
               $sql_data_array = array('orders_id' => $insert_id,
                   'title' => $order_totals[$i]['title'],
                   'text' => $order_totals[$i]['text'],
                   'value' => $order_totals[$i]['value'],
                   'class' => $order_totals[$i]['code'],
                   'sort_order' => $order_totals[$i]['sort_order']);
               tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
           }

           $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';
           $sql_data_array = array('orders_id' => $insert_id,
               'orders_status_id' => $order->info['order_status'],
               'date_added' => 'now()',
               'customer_notified' => $customer_notification,
               'comments' => $order->info['comments']);
           tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
           // initialized for the email confirmation
           $products_ordered = '';
           $subtotal = 0;
           $total_tax = 0;

           for ($i=0; $i<sizeof($order->products); $i++) {
               // Stock Update - Joao Correia
               if (STOCK_LIMITED == 'true') {
                   if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
                       $stock_query_raw = \"SELECT products_quantity, pad.products_attributes_filename
                           FROM \" . TABLE_PRODUCTS . \" p
                           LEFT JOIN \" . TABLE_PRODUCTS_ATTRIBUTES . \" pa
                            ON p.products_id=pa.products_id
                           LEFT JOIN \" . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . \" pad
                            ON pa.products_attributes_id=pad.products_attributes_id
                           WHERE p.products_id = '\" . tep_get_prid($order->products[$i]['id']) . \"'\";
                       // Will work with only one option for downloadable products
                       // otherwise, we have to build the query dynamically with a loop
                       $products_attributes = $order->products[$i]['attributes'];
                       if (is_array($products_attributes)) {
                           $stock_query_raw .= \" AND pa.options_id = '\" . $products_attributes[0]['option_id'] . \"' AND pa.options_values_id = '\" . $products_attributes[0]['value_id'] . \"'\";
                       }
                       $stock_query = tep_db_query($stock_query_raw);
                   } else {
                       $stock_query = tep_db_query(\"select products_quantity from \" . TABLE_PRODUCTS . \" where products_id = '\" . tep_get_prid($order->products[$i]['id']) . \"'\");
                   }
                   if (tep_db_num_rows($stock_query) > 0) {
                       $stock_values = tep_db_fetch_array($stock_query);
                       // do not decrement quantities if products_attributes_filename exists
                       if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
                           $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
                       } else {
                           $stock_left = $stock_values['products_quantity'];
                       }
                       tep_db_query(\"update \" . TABLE_PRODUCTS . \" set products_quantity = '\" . $stock_left . \"' where products_id = '\" . tep_get_prid($order->products[$i]['id']) . \"'\");
                       if ($stock_left < 1) {
                           tep_db_query(\"update \" . TABLE_PRODUCTS . \" set products_status = '0' where products_id = '\" . tep_get_prid($order->products[$i]['id']) . \"'\");
                       }
                   }
               }
               // Update products_ordered (for bestsellers list)
               tep_db_query(\"update \" . TABLE_PRODUCTS . \" set products_ordered = products_ordered + \" . sprintf('%d', $order->products[$i]['qty']) . \" where products_id = '\" . tep_get_prid($order->products[$i]['id']) . \"'\");

               $sql_data_array = array('orders_id' => $insert_id,
                   'products_id' => tep_get_prid($order->products[$i]['id']),
                   'products_model' => $order->products[$i]['model'],
                   'products_name' => $order->products[$i]['name'],
                   'products_price' => $order->products[$i]['price'],
                   'final_price' => $order->products[$i]['final_price'],
                   'products_tax' => $order->products[$i]['tax'],
                   'products_quantity' => $order->products[$i]['qty']);
               tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
               $order_products_id = tep_db_insert_id();
               $order_total_modules->update_credit_account($i);//ICW ADDED FOR ORDER_TOTAL CREDIT SYSTEM
               //------insert customer choosen option to order--------
               $attributes_exist = '0';
               $products_ordered_attributes = '';
               if ($order->products[$i]['attributes']) {
                   $attributes_exist = '1';
                   for ($j=0; $j<sizeof($order->products[$i]['attributes']); $j++) {
                       if (DOWNLOAD_ENABLED == 'true') {
                           $attributes_query = \"select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
                              from \" . TABLE_PRODUCTS_OPTIONS . \" popt, \" . TABLE_PRODUCTS_OPTIONS_VALUES . \" poval, \" . TABLE_PRODUCTS_ATTRIBUTES . \" pa
                              left join \" . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . \" pad
                               on pa.products_attributes_id=pad.products_attributes_id
                              where pa.products_id = '\" . $order->products[$i]['id'] . \"'
                               and pa.options_id = '\" . $order->products[$i]['attributes'][$j]['option_id'] . \"'
                               and pa.options_id = popt.products_options_id
                               and pa.options_values_id = '\" . $order->products[$i]['attributes'][$j]['value_id'] . \"'
                               and pa.options_values_id = poval.products_options_values_id
                               and popt.language_id = '\" . $languages_id . \"'
                               and poval.language_id = '\" . $languages_id . \"'\";
                           $attributes = tep_db_query($attributes_query);
                       } else {
                           $attributes = tep_db_query(\"select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from \" . TABLE_PRODUCTS_OPTIONS . \" popt, \" . TABLE_PRODUCTS_OPTIONS_VALUES . \" poval, \" . TABLE_PRODUCTS_ATTRIBUTES . \" pa where pa.products_id = '\" . $order->products[$i]['id'] . \"' and pa.options_id = '\" . $order->products[$i]['attributes'][$j]['option_id'] . \"' and pa.options_id = popt.products_options_id and pa.options_values_id = '\" . $order->products[$i]['attributes'][$j]['value_id'] . \"' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '\" . $languages_id . \"' and poval.language_id = '\" . $languages_id . \"'\");
                       }
                       $attributes_values = tep_db_fetch_array($attributes);

                       $sql_data_array = array('orders_id' => $insert_id,
                           'orders_products_id' => $order_products_id,
                           'products_options' => $attributes_values['products_options_name'],
                           'products_options_values' => $attributes_values['products_options_values_name'],
                           'options_values_price' => $attributes_values['options_values_price'],
                           'price_prefix' => $attributes_values['price_prefix']);
                       tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

                       if (DOWNLOAD_ENABLED == 'true') {
                           $sql_data_array = array('orders_id' => $insert_id,
                               'orders_products_id' => $order_products_id,
                               'orders_products_filename' => $attributes_values['products_attributes_filename'],
                               'download_maxdays' => $attributes_values['products_attributes_maxdays'],
                               'download_count' => $attributes_values['products_attributes_maxcount']);
                           tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
       }
       $products_ordered_attributes .= \"nt\" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
     }
   }
//------insert customer choosen option eof ----
   $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
   $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
   $total_cost += $total_products_price;

   $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . \"n\";
 }
$order_total_modules->apply_credit();//ICW ADDED FOR ORDER_TOTAL CREDIT SYSTEM
// lets start with the email confirmation
 $email_order = STORE_NAME . \"n\" .
                EMAIL_SEPARATOR . \"n\" .
                EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . \"n\" .
                EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . \"n\" .
                EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . \"nn\";
 if ($order->info['comments']) {
+    $email_order .= tep_db_output($order->info['comments']) . \"nn\";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . \"n\" .
                 EMAIL_SEPARATOR . \"n\" .
                 $products_ordered .
                 EMAIL_SEPARATOR . \"n\";

 for ($i=0; $i<sizeof($order_totals); $i++) {
   $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . \"n\";
 }

 if ($order->content_type != 'virtual') {
   $email_order .= \"n\" . EMAIL_TEXT_DELIVERY_ADDRESS . \"n\" .
                   EMAIL_SEPARATOR . \"n\" .
                   tep_address_label($customer_id, $sendto, 0, '', \"n\") . \"n\";
 }

 $email_order .= \"n\" . EMAIL_TEXT_BILLING_ADDRESS . \"n\" .

                 EMAIL_SEPARATOR . \"n\" .
                 tep_address_label($customer_id, $billto, 0, '', \"n\") . \"nn\";
 if (is_object($$payment)) {
   $email_order .= EMAIL_TEXT_PAYMENT_METHOD . \"n\" .
                   EMAIL_SEPARATOR . \"n\";
   $payment_class = $$payment;
   $email_order .= $payment_class->title . \"nn\";
   if ($payment_class->email_footer) {
     $email_order .= $payment_class->email_footer . \"nn\";
   }
 }
 tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');

// send emails to other people
 if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
   tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, nl2br($email_order), STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, '');
 }

// load the after_process function from the payment modules
 $payment_modules->after_process();

           $cart->reset(TRUE);

           // unregister session variables used during checkout
           tep_session_unregister('sendto');
           tep_session_unregister('billto');
           tep_session_unregister('shipping');
           tep_session_unregister('payment');
           $order_total_modules->clear_posts();//ICW ADDED FOR ORDER_TOTAL CREDIT SYSTEM
           tep_session_unregister('comments');
// ________________________________________________________________________________________________________________
// on enregistre la valeur de la derniere commande
$order_id = $insert_id;
tep_session_register('order_id');
tep_db_perform('cmcic_reference', array('order_id' => $order_id), 'update', \"ref_number='\". $RequestVars['reference'].\"'\");

  // traitement terminé, on envoi l'accusé
  $payment_modules->sendAR(\"Valid\");
  break;
 default:
  $payment_modules->sendAR(\"NotValid\");
} // switch
// remplacement de application bottom
// close session (store variables)
tep_session_close();
}

?>


FIN


--------------------
OSC 2.2
Go to the top of the page
 
rno
posté 24 Mar 2004, 15:55
Message #15


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 8
Inscrit : 6-January 04
Membre no 1800



Hello bioskop,

Merci pour l'aide que tu nous apporte.

J'ai intégré comme tu l'as précisé et cela marche à part ... que lorsque je revient sur la boutique après paiement, je suis bien sur checkout_success, mais mon caddie n'est pas vide et plus grave, la commande n'est pas dans l'admin d'Oscommerce !

Je reçoit bien un mail du cic mais il me parait bizarre :



QUOTE
Votre CGI 2 de TEST a émis un accusé de réception invalide
et la commande a été VALIDEE
---------------------------------------------------


TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST
TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST

RECAPITULATIF DU PAIMENT :

Numero de TPE commercant : XXXXXXXXX
Date du paiement : 2004-03-24 à 15:42:15
Reference du paiement : 000000000025
Montant du paiement : 40 EUR
Descriptif du paiement : b5e72512b0cdba7893914eb25f543b32


TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST
TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST

Vous trouverez ci-dessous les informations relatives à la requête émise par notre serveur et la réponse renvoyée par votre CGI de confirmation (CGI2).


Cordialement.

CyberMUT Paiement - Paiement CIC  
Commerce Electronique  
mailto:centrecom@e-i.com



REQUETE EMISE PAR NOTRE SERVEUR :
GET (pour information):
(Attention longueur > 255 caractères) http://www.XXXXXXXXX.com:80/catalog/cmcic_response.php?TPE=6430104&date=24%2f03%2f2004%5fa%5f15%3a39%3a04&montant=40EUR&reference=000000000025&MAC=B973B5B264FB509F6BB2C2C35870DF1F032C28FA&texte-libre=b5e72512b0cdba7893914eb25f543b32&code-retour=payetest&retourPLUS=--cvxoui

Méthode d'appel retenue : PLUT
TPE : 6430104
Host appelé : www.XXXXXXX.com
Port : 80
CGI appelé : /catalog/cmcic_response.php
Requête émise : TPE=6430104&date=24%2f03%2f2004%5fa%5f15%3a39%3a04&montant=40EUR&reference=000000000025&MAC=B973B5B264FB509F6BB2C2C35870DF1F032C28FA&texte-libre=b5e72512b0cdba7893914eb25f543b32&code-retour=payetest&retourPLUS=--cvxoui

REPONSE DE VOTRE CGI DE CONFIRMATION :  
HTTP/1.1 200 OK
Date: Wed, 24 Mar 2004 14:42:32 GMT
Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux) mod_fastcgi/2.2.12 mod_jk/1.2.0 mod_perl/1.26 PHP/4.3.3 FrontPage/5.0.2 mod_ssl/2.8.12 OpenSSL/0.9.6b
X-Powered-By: PHP/4.3.3
Set-Cookie: osCsid=b5e72512b0cdba7893914eb25f543b32; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html

<br />
<b>Fatal error</b>:  Call to undefined function:  checkmac() in <b>/home/virtual/site27/fst/var/www/html/catalog/cmcic_response.php</b> on line <b>244</b><br />


 


Le fait d'arriver sur checkout_success veut dire que cmcic_response envoi sur checkout_success, donc il devrait mettre os commerce à jour ?

Merci de me dire ou je me suis planté car j'ai bien dit au cic de mettre l'url de retour sur cmcic_response.php.

Merci d'avance pour ton aide précieuse.
Go to the top of the page
 
rno
posté 24 Mar 2004, 16:00
Message #16


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 8
Inscrit : 6-January 04
Membre no 1800



Apparement j'ai un problème avec la page cmic_response :

Fatal error: Call to undefined function: checkmac() in /home/virtual/site27/fst/var/www/html/catalog/cmcic_response.php on line 244

c'est la fonction checkmac qui pose problème.
Go to the top of the page
 
bioskop
posté 24 Mar 2004, 21:40
Message #17


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



J'ai complétement oublié un truc dans mon tuto :

Il faut également créer les tables dans la base de données en important à l'aide de phpMyAdmin le fichier cmcic_reference.sql.

rno :
- as tu fais ça ?
- As tu bien corrigé la fonction checkMAC($bnkquery) comme indiqué ci-dessus ?


--------------------
OSC 2.2
Go to the top of the page
 
bioskop
posté 24 Mar 2004, 21:58
Message #18


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



C'est bonn j'ai trouvé !
Erreur dans le cmcic_response.php ci-dessus (que je corrige de suite !).

Décommente les lignes 226 et 227 :
CODE
 include(DIR_WS_MODULES . 'payment/cmcic.php');

 $payment_modules = new cmcic();



Et ça ira mieux ! La fonction checkmac est justement défini dans payment/cmcic.php !

Indique moi si ça marche !


--------------------
OSC 2.2
Go to the top of the page
 
rno
posté 25 Mar 2004, 19:00
Message #19


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 8
Inscrit : 6-January 04
Membre no 1800



Salut bioskop,


Pour les tables a ajouter dans la base, je l'avais déjà fait.
J'ai décommenté les 2 lignes comme tu m'a dis mais ....
Ca marche toujours pas (cependant l'erreur est différentes, ce n'est plus la fonction checkmac() qui pose problème)

Sur la page de la banque j'ai bien le message "Votre paiement a été effectué"
Mais en bas j'ai : "Reponse : Code retour : payetest CGI2 : NOT OK "

et Voila le mail de réponse de la banque :

Objet : TEST TEST *** Probleme CGI2 *** TEST TEST

QUOTE

Votre CGI 2 de TEST a émis un accusé de réception invalide
et la commande a été VALIDEE
---------------------------------------------------


TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST
TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST

RECAPITULATIF DU PAIMENT :

Numero de TPE commercant : xxxxxxxxx
Date du paiement : 2004-03-25 à 18:46:41
Reference du paiement : 000000000031
Montant du paiement : 58 EUR
Descriptif du paiement : 8a24b933eb4476dc0b22035fbbb80325


TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST
TEST TEST TEST TEST **** Opération FICTIVE **** TEST TEST TEST TEST

Vous trouverez ci-dessous les informations relatives à la requête émise par notre serveur et la réponse renvoyée par votre CGI de confirmation (CGI2).


Cordialement.

CyberMUT Paiement - Paiement CIC  
Commerce Electronique  
mailto:centrecom@e-i.com



REQUETE EMISE PAR NOTRE SERVEUR :
GET (pour information):
(Attention longueur > 255 caractères) http://www.xxxxxxxxxxxxxx.com:80/catalog/cmcic_response.php?TPE=6430104&date=25%2f03%2f2004%5fa%5f18%3a43%3a38&montant=58EUR&reference=000000000031&MAC=45DE90F16478AFDBC3BEAAAC1BBAF6DE8044DDCF&texte-libre=8a24b933eb4476dc0b22035fbbb80325&code-retour=payetest&retourPLUS=--cvxoui

Méthode d'appel retenue : PLUT
TPE : 6430104
Host appelé : www.xxxxxxxxxx.com
Port : 80
CGI appelé : /catalog/cmcic_response.php
Requête émise : TPE=6430104&date=25%2f03%2f2004%5fa%5f18%3a43%3a38&montant=58EUR&reference=000000000031&MAC=45DE90F16478AFDBC3BEAAAC1BBAF6DE8044DDCF&texte-libre=8a24b933eb4476dc0b22035fbbb80325&code-retour=payetest&retourPLUS=--cvxoui

REPONSE DE VOTRE CGI DE CONFIRMATION :  
HTTP/1.1 200 OK
Date: Thu, 25 Mar 2004 17:47:06 GMT
Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux) mod_fastcgi/2.2.12 mod_jk/1.2.0 mod_perl/1.26 PHP/4.3.3 FrontPage/5.0.2 mod_ssl/2.8.12 OpenSSL/0.9.6b
X-Powered-By: PHP/4.3.3
Set-Cookie: osCsid=8a24b933eb4476dc0b22035fbbb80325; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html

<br />
<b>Fatal error</b>:  Cannot redeclare class cmcic in <b>/home/virtual/site27/fst/var/www/html/catalog/includes/modules/payment/cmcic.php</b> on line <b>13</b><br />



Je ne retrouve pas ma commande dans oscommerce et mon panier ne se vide pas. En fait j'ai les mêmes erreur qu'avant sauf que la apparement c'est la page cmcic qui pose problème (message du mail de la banque en bas )

QUOTE
<b>Fatal error</b>:  Cannot redeclare class cmcic in <b>/home/virtual/site27/fst/var/www/html/catalog/includes/modules/payment/cmcic.php</b> on line <b>13</b><br />


Merci par avance pour ton aide.
Go to the top of the page
 
BIg_nose
posté 26 Mar 2004, 12:11
Message #20


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 32
Inscrit : 28-February 04
Membre no 2059



moi j'ai bien erreur, ( du CIC )
Warning: main(includes/filenames.php): failed to open stream: No such file or directory in /home/.sites/28/site188/web/boutique/catalog/cmcic_response.php on line 31

Fatal error: main(): Failed opening required 'includes/filenames.php' (include_path='') in /home/.sites/28/site188/web/boutique/catalog/cmcic_response.php on line 31



à suivre...
@++
Big_nose
Go to the top of the page
 
bioskop
posté 26 Mar 2004, 13:43
Message #21


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Pour rno :

Désolé je m'embrouille un peu. Il faut par contre mettre en commentaire les deux lignes en dessous de celle que du a décommenté :

ça donne ça (j'ai corrigé ci-dessus) :
CODE
// load selected payment module

include(DIR_WS_MODULES . 'payment/cmcic.php');

$payment_modules = new cmcic();



// load selected payment module

// require(DIR_WS_CLASSES . 'payment.php');

// $payment_modules = new payment($payment);



Pour BIg_nose :

Vu ton message d'erreur, tu n'as pas utilisé le cmcic_response.php qui est ci-dessus, mais celui de la contribution.
En effet, le fichier includes/filenames.php n'existe pas dans la MS1, c'est pour ça que j'ai remis tout les "define"....


--------------------
OSC 2.2
Go to the top of the page
 
rno
posté 26 Mar 2004, 17:02
Message #22


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 8
Inscrit : 6-January 04
Membre no 1800



Bonjour bioskop,

Merci pour ta contrib, ça marche nickel !!!!!!

Je pense qu'on pourrais essayé de la mettre en contrib officiel sur le site oscommerce.

Tu a fais un super boulot je te remercie encore.

rno
Go to the top of the page
 
BIg_nose
posté 26 Mar 2004, 17:07
Message #23


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 32
Inscrit : 28-February 04
Membre no 2059



je viens de changer cmcic_response.php,, par le tiens c dessus, maintenant j'ai comme erreur :
- panier toujours pas vider
- commande prise en compte dans admin, mais il n 'y a aucune coordonnée, ni de prix, en faite une facture à 0 euros sans rien...
- je n'ai toujours pas de mail du CIC ne disant qu'un paiement a été effectué...
@++
Big_nose
Go to the top of the page
 
bioskop
posté 26 Mar 2004, 18:02
Message #24


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 66
Inscrit : 14-April 03
Membre no 1060



Cool pour rno !!! Et d'un de sauvé !
Pour la contrib, en fait le problème c'est que mon truc est vraiment crade !
Par exemple, je pense qu'il n'y pas la moitié des define qui servent à qq chose, et mes modif, je les ai faite grâce au mail d'erreur de CIC sans vraiment y comprendre grand chose. Genre "tiens la fonction n'est pas défini, je vais ajouter cette ligne..." C'est pour ça qu'il y a autant de ligne en commentaire... c'est mes essais... Mais si qq peut appurer ça, qu'il le mette en contrib !
C'est surtout vilain_mamuth et vinioute qui ont fait un super boulot !

Le seul problème, c'est le cmcic_response.php à adapter en fonction des modif qui sont faites dans le chekout_process.php. Par exemple, je ne vous ai pas donné le mien car j'ai en plus les mail HTML, ce qui change mon cmcic_response.php confused.gif

Pour BIg_nose :

Si ça marche pour rno, c'est que mon truc marche sur une creload 5 non trafiqué !
Question : As-tu un creload d'origine ? Pour savoir, télécharge la version sur le site de delaballe: http://www.delaballe.com/oscfr/index.htm
et compare le chekout_process.php avec le tien.
As-tu un mail du CIC suite à l'acceptation de la carte (comme dans ton post précédent) ? Si oui, quelle est le message d'erreur ?


--------------------
OSC 2.2
Go to the top of the page
 
BIg_nose
posté 26 Mar 2004, 19:44
Message #25


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 32
Inscrit : 28-February 04
Membre no 2059



je viens de dl la version officiel, et j'ai la meme erreur
-traitement de commande ok
-traitement vide!
-pas de mail de la par de CIC quand je choisi carte ok, mais quand je choisi carte refusé j'ai un mail commande n°... annulé

Si tu une autre idée ...
@++
Big_nose
Go to the top of the page
 

3 Pages V   1 2 3 >
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 - 13:25
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)