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

Bienvenue invité ( Connexion | Inscription )

> CyberMut - CIC et OSC, Tutorial pour intégrer CyberMut - CIC
Wouf
posté 26 Apr 2004, 14:03
Message #1


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 129
Inscrit : 19-April 04
Lieu : Toulouse
Membre no 2309



Bonjour tout le monde,

Après moults galères pour l'intégration de Cybermut à OSC je vais tenter de faire un récapitulatif des infos récoltées dans le forum afin de parvenir à un tuto plus ou moins performant !
Source principale : Paiement CyberMut

Pré-requis
  • OSCommerce wink.gif
    ( travail réalisé sur Creload6-fr-sp1 )
    (/!\ Topic sur la creload5 de bioskop : CyberMut - Cic avec Creload5 )

  • Kit d'intégration de CyberMut : 1.03h
    ( Ce kit est disponible sur demande au Crédit Mutuel )

  • Informations de test fournies par CyberMut
    ( Code boutique )

  • Contribution CyberMut
    A télecharger ici :
    http://www.oscommerce.com/community/contributions,1870

  • Activer les sessions MySQL dans OSC
    Il faut pour cela editer les 2 fichiers de configurations qui sont :
    - catalog/includes/configure.php
    - catalog/admin/includes/configure.php
    et ensuite recherche la ligne ci dessous et verifier que la votre soit identique.
CODE

define('STORE_SESSIONS', 'mysql'); // leave empty '' for default handler or set to 'mysql'
Générer sa passphrase et sa clée avec les outils CyberMut

Dans le Kit CyberMut 1.03h, on trouve un outil sous forme de page HTML ( /Tools/HMAC-SHA1/extract2HmacSha1.html ). Il va vous permettre de générer votre phrase clé.
  • Lancer-Le
  • Accepter les liscences
  • Vous êtes en phase de test donc vous n'avez pas encore de key, cocher clé fictive
  • Entrez votre code société de test fourni par la banque et cliquez sur "Code Source>"
    Dans le premier champs de texte vous verrez une ligne du qui ressembe a cela :
    $pass = "xxxxxxxxxxxxxxxxxxx";
    La partie en rouge est votre passphrase

    Dans le second champs de texte vous verrez une ligne qui ressemble a cela :
    $MyTpe = array ( "tpe" =>"0000001", "soc" => "xxxxxxxxxxxxxxxxxxxx", "key" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" );
    Ici la partie en rouge est votre CLE.
Donc les informations a avoir a la fin de cette partie sont :
- le code sociéte
- le numero de TPE ( 0000001 pour tests )
- la passphrase
- la CLE

Contribution CyberMut

Vous avez télechargé la contribution cybermut. Les modification qui vont suivre vont se faire sur ces fichiers.
  • cybermut102open/catalog/cmcic/1234567.key
    Ceci est le fichier de contenant la CLE. Donc ouvrez le et remplacer ce qu'il y a par votre CLE sur la première ligne et sans retour a la ligne apres.
    Ensuite renommez ce fichier avec le numero de TPE. (Par exemple "0000001.key")

  • cybermut102open/catalog/include/module/payment/cmcic.php

    A la ligne 198 (environ) renseigner votre passphrase :
CODE
$pass = ""

A la ligne 199 (environ) remplacer :
CODE
$k1 = $pass;

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


Ensuite rechercher la fonction checkMAC($bnkquery). L'effacer et la remplacer par la fonction suivante :
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;

     }

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

  }

  • cybermut102open/catalog/cmcic_response.php
    Important pour Creload6 seulement !!!
    Afin que le réponse du CGI2 soit OK, que le panier se mette a jour et que la commande soit correctement validée dans la boutique, il faut apporté la modification suivant au fichier cmcic_response.php.

    Apres la ligne 24 suivante :
  • CODE
    // include server parameters

    require('includes/configure.php');


    Il faut ajouter la ligne ci dessous :
    CODE
    require(DIR_WS_INCLUDES . 'add_ccgvdc_application_top.php');
    [*] /catalog/templates/contents/checkout_confirmation.tpl.php
    Important pour Creload seulement, cela dépend des version donc c'est possible que cela soit ok sans cette modif. Cela permet de pouvoir passer commande dans le cas ou l'administrateur ne demande pas l'acceptation des conditions de ventes

    A la ligne (environ) 251 vous avez ceci :
    CODE

    <?php
    if (ACCOUNT_CONDITIONS_REQUIRED == 'true') {
    ?>
                <TR>
                  <TD width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></TD>
                  <TD class="main" colspan="2"><?php echo CONDITION_AGREEMENT; ?> <INPUT type="checkbox" value="0" name="agree"></TD>
                  <TD width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></TD>
                </TR>
       <TR>
                  <TD width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></TD>
    <?
     if (isset($$payment->form_submit)) {

       $form_submit = $$payment->form_submit;
     } else {

       $form_submit = tep_template_image_submit('button_confirm_order_beige.gif', IMAGE_BUTTON_CONFIRM_ORDER);
    Echo(" <TD class=\"main\"><B>". TITLE_CONTINUE_CHECKOUT_PROCEDURE . "</b><br>" . TEXT_CONTINUE_CHECKOUT_PROCEDURE. "</TD>\n");
     }
    }
    ?>


    remplacer le par ça :
    CODE

    <?php
    if (ACCOUNT_CONDITIONS_REQUIRED == 'true') {
    ?>
                <TR>
                  <TD width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></TD>
                  <TD class="main" colspan="2"><?php echo CONDITION_AGREEMENT; ?> <INPUT type="checkbox" value="0" name="agree"></TD>
                  <TD width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></TD>
                </TR>
       <TR>
                  <TD width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></TD>
    <?
    }
     if (isset($$payment->form_submit)) {

       $form_submit = $$payment->form_submit;
     } else {

       $form_submit = tep_template_image_submit('button_confirm_order.gif', IMAGE_BUTTON_CONFIRM_ORDER);
    Echo(" <TD class=\"main\"><B>". TITLE_CONTINUE_CHECKOUT_PROCEDURE . "</b><br>" . TEXT_CONTINUE_CHECKOUT_PROCEDURE. "</TD>\n");
     }

    ?>


    Voila votre contribution est prete a être uploadée sur votre serveur. Copiez le contenu du repertoire catalog local sur le répertoire catalog distant ( serveur) avec votre logiciel de FTP préféré !

    Installation de la contribution

    Dans la contribution vous avez un fichier cmcic_reference.sql . Ce fichier est une requete mySql a exécuter sur votre server MySql. Pour se faire le plus simple est d'utiliser phpMyAdmin partie SQL et rechercher cmcic_reference sur votre disque pour l'executer.

    Ensuite lorsque ceci est fait avec succès, allez à l'administration de votre OSC, partie Module, Payment. Si tout s'est bien passé, vous verrez dans la liste des contribution "Cybermut p@yment". Selectionnez le et installez le.
    Vous devrez alors obligatoirement au moins entrer les informations suivantes :
    - numero de TPE (0000001 par defaut)
    - code sociéte
    et bien sur activer le module !

    Les Tests

    Si vous lisez tout ceci c'est surement que vous êtes en période de test. Donc les transactions sur CyberMut utiliseront des faux numéros de carte que vous trouverez sur le TPE en cliquant sur la carte TEST.


    Si vous voulez que tout le systeme fonctionne correctement il faut aussi prévenir cybermut par mail afin de leur spécifier une URL de retour serveur qui servira pour envoyer un accuser de réception.
    Cette adresse sera de la forme
    http://chemin_jusqu'au_repertoire_catalog/cmcic_response.php

    Lorsque tout fonctionnera bien et que vous souhaiterez passer en production (fin des tests) il vous faudra bien sur obtenir les nouvelles informations de CyberMut (Code societe et numéro TPE).
    Il faudra aussi changer une ligne dans le fichier cybermut102open/catalog/include/module/payment/cmcic.php.

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

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


    La contribution marche très bien maintenant chez moi sur la Creload6.
    En espérant ne pas avoir fait trop de fautes, en espérant avoir été utile et surtout en remerciant les auteurs des contribs et des modifications.

    Have Fun ! cool.gif

    Remarque de Didierk
    QUOTE
    il faut préciser bien préciser que lorsqu'on a la key fournit par CM. il faut copier seulement les deux premieres ligne de la key dans le kit fournit par la banque. sinon on a un message à la validation de la commande.


    --------------------
    Pierre Rigal
    Contributions :
    - Paiement CyberMut ( Mon tuto )
    - Paiement SPPlus ( Mon tuto )
    - Paiement Atos Full Java ( Mon tuto & ma contrib)
    Go to the top of the page
     

    Les messages de ce sujet


    Closed 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 - 06:59
    Ce site est déclaré auprès de la commision Nationale
    de l'Informatique et des Libertés (déclaration n°: 1043896)