Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Modules de Paiement et de Livraison _ CyberMut - CIC et OSC

Écrit par : Wouf 26 Apr 2004, 14:03

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 : http://www.oscommerce-fr.info/forum/index.php?showtopic=5860&hl=cybermut

Pré-requis

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é.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.
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.

    Écrit par : Gyakutsuki 7 Oct 2004, 08:30

    Je crée ce post it suite à une mise en place de la solution P@iement CIC .
    Je remercie aussi ceux qui ont apporté sur le forum,

    Tout les exemples ci dessous sont fictifs.

    Pour tous les pbs, RDV sur ce http://www.oscommerce-fr.info/forum/index.php?act=ST&f=16&t=12565
    Instructions d'installation
    **************************

    Télécharger l'open-Kit CM/CIC 1.03h sur le site http://commerce.e-i.com/news/


    Installé P@iement CIC.

    Suivre toutes les instruction à la lettre et ne rien faire d'autre.

    La banque CIC va vous envoyer plusieurs Mails

    -----------------------------------------------------------------------------------------------

    1/

    Le premier concernera un fichier appellé *** downloadkey6297911.html ***
    Les 6297911 correspondent à votre TPE.
    En cliquant sur ce fichier, vous accéder à un espace ou

    1a/

    vous aller télécharger un fichier
    (après avoir mis un mot de passe et un pseudo donné par la banque) .key
    6297911.key
    Ce fichier contiendra ces lignes pour exemples


    VERSION 1 1A01689474AB0BB6572D01C853091F3446795CM1
    HMAC-SHA1
    #
    5a9847f9f3a92a95f6dde89474fd94111389412d

    -----------------------------------------------------------------------------------------------
    2/
    Soit par mail soit via un lien, vous devrez télécharger ce ficher CM_CIC_Paiement-1.03h.zip

    2a/

    décompresser le fichier CM_CIC_Paiement-1.03h.zip

    2b/

    Aller dans le répertoire CM_CIC_Paiement-1.03h/tools/HMAC-SHA1
    et lancer le ficher extract2HmacSha1.html

    -----------------------------------------------------------------------------------------------
    3/

    3a/

    Copier les trois lignes contenues dans le fichier .key fourni par la banque

    VERSION 1 1A01689474AB0BB6572D01C853091F3446795CM1
    HMAC-SHA1
    #
    5a9847f9f3a92a95f6dde89474fd94111389412d

    3b/

    Cliquer sur Generate a PassPhrase to split above key
    Une clef apparait du type : ApO946IGehtpZkqdVu6D

    3c/

    Au niveau Enter your 7 digits TPE (merchant id) :

    changer : 0000001
    par votre TPE (7 chiffres): 6297911

    3d/

    Cliquer sur Compute HMAC Control Value
    Une fenêtre apparait alors à l'écran => cliquer sur ok


    3c/

    Ignorer les saisies de société, kit, banque, ils n'ont pas (pas encore) de kit OsCommerce
    Vous saisirez ces informations directement dans l'interface d'admin OSC.

    !!!!!!! ne pas fermer le fichier extract2HmacSha1.html !!!!!!!!!
    -----------------------------------------------------------------------

    4/

    copier la valeur du champs select first part ok key (=passphrase)
    ex : Ape946IGiktpZkfdVu6D

    4a/

    ouvrir le fichier catalog/includes/modules/paiement/cmcic.php

    4b/

    vers la ligne 231
    changer
    $pass = "votrepassphrase";
    par
    $pass = "Ape946IGiktpZkfdVu6D";


    4c/ Enregistrer le fichier et fermer le fichier
    -----------------------------------------------------------------------


    5/

    Aller dans le fichier extract2HmacSha1.html
    Copier la valeur du champ Select 2nd part of key
    ex : 0x8343cc4efc47c5455524a2d79983fa4e84ca0701

    5a/

    Dans le répertoire /catalog/cmcic/
    Editer le fichier 6297911.cle.2nde ou votretrpe.cle.2nde

    5b/

    Remplacer la valeur
    0x937964ab85eca9e0c2f556b8b834d6f450db5e67
    par
    0x8343cc4efc47c5455524a2d79983fa4e84ca0701

    Prendre garde à ne rajouter aucun espace ou saut de ligne,
    le fichier .cle.2nde ne doit contenir QUE les caractères de la clef,
    ici ca commence à 0x et ca finit à 65

    A noter que pour la phase de test "prospect" il suffit de générer une clef fictive en cochant "dummy key"

    5c/

    Enregistrer et fermer le fichier

    5d/

    Fermer le fichier extract2HmacSha1.html
    --------------------------------------------------------------------

    6/ Aller dans phpmyadmin

    6a/
    Exécuter les requête sql
    cmcic_reference.sql et cmcic_response.sql

    --------------------------------------------------------------------
    7/ tranférer sur votre serveur les fichiers du répertoire catalog

    7a/ Dans l'admin, valider le module Cyberpaiement.

    Partie administration du site
    Modules/Paiement
    Cliquer sur Cyberpaiement et installer.
    Editer le fichier et remplacer les éléements suivant

    Remplir les champs :

    -Activer Module Cybermut
    True

    -Sort order of display.
    0

    -Numero TPE
    <votre n°TPE> ========> 6297911

    -Version du Kit
    1.2open

    -Societe
    <votre code société> =========> donner par la banque lors d'un mail

    -Bouton
    Paiement CB


    7b/ essayer de passer une commande pour voir si le module bancaire réagit correctement (si vous avez une erreur c'est normal
    mais vous devriez voir les champs d'insertion de la carte bancaire).

    7c/ Dévalider le module cyberpaiement si votre boutique est en prodcution

    ------------------------------------------------------------------

    8/ téléphoner ou envoyer un mail

    P@iement CIC
    Euro Information
    Commerce électronique
    36 rue de Messines
    BP 206
    F-59832 VERLINGHEM CEDEX
    Tel : +33 (0)3.20.12.63.50
    Fax : +33 (0)3.20.12.63.54
    mailto:centrecom@e-i.com

    8a/ Préciser que vous avez mis en test la contribution oscommerce cyberpaiement CIC.

    8b/

    Donner le lien de la home page de votre catalog :
    http://www.monssite.com si catalog dans la racine
    http://www.monsiete.com/catalog/ si page index.php est dans catalog

    8c/ Préciser le n° de votre TPE : 6297911

    8d/

    Préciser l'adresse de retour cmcic_response.php
    http://www.monssite.com/cmcic_response.php si cmcic_response.php dans la racine
    http://www.monsiete.com/catalog/cmcic_response.php si page cmcic_response.php est dans catalog


    8e/ Vous devriez recevoir un mail de centrecom vous spécifiant que la mise à jour a été effectuée.

    8f/ Réaliser un test sur votre site.

    -------------------------------------------------------------------------

    9/ Pour passer en production

    9a/ Editer le fichier catalog/includes/modules/paiement/cmcic.php

    9b/ Vers la ligne 53 : passage en serveur test ou prod

    9c/

    Supprimer les // de la ligne 57 (seveur en production)
    // $this->form_action_url = html_encode('https://ssl.paiement.cic-banques.fr/paiement.cgi');

    9d/
    Mettre les // de la ligne (serveur test)
    $this->form_action_url = html_encode('https://ssl.paiement.cic-banques.fr/test/paiement.cgi');

    9e/ Enregistrer et fermer

    9f/ Télécharger le fichier sur votre serveur dans le répertoire catalog/includes/modules/paiement/

    9g/ Dans la partie admin de votre site

    Supprimer le module Cyberpaiement
    Installer le module cyberpaiement

    ==> ceci afin de réinitialiser les variable.

    !!!!!!!!!!! N'oublier pas d'y rajouter votre code société et TPE. !!!!!!!!!!!!


    9g/ Envoyer un fax ou une lettre à

    P@iement CIC
    Euro Information
    Commerce électronique
    36 rue de Messines
    BP 206
    F-59832 VERLINGHEM CEDEX
    Tel : +33 (0)3.20.12.63.50
    Fax : +33 (0)3.20.12.63.54
    mailto:centrecom@e-i.com

    et préciser les points suivant :

    - Serveur mis en production
    - N° TPE : 6297911
    - Nom entreprise : monentreprise
    - Mon site : http://www.monsite.cpm

    => L'idéal c'est de les appeller.

    9h/
    la banque vous confirmera la mise en production, alors vous pouvez mettre le module en production


    ----------------------------------------------------------------------------


    La contribution est désormais fonctionnelle (en théorie !)
    -faire une commande test pour s'en assurer

    -----------------------------------------------------------------------------------------------

    En cas de problème consulter le forum d'Oscommerce !

    Propulsé par Invision Power Board (http://www.invisionboard.com)
    © Invision Power Services (http://www.invisionpower.com)