Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com Description générale : La méthode d authentification utilisée par CyberMUT pour sécuriser les échanges entre le marchand et la passerelle de paiement est décrite dans la documentation comme étant «une méthode de scellement». Celle-ci est fondée sur un mécanisme précis : le HMAC «Keyed-Hashing for Message Authentication» décrit dans la RFC 2104 sous la forme suivante (en anglais dans le texte) : «a mechanism for message authentication using cryptographic hash functions». La méthode de hashage utilisée ici est le MD5. Tous les échanges effectuées entre 4D Business Kit et la passerelle de paiement sont scellés via cette méthode qui utilise: - Un secret partagé entre la passerelle de paiement et 4D Business Kit qui est fournit sous la forme d une clé privée ( dont la représentation hexadécimale est une chaîne de 40 caractères). - Un datagramme qui est la concaténation des différents champs postés pendant la transaction. Les éléments nécessaires à la mise en oeuvre d une configuration de test : - Un numéro de TPE (Terminal de paiement électronique). Exemple : «0001459». En général, ce numéro est fourni avec la clé privée. - Un code de société. Exemple : «4dsa». - Une clé privée La clé privée est fournie sous la forme d un fichier (téléchargé de façon sécurisé grâce à un mot de passe donné par CyberMUT). Exemple de nom de fichier : «0001459.key» Pour plus de facilité, on peut utiliser un outil donné par les passerelles de paiement CyberMUT et CIC pour extraire la clé privée de ce fichier. Voir dans le dossier «CMCICP@iement Open Tools» qui se trouve dans le kit de développement fourni par la passerelle de paiement la page html «extract2hmac.htm». Cette page permet d extraire la clé privée du fichier (coller le contenu du fichier clé et cliquer sur le bouton «Extraire les clés»). Cette clé privée est une chaîne de caractères de longueur 40 qui correspond à la représentation hexadécimale de 20 octets. Exemple : 0x273666142e9f71f8207747a93b2b2e326e532b00 Dans tous les cas, se référer à la documentation technique de la passerelle de paiement et notamment au «Manuel d installation».
Le tableau de bord commerçant est accesible à l adresse : https://www.creditmutuel.fr/telepaiement/test Phase 1 : 4D Business Kit envoie à la passerelle de paiement CyberMUT tous les détails nécessaires à la transaction en cours. Contenu de la page : «payement_cybermut.htm» <! Montant de la transaction--> <!--#4DBKVarSet/VT01=4DBKField/PrOrderINV.USD,#####0.00--> <!--#4DBKVarSet/VT01+=4DBKField/CdCurrency--> <!--Numero de TPE--> <!--#4DBKVarSet/VT20="0001459"--> <!--Date de paiement--> <!--#4DBKVarSet/VT21=4DBKToday--> <!--#4DBKVarSet/VT21+=":"--> <!--#4DBKVarSet/VT21+=4DBKNow--> <!--Reference--> <!--#4DBKOrderCodeNew--> <!--#4DBKVarSet/VT22=4DBKOrderCode--> <!--Clé--> <!--#4DBKVarSet/VT23="0x273666142e9f71f8207747a93b2b2e326e532b00"--> <!--texte_libre--> <!--#4DBKVarSet/VT24=4DBKField/SessionID--> <!--version--> <!--#4DBKVarSet/VT25="1.2open"--> <!--langue--> <!--#4DBKVarSet/VT26="francais"--> <!--societe--> <!--#4DBKVarSet/VT27="4dsa"--> <! calcul du datagramme--> <!--#4DBKVarSet/VT30=4DBKVar/VT20--> <!--#4DBKVarSet/VT30+=4DBKVar/VT21--> <!--#4DBKVarSet/VT30+=4DBKVar/VT01--> <!--#4DBKVarSet/VT30+=4DBKVar/VT22--> <!--#4DBKVarSet/VT30+=4DBKVar/VT24--> <!--#4DBKVarSet/VT30+=4DBKVar/VT25--> <!--#4DBKVarSet/VT30+=4DBKVar/VT26--> <!--#4DBKVarSet/VT30+=4DBKVar/VT27--> <! calcul de l empreinte MAC--> <!--#4DBKVarSet/VT31=4DBKMD5_HMAC/4DBKVar/VT23,4DBKVar/VT30-->
<FORM METHOD="post" TARGET="_top" NAME="CyberMUT_Paiement" ACTION="https://www.creditmutuel.fr/telepaiement/test/paiement.cgi"> <input type="hidden" name="version" value="<!--#4dbkvar/vt25-->"> <input type="hidden" name="tpe" value="<!--#4dbkvar/vt20-->"> <input type="hidden" name="date" value="<!--#4dbkvar/vt21-->"> <input type="hidden" name="montant" value="<!--#4dbkvar/vt01-->"> <input type="hidden" name="reference" value="<!--#4dbkvar/vt22-->"> <input type="hidden" name="mac" value="<!--#4dbkvar/vt31-->"> <input type="hidden" name="lgue" value="<!--#4dbkvar/vt26-->"> <input type="hidden" name="societe" value="<!--#4dbkvar/vt27-->"> <input type="hidden" name="texte-libre" value="<!--#4dbkvar/vt24-->"> <input type="submit" value="accepter la commande"> </FORM> Phase 2 : Paramétrage de l URL de retour L URL de retour (c est à dire l URL utilisée par la passerelle de paiement pour transmettre le résultat d une transaction à 4D Business Kit) est parametrée via l interface marchand. Cette interface est accessible dans l interface du tableau de bord technique à l adresse suivante : https://www.creditmutuel.fr/telepaiement/main.cgi Code Site Protocole Code Langue Lien de Retour URL Home Page URL du CGI2 Méthode d'appel CGI2 URL du Logo Mail de Surveillance Tableau de bord Prestataire. Configuration(s) du TPE L0001459 en TEST pour la société 4D SA. 4dsa SSL Francais à la société [4D SA] http://194.98.194.112 /TEST_Site/WebPagesUS/home.htm http://194.98.194.112 /4daction/4DBKHttpPostCallBack/textelibre/payment_cybermut_cb.htm/1 post vtlaluque@4d.fr Note sur les paramètres utilisés avec le point d entrée 4DBKHttpPostCallBack : - «texte-libre» : c est le nom du champ posté par la passerelle de paiement qui va contenir l identifiant de session du client. - «payement-cybermut_cb.htm» : c est le nom du script dont le point d entré 4DBKHttpPostCallBack va déclencher l exécution. - «1» : ce paramètre signifie que 4D Business Kit va créer un fichier de debug suite à l exécution du script. Ce fichier est créé dans le sous-dossier «Gateway» du dossier «Logs» du site courant.
Phase 3 : Traitement de la réponse de la passerelle de paiement par 4D Business Kit Pour ce faire, on doit d abord s assurer de l intégrité du message envoyé par la passerelle de paiement en se basant sur la même méthode d authentification que précedement. Un accusé de réception doit ensuite être envoyé à la passerelle de paiement pour confirmer (ou infirmer) l intégrité du message reçu. On regarde ensuite quelle est le résultat effectif de la transaction effectuée suite à quoi il sera possible ou non de valider définitivement la commande client. Contenu du script : «payement_cybermut_cb.htm» <!--#4DBKStoreSet/TEST--> <!--#4DBKVarSet/VT01="0x273666142e9f71f8207747a93b2b2e326e532b00"--> On récupère la valeur des champs postés par la passerelle de paiement <!--#4DBKVarSet/VT10=4DBKHttpPostParms/TPE--> <!--#4DBKVarSet/VT11=4DBKHttpPostParms/date--> <!--#4DBKVarSet/VT12=4DBKHttpPostParms/montant--> <!--#4DBKVarSet/VT13=4DBKHttpPostParms/reference--> <!--#4DBKVarSet/VT14=4DBKHttpPostParms/texte-libre--> <!--#4DBKVarSet/VT15="1.2open"--> <!--#4DBKVarSet/VT16=4DBKHttpPostParms/code-retour--> <!--#4DBKVarSet/VT20=4DBKHttpPostParms/MAC--> MAC transmis par CyberMUT:<!--#4DBKVar/VT20--> <!--#4DBK//Optionnel : Envoi d'un email a la boutique contenant la valeur des champs postes par la passerelle CyberMUT--> <!--#4DBKMail/test@4DBK.com,4DBKField/StoreShopEMail,Champs reponses obtenus de CyberMUT,payment_cybermut_cb_mail.htm,HTM--> <!--#4DBKVarSet/VT30=4DBKVar/VT10--> <!--#4DBKVarSet/VT30+=4DBKVar/VT11--> <!--#4DBKVarSet/VT30+=4DBKVar/VT12--> <!--#4DBKVarSet/VT30+=4DBKVar/VT13--> <!--#4DBKVarSet/VT30+=4DBKVar/VT14--> <!--#4DBKVarSet/VT30+=4DBKVar/VT15--> <!--#4DBKVarSet/VT30+=4DBKVar/VT16--> Datagramme:<!--#4DBKVar/VT30--> <!--#4DBKVarSet/VT31=4DBKMD5_HMAC/4DBKVar/VT01,4DBKVar/VT30--> Mac calcule par 4DBK:<!--#4DBKVar/VT31--> Fabrication de l accusé de réception <!--#4DBKVarSet/VT40="Content-type: text/plain Version:1"--> <!--#4DBKIf ("4DBKVar/VT31"="4DBKVar/VT20")--> Intégrité du message vérifié <!--#4DBKVarSet/VT40+=" OK "--> <!--#4DBKElse--> Intégrité du message non vérifié <!--#4DBKVarSet/VT40+=" Document falsifie "--> <!--#4DBKEndIf-->
<!--#4DBKVarSet/VT40+=4DBKToday--> <!--#4DBKVarSet/VT40+=":"--> <!--#4DBKVarSet/VT40+=4DBKNow--> On envoie l accusé de réception à la passerelle de paiement <!--#4DBKHttpPostResponse/4DBKVar/VT40--> On regarde ensuite quel est le résultat de la transaction : <!--#4DBKIf ("4DBKVar/VT16"="payetest")--> <!--#4DBKOrderValidate--> <!--#4DBKOrderClear--> <!--#4DBKEndIf--> Attention : Un email est envoyé dans ce script via la commande 4DBKMail. Si pour une raison quelconque une erreur se produit à ce niveau (exemple : le nom du serveur de mail n est pas saisi dans les préférences de la boutique), l exécution du script est interrompue et l accusé de réception ne sera pas envoyé (d où un possible message d erreur de la part de la solution de paiement). L envoi de cet email est optionnel. Il contient la valeur des différents champs postés par la passerelle de paiement à 4D Business Kit. Il est envoyé sur l adresse email du marchand pour contrôle. Contenu du script : «payement_cybermut_cb_mail.htm» <html> <head></head> <body> <table> <td width="91" ><b>tpe</b></td> <td width="188"><b><!--#4dbkvar/vt10--></b></td> <td width="91" ><i>date</i></td> <td width="188"> <!--#4DBKVar/VT11--></td> <td width="91" ><i>montant</i></td> <td width="188"> <!--#4DBKVar/VT12--></td> <td width="91" ><i>reference</i></td> <td width="188"> <!--#4DBKVar/VT13--></td> <td width="91" ><i>texte-libre</i></td> <td width="188"> <!--#4DBKVar/VT14--></td> <td width="91" ><i>code-retour</i></td> <td width="188"> <!--#4DBKVar/VT16--></td> <td width="91" ><i>mac</i></td> <td width="188"><!--#4dbkvar/vt20--></td> </table</body> </html>
Note important pour les utilisateurs de MacOS 10.x: L URL de retour de la passerelle de paiement ne fonctionne pas sur un port différent du port 80. En fait, après vérification auprès de CyberMUT, leur firewall n est ouvert en sortie que pour les ports 80 et 443. Pour des raisons liées à l architecture système de MacOS 10, un applicatif 4D Business Kit lancé sur MacOS 10.x ne peut pas par défaut utiliser le port 80 à moins que l utilisateur courant ne soit loggué en tant qu utilisateur «root» de la machine (ce qui est en général fortement déconseillé pour des raisons de sécurité). Pour fonctionner correctement, 4D Business Kit (dans sa version fonctionnant sur MacOS 10.x) est donc lancé sur un port dont le numéro est supérieur à 1024 (on utilise le port 8080 dans la majeure partie des examples). Il existe un contournement à ce problème (transparent pour l utilisateur) : Il s agit d utiliser le serveur Web integré de MacOS 10 (Apache) qui lui peut utiliser sans problème le port 80 en créant une règle de redirection qui va rediriger systématiquement toutes les requètes adressées au port 80 vers le port 8080. Cette règle se crée à partir d une fenêtre de l application «Terminal» de MacOS 10 (cette application se trouve dans le dossier «Utilitaires» du dossier «applications» de MacOS 10). Voici la syntaxe nécessaire pour la créer (un mot de passe administrateur sera nécessaire): sudo ipfw add 101 fwd 127.0.0.1,8080 tcp from any to any 80 in Ainsi que la syntaxe nécessaire pour la supprimer: sudo ipfw delete 101 De cette façon : - On peut accéder à 4D Business Kit en utilisant directement le numéro de port http 80 standard. - La réponse envoyée par la passerelle de paiement CyberMUT (obligatoirement sur le port 80) peut être réceptionnée par 4D Business Kit ce qui est indispensable pour la suite de la transaction. Date : 18 novembre 2003 Auteur : V.Laluque