Upload
phamcong
View
218
Download
3
Embed Size (px)
Citation preview
Module Marchand Maroc Telecommerce
Guide d’intégration
du service de paiement en ligne
Version 3.3 L
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 1 /18
Sommaire
1. INTRODUCTION ................................................................................................................................. 2 2. SECURITE DES ECHANGES .............................................................................................................. 2 3. PROCESSUS DE PAIEMENT EN LIGNE .......................................................................................... 3
3.1. PAIEMENT EN LIGNE PAR CARTES BANCAIRES : ................................................................................. 3 3.1.1. Cinématique : ............................................................................................................................ 3 3.1.2. Diagramme de flux :................................................................................................................... 5
4. DONNEES ECHANGEES ..................................................................................................................... 6 4.1. PAYMENT REQUEST POST FORM : .................................................................................................... 6
4.1.1. Paramétres : .............................................................................................................................. 6 4.1.2. Exemple de requête de paiement:................................................................................................ 9 4.1.3. Génération du checksum de la requête de paiement : .................................................................. 9
4.2. PAYMENT SUCCESS UPDATE POST FORM : ....................................................................................... 10 4.2.1. Paramétres : ........................................................................................................................... 10 4.2.2. Exemple de requête de confirmation de paiement: .................................................................... 14 4.2.3. Génération du checksum : ........................................................................................................ 14 4.2.4. Exemples de réponses de confirmation de paiement : ................................................................ 14
4.3. PAYMENT SUCCESS SCREEN PAGE : ................................................................................................. 15 4.3.1. Paramétres : ........................................................................................................................... 15 4.3.2. Exemple de lien de retour : ....................................................................................................... 15 4.3.3. Génération du checksum : ........................................................................................................ 15
5. LE PAIEMENT MOBILE ................................................................................................................... 16 6. ANNEXE .............................................................................................................................................. 17
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 2 /18
1. INTRODUCTION
Le service de paiement en ligne de Maroc Telecommerce fonctionne en conjonction avec le Module Marchand, qui est réalisé pour assurer la sécurisation, l’authentification et l’intégrité des offres commerciales et des échanges avec la plate-forme de paiement en ligne.
2. SECURITE DES ECHANGES
Pour la sécurisation des transactions financières, Maroc Telecommerce utilise en standard le protocole SSL limité au chiffrement des informations de facture, lieu de livraison et référence bancaire et des écrans d'administration destinés aux marchands. Pour cela, Maroc Telecommerce est doté de certificats de sécurité SSL signés par des autorités de certification reconnues. La sécurité est assurée à plusieurs niveaux.
• Sur le serveur marchand, le module marchand, valide chaque offre commerciale en signant chaque proposition avec un algorithme MD5 et une clé secrète. Cette clé est générée aléatoirement et transmise au marchand lors de la phase d’intégration de la solution sur son site.
• Sur la plate-forme, le même algorithme MD5 utilise la clé secrète partagée pour authentifier le marchand et vérifier qu'aucun élément de l'offre commerciale n'ait été modifié pendant son transfert sur le réseau.
• La saisie des informations nécessaires aux traitements financiers est sécurisée par le protocole SSL avec d’autres algorithmes non décrits dans ce document. Ces zones et informations sont prédéfinies dans le Back-office et non modifiables.
Tous ces algorithmes sont connus, publiés et utilisés mais pas développés par Maroc Telecommerce. Ces algorithmes n'ont donc pas été détaillés dans ce document, mais sont publiés dans des ouvrages et sur des sites Internet spécialisés. La plate-forme est basée sur un progiciel applicatif livré clé en main, il n’est donc pas fait pour autoriser quelque modification de fonctionnement que ce soit. De même, Maroc Telecommerce s’engage contractuellement à respecter ce fonctionnement. Les fonctions de cryptographie ne sont pas accessibles à l’utilisateur et à fortiori ne peuvent pas être modifiées ou complétées.
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 3 /18
3. PROCESSUS DE PAIEMENT EN LIGNE
3.1. PAIEMENT EN LIGNE PAR CARTES BANCAIRES :
3.1.1. Cinématique :
Fig.1 : Choix de la méthode de paiement en ligne dans le site marchand
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 4 /18
Fig.2 : Page de paiement dans la plate-forme MTC
Fig.3 : Reçu de paiement dans la plate-forme MTC
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 5 /18
3.1.2. Diagramme de flux :
9’. Réponse à la requête de confirmation
8. Affichage du résultat du traitement de la banque
10. (option) Retour vers le site marchand et Affichage du résultat de paiement
sur l’écran du client
5. Saisie et contrôle des Informations de paiement
6. Demande d’autorisation
1. Connexion au site marchand
4. Affichage de la page de paiement
7. Traitement de la transaction
3. Demande de paiement en ligne
9. (option) Mise à jour du site marchand (cas d’un paiement accepté)
11. (option) Notification par email du client et du marchand
2. Choix de l’article à commander
12. Confirmation manuelle (par le marchand à travers le Back-office Maroc
Telecommerce) ou automatique des demandes d’autorisation préalablement
accordées
14. Compensation des transactions
13. Traitement des confirmations et notification du
client par mail
15. Crédit/rembourssement (par le marchand à travers le Back-office Maroc
Teelecommerce) des demandes d’autorisation préalablement confirmées
17. Compensation des transactions
16. Traitement des crédits et notification du client par mail
Site Marchand (Front Office)
Client
Maroc Telecommerce (plate-forme)
Centre Monétique Interbancaire
D E M A N D E D E P A I E M E N T
C O M P E N S A T I O N
R E M B O U R S E M E N T
14’. Crédit du compte marchand 14’. Débit du compte client
17’. Débit du compte marchand 17’. Crédit du compte client
9’’. (option) Confirmation ou annulation de la transaction
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 6 /18
4. DONNEES ECHANGEES
L’échange de données entre le Site Marchand et la plate-forme Maroc Telecommerce se fait à travers un envoie de formulaire (form Post). Cet envoie est sécurisé en signant chaque échange avec un algorithme MD5 et une clé secrète.
4.1. PAYMENT REQUEST POST FORM :
Formulaire de demande de paiement (Site marchand -> Module Marchand Maroc Telecommerce).
4.1.1. Paramétres : Cette section fournit une description des attributs nécessaires pour la création de la demande de paiement. Ces attributs, sont en général organisés selon les catégories suivantes :
• Attributs généraux • Attributs de paiement
Remarque : Chaque tableau contient les quatre colonnes suivantes:
• Le nom de l'attribut. • La description de l'attribut. • Le format de l'attribut. • Les contraintes de l’attribut:
o Requis: Vous devez indiquer une valeur pour cet attribut. o Requis si: Vous devez indiquer une valeur si l'état indiqué est vrai. o OK si: Vous ne pouvez indiquer une valeur que si l'état indiqué est vrai. o Interdit si: Vous ne pouvez pas indiquer une valeur si le type d’article égal à la valeur indiquée. o Défaut: Valeur par défaut. o Option: le renseignement de la valeur de l’attribut n’est pas obligatoire.
• Attributs généraux Le tableau suivant récapitule certains attributs des offres électroniques les plus importantes: Nom de l’attribut Description Format Contrainte
storeId Identificant du magasin attribué par Maroc
Telecommerce
Numérique Requis
langue La langue utilisée lors de l’affichage du bon de commande pour l’offre en question.
EN: Anglais Ou FR: Français Ou AR: Arabe
Alphanumérique
(2)
Option Par défaut EN
offerURL Le chemin qui permet à l’acheteur de revenir au site
marchand.
Alphanumérique Requis
updateURL L’URL utilisée dans le reçu d’un paiement accepté pour que le client puisse retourner dans le site marchand et
Alphanumérique Option
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 7 /18
afficher le message de résultat de sa commande bookURL L’URL utilisée par MTC pour confirmer la commande
au niveau de la base de données du site marchand suite à un paiement accepté.
La confirmation est exécutée en background (server-to-server) via http par un submit d’un form de confirmation (voir détail ci-dessous).
Alphanumérique Option
name
Nom (et prénom) de l’acheteur Alphanumérique Option
Si ces informations ne
sont pas renseignées
sur le site web du
marchand, MTC doit
être informée pour
activer leur saisie sur
le bon de commande
de paiement.
Si country = CA
(Canada) ou US
(Etats-Unis), le
paramètre state est à
renseigner selon la
liste des
états/provinces décrite
dans l’annexe.
address
Adresse de l'acheteur Alphanumérique
city
Ville de l'acheteur Alphanumérique
state
Etat/Province de l’acheteur Alphanumérique
country
Pays de l'acheteur. Doit respecter la liste en annexe. Alphanumérique
postCode
Code postal de l'acheteur Numérique
tel
N° de téléphone de l'acheteur Alphanumérique
email Adresse électronique de l'acheteur Alphanumérique
Format email
emailWebmaster Adresse email du webmaster, utilisée pour notification
en cas de problème lors de la requette de confirmation
(server to server)
Alphanumérique
Format email
option
checksum Code de contrôle généré par l’algorithm MD5 Alphanumérique Requis
Remarques : § Le paramètre updateURL ne sert pas à mettre à jour l’état de paiement de la commande dans le site
marchand. En effet, c’est le paramètre bookURL qui est utilisé pour cette mise à jour. L’URL renseignée dans le paramètre updateURL est donc principalement utilisée pour afficher un message personnalisé de confirmation de paiement et de prise en compte de commande, lorsque le client retourne au site marchand après le paiement.
§ L’URL renseignée dans le paramètre bookURL doit être accessible sur Internet même lors de la phase des tests. Dans le cas contraire, une alerte email sera envoyée à l’adresse email indiquée dans le paramètre emailWebmaster pour lui remonter l’anomalie avec plus de detail sur la cause du probleme. Aussi, un message d’erreur approprié est affiché dans ce cas sur le reçu de paiement).
§ L’URL renseignée dans le paramètre bookURL ne doit pas nécessiter une authentification d’accès (login/password). Dans le cas contraire, une alerte mail sera envoyée à l’adresse email indiquée sur le parametre emailWebmaster et un message d’erreur approprié sera affiché sur le recu de paiement.
§ Si le marchand prévoit que l’adresse IP du nom de domaine de l’URL renseignée dans le paramètre bookURL changera régulièrement, il est recommandé qu’il renseigne dans la requête de paiement (paramètre bookURL) directement l’adresse IP au lieu du nom de domaine.
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 8 /18
• Attributs de paiement Le tableau suivant récapitule les attributs qui déterminent le coût des produits et les modalités de paiement. Nom de l’attribut Description Format Contrainte
cartId N° de la commande/Caddie dans la BDD du
site marchand
Alphanumérique Requis
totalAmountTx Montant de la transaction
Numérique
Quantité d'argent sans symbole monétaire. centimes séparés par un point)
Exemple 29.95
Requis
totalAmountCur En option, montant équivalent de
totalAmountTx en devise de la commande
en centimes (100.25)
Numérique
Quantité d'argent sans symbole monétaire. centimes séparés par un point)
Exemple 29.95
Option
symbolCur Symbole monétique de la devise à afficher au
niveau des pages de paiement
Alphanumérique
Exemple : USD,
EUR.
Requis si TotalamountCur
est renseigné
paymentType Type du paiement. Numérique (1) 1 : Cartes bancaires.
2 : Porte Monnaie
Electronique 1.
3 : Porte Monnaie
Elecronique 2.
(MTC va définir la valeur
de chaque moyen de
paiement dès activation de
ce mode sur sa plate-
forme)
Valeur par défaut : 1.
Pour afficher tous les
moyens de paiement,
activés dans le contrat du
marchand, dans la page de
paiement MTC, ce
paramètre ne doit pas être
renseigné.
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 9 /18
4.1.2. Exemple de requête de paiement: <form name="paymentForm" action="http://passerelle.maroctelecommerce.com/paiement.asp" method="post">
<input type="hidden" name="storeId" value="01">
<input type="hidden" name="langue" value="FR">
<input type="hidden" name=" offerURL" value="http://www.sitemarchand.com">
<input type="hidden" name=" updateURL" value="http://www.sitemarchand.com/update.asp">
<input type="hidden" name=" bookURL" value="http://www.sitemarchand.com/book.asp">
<input type="hidden" name="cartId" value="123">
<input type="hidden" name=" totalAmountTx" value="3160.75">
<input type="hidden" name=" totalAmountCur" value="325.07">
<input type="hidden" name="symbolCur" value="EUR">
<input type="hidden" name="name" value="Test Client">
<input type="hidden" name="address" value="Test address">
<input type="hidden" name="city" value="Paris">
<input type="hidden" name="state" value="Ile-de-france">
<input type="hidden" name="country" value="FR">
<input type="hidden" name="postCode" value="65100">
<input type="hidden" name="tel" value="123456">
<input type="hidden" name="email" value="[email protected]">
<input type="hidden" name="emailWebmaster" value="[email protected]">
<input type="hidden" name="paymentType" value="1">
<input type="hidden" name="checksum" value="12b73cb6681198da2c87c4d34ded38ab">
</form>
4.1.3. Génération du checksum de la requête de paiement : Le code de contrôle (checksum) est généré par l’algorithm MD5 et basé sur les données suivantes :
o action (paymentForm), o storeId o cartId o totalAmountTx o email o la clé symétrique générée par Maroc Telecommerce est attribué au marchand.
Tous ces champs sont concaténés, dans l’ordre ci-dessus, en un seul mot (chaine de caractères). La chaîne de résultat est encodée UTF-8 avant de générer le code de contrôle MD5. Exemple :
Dans le cas de l‘exemple précédent du Payment Request Post Form, le mot (chaine de caractères) qui est utilisé pour générer
le code de contrôle MD5, est le suivant :
http%3A%2F%2Fpasserelle.maroctelecommerce.com%2Fpaiement.asp011233160.75customer%40domain.comClEsEc
ReTe Le code de contrôle MD5 dans ce cas est le suivant :
12b73cb6681198da2c87c4d34ded38ab
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 10 /18
4.2. PAYMENT SUCCESS UPDATE POST FORM : Formulaire de MAJ (Plate-forme Maroc Telecommerce -> Site marchand).
Si le marchand souhaite recevoir les accords d’autorisations dans son système d’informations, Maroc Telecommerce lui adresse un message de retour. Ce message est un formulaire de mise à jour de la base de données du site marchand dans le cas d'une autorisation accordée. Ce formulaire retourne des informations reçues du site marchand en plus du n° de commande généré par la plate-forme Maroc Telecommerce. Il y a d’autres informations qui constituent la requête de confirmation et qui sont décrites dans la suite de ce document. Au niveau du site marchand, il doit y avoir un contrôle de concordance entre les données transmises par Maroc Telecommerce et celles enregistrées dans le site marchand. Ce contrôle est obligatoire pour assurer la sécurité et l’intégrité des données achangées. L’exécution de la requête de confirmation se fait en background (en silencieux) server-to-server entre la plate-forme Maroc Telecommerce et le site marchand.
4.2.1. Paramétres : Cette section fournit une description des attributs nécessaires pour la création de la demande de confirmation de paiement.
• Attributs de la requête de confirmation Le tableau suivant récapitule les attributs qui déterminent les informations générées suite à l’acceptation du paiement et qui sont utilisées dans la requête de confirmation MTC -> Site Marchand. Nom de l’attribut Description Format Contrainte
cartId N° de la commande/Caddie dans la BDD du site
marchand
Alphanumérique Requis
name
Nom (et prénom) de l’acheteur Alphanumérique Requis
email Adresse électronique de l'acheteur Alphanumérique
Format email
Requis
totalAmountTx Montant de la transaction
Numérique
Quantité d'argent sans symbole monétaire. centimes séparés par un point)
Exemple 29.95
Requis
orderNumber N° de la transaction dans le back office MTC
Numérique(6)
Unique
Requis
pmtSeqId Identifiant de la transaction chez le centre
monétique
Numérique Requis
approvalCode Identifiant de l’autorisation de paiement accordée
par la banque du porteur (paiement par carte) ou
l’opérateur télécom (paiement via porte monnaie
Alphanumérique(6) Requis
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 11 /18
électronique)
paymentCardType Type de la carte de paiement utilisée Numérique(1) Requis si c’est le cas du
paiement par cartes
bancaires.
Valeurs possibles :
1: Carte Marocaine. 2: Carte étrangère.
3DSecureResult Resultat du contrôle de l’authentification
3DSecure
Numérique(1) Requis si c’est le cas du
paiement par cartes
bancaires.
Valeurs possibles :
1 : Authentification
réussie.
2 : Carte non dotée du
mécanisme
d’authentification
3DSecure
eciValue Valeur ECI de l’authentification 3DSecure Numérique(2) Valeurs possibles : 01,
02, 05, 06, 07 ou vide.
bankName Le nom de la banque de l’acheteur Varchar (10) Requis
expirationDate Date d’expiration de la carte bancaire Varchar (5) Requis
ccn Les 4 derniers chiffres de la carte de paiement
utilisée
Varchar (4) Requis
paymentBrandName Type de la carte de paiement utilisée Varchar (2) Requis Valeurs possibles : VI : Visa MA : MasterCard MT : Maestro Cmi : cmi DI : Discover DC: Diners Club MC: MobiCash
BI: Binga
checksum Code de contrôle généré par l’algorithm MD5 Alphanumérique Requis
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 12 /18
apiChecksum Code de hachage pour l’utilisation des API
d’automatisation des flux
Alphanumérique Optionel
Remarque :
• L’authentification forte 3DSecure protège plus le marchand dans le cas de fraude. Actuellement, l’authentification 3DSecure n’est appliquée que pour les cartes étrangères. Pour rappel, quand une transaction est enregistrée avec une carte étrangère, le paramètre paymentCardType prend la valeur 2 et quand cette carte est non authentifiable (n’est pas dotée du système d’authentification 3DSecure), le paramètre 3DSecureResult prend la valeur 2.
• Lorsque l’authentification forte 3DSecure chez Visa (VbV) retourne un eciValue = 7, le marchand court un risque si jamais la transaction est frauduleuse, car le porteur est toujours crédité (et le compte marchand est bien sûr débité).
• Il est donc recommandé que le marchand procède, avant la livraison du bien ou du service, à un contrôle pour s’assurer de la crédibilité du client.
• Pour plus de précisions à ce sujet, le marcahnd est appelé à prendre contact avec le CMI. • Le site marchand peut instaurer des règles de gestion automatique pour bloquer l’utilisation massive de
cartes de paiement frauduleuses par une ou plusieurs personnes. Nous donnons ci-après, à titre d’exemple, deux règles que le marchand peut appliquer dans son site : • Une carte bancaire ne peut pas être utilisée pour acheter plus que X commandes. Une carte
bancaire est identifiée au niveau du site marchand par les attributs envoyés par la plate-forme MTC lors de la confirmation de paiement. Les attributs à prendre en compte dans ce cas sont : o Les 4 derniers chiffres de la carte. o Le type de la carte o La date d’expiration de la carte o Le Nom de la banque
Il est à noter ici, que ce contrôle permet de bloquer un fraudeur qui, après avoir utilisé une carte pour payer le nombre maximum de commandes autorisé par le site, change de profil pour en passer plus.
• Un client ne peut pas utiliser plus que Y cartes de paiement différentes, toutes commandes comprises ; car ce n’est pas courant qu’un client dispose d’un grand nombre de cartes différentes. Dans ce cas, il ne faut pas prendre en considération l’attribut « date d’expiration de la carte » pour identifier une carte, sinon il y a un risque de bloquer un client pour la même carte dont la date d’expiration change. Donc les attributs à prendre en compte dans ce cas sont : o Les 4 derniers chiffres de la carte. o Le type de la carte o Le Nom de la banque
• Attributs de la réponse de confirmation Le tableau suivant récapitule les attributs qui déterminent les informations générées suite à la confirmation de la commande au niveau du site marchand. Donc il s’agit de la réponse retournée par le site marchand à Maroc Telecommerce (Site Marchand -> MTC). Nom de l’attribut Description Format Contrainte
responseCode Résultat de la requête de
confirmation
Numérique(1) Requis
Valeurs possibles :
0: confirmation échouée => dans ce cas transaction n’est pas confirmée automatiquement au CMI et le client ne sera pas débité automatiquement 1: confirmation réussie => dans ce cas, la transaction est confirmée au CMI pour débiter le client et un courriel de confirmation lui est envoyé par le marchand.
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 13 /18
2: la transaction a déjà été confirmée par une ancienne requête en utilisant le même Order Number => dans ce cas, la transaction est confirmée au CMI pour débiter le client. 3: la transaction a déjà été confirmée par une ancienne requête en utilisant un Order Number différent => dans ce cas, la transaction est annulée et le client n’est pas débité. Time out: (aucune réponse du site marchand) => le client n’est pas débité et la transaction est laissée à l’état autorisée. Ce type de transaction doit être traité manuellement (confirmer ou annuler) par le marchand via le back office MTC de suivi des transactions, et ce dans les délais recommandés. Pour identifier ces transactions, le marchand est invité à consulter la plate-forme Maroc Telecommerce périodiquement.
confirmId Identifiant de la commande ou
de la confirmation de la
commande au niveau du site
marchand
Alphanumérique Requis
Dans le cas d’échec de confirmation (Response Code = 0), ce champ prend la valeur « Null »
confirmDate Date de confirmation de la
commande au niveau du site
marchand
Date
aaaammjj
Requis
confirmationMode La méthode de confirmation des
transactions au niveau de la
plate-forme de paiement. Ladite
confirmation déclenche le débit
du client.
Numérique(1) Requis
Valeurs possibles :
1 : automatique
(la confirmation est assurée par MTC suite à la
réponse du site marchand à la requête de
confrmation envoyée par MTC).
2 : manuel
(la confirmation est assurée par le marchand via
le back-office MTC de suivi des transactions).
Valeur par défaut : 2.
Le format de la réponse est comme suit : <responseCode>;<confirmId>;<confirmDate>;<confirmationMode> (Les paramètres sont concaténés et séparés par des points-virgules). Remarques :
• La réponse à la requête de confirmation ne doit pas contenir des données autres que celles demandées ci-dessus. Même des balises HTML simples comme <HTML><HEAD><BODY> ne sont pas autorisées car elles génèrent des erreurs.
• Dans le cas d’échec de cette requête, l’erreur est enregistrée dans la plate-forme MTC. Le marchand peut dans ce cas consulter le détail de la transaction en question au niveau du back office MTC pour connaître le code et la description de l’erreur.
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 14 /18
4.2.2. Exemple de requête de confirmation de paiement: <form name="paymentForm" action="http://www.sitemarchand.com/update.asp" method="post">
<input type="hidden" name="cartId" value="ABC123">
<input type="hidden" name="name" value="Ahmed HAMED">
<input type="hidden" name="email" value="[email protected]">
<input type="hidden" name="totalAmountTx" value="1121.90">
<input type="hidden" name="orderNumber" value="100320">
<input type="hidden" name="pmtSeqId" value="12345">
<input type="hidden" name="approvalCode" value="A345C5">
<input type="hidden" name=" paymentCardType" value="1">
<input type="hidden" name="3DSecureResult" value="02">
<input type="hidden" name="checksum" value="76719357c57e7ffbcd24faceb641c2d0">
<input type="hidden" name="apiChecksum" value="3fb48486ee963743be1eedabc1d59e53">
</form>
4.2.3. Génération du checksum : Le code de contrôle (checksum) est généré par l’algorithm MD5 et basé sur les données suivantes :
o bookURL, o storeId, o cartId, o totalAmountTx, o email, o la clé symétrique générée par le Module Marchand.
Tous ces champs sont concaténés, dans l’ordre ci-dessus, en un seul mot (chaine de caractères) . La chaîne de résultat est encodée UTF-8 avant de générer le code de contrôle MD5. Exemple :
Dans le cas de l‘exemple précédent du Payment success update Post Form, le mot (chaine de caractères) qui est utilisé pour
générer le code de contrôle MD5, est le suivant :
http%3A%2F%2Fwww.sitemarchand.com%2Fupdate.asp011233160.75customer%40domain.comClEsEcReTe
Le code de contrôle MD5 dans ce cas est le suivant :
76719357c57e7ffbcd24faceb641c2d0
4.2.4. Exemples de réponses de confirmation de paiement : 1;AB1229;20101021;1 (Confirmation réussie au niveau du site marchand. MTC confirme la transaction instantanément pour
débiter le compte client). 1;0Z19;20101101;2 (Confirmation réussie au niveau du site marchand. La transaction est laissée à l’état Autorisé pour qu’elle
soit traitée manuellement par le marchand via le back-office MTC).
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 15 /18
0;Null;Null;Null (confirmation échouée au niveau du site marchand. La transaction est laissée à l’état Autorisé pour qu’elle soit
traitée manuellement par le marchand via le back-office MTC). 0;Null;Null;1 (confirmation échouée au niveau du site marchand. MTC annule la transaction instantanément pour que le client
ne soit jamais débité). 0;155528851;20100909;1 (confirmation échouée au niveau du site marchand. MTC annule la transaction instantanément pour
que le client ne soit jamais débité). 2;0B12Z9;20111101;1 (confirmation déjà confirmée précédemment au niveau du site marchand avec le même orderNumber.
MTC confirme la transaction instantanément pour débiter le compte client). 3;9412WQ;20100210;1 (confirmation déjà confirmée précédemment au niveau du site marchand avec un orderNumber
différent. MTC annule la transaction instantanément car le compte client est déjà débité).
Remarque : En cas d’échec dans la requête de confirmation de paiement, un code erreur peut être affiché au niveau du reçu de paiement du client (pas dans tous les cas). Dans ce cas, le reçu du marchand, qui est accessible via le back office MTC de suivi des transactions, contient toujours le code d’erreur. La liste des codes erreur est détaillée dans l’Annexe ci-bas.
4.3. PAYMENT SUCCESS SCREEN PAGE : Si le marchand souhaite afficher au client un message personnalisé de confirmation de la commande payée (voucher, ID de commande, date de prise en compte, modalité de livraison, étapes suivantes, …), le reçu de paiement généré par Maroc Telecommerce (suite à l’autorisation accordée par la banque), peut contenir un lien de redirection qui retourne le client au site marchand en présentant toutes les données nécessaires à la reconnaissance de la commande.
4.3.1. Paramétres : Cette section fournit une description des attributs nécessaires pour la création de la demande de retour au site marchand.
• Attributs de la requête de retour Le tableau suivant récapitule les attributs qui déterminent les informations générées suite à l’acceptation du paiement et qui sont utilisées dans la requête de redirection du client vers le site marchand (retour MTC -> Site Marchand).
4.3.2. Exemple de lien de retour : http://www.sitemarchand.com/result.asp?cartId=123&totalAmountTx=2050.75&checksum=2cf0200e671964339236a857a2580f
82
4.3.3. Génération du checksum : Le code de contrôle (checksum) est généré par l’algorithm MD5 et basé sur les données suivantes :
o updateURL, o storeId, o cartId, o totalAmountTx,
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 16 /18
o email, o la clé symétrique générée par le Module Marchand.
Tous ces champs sont concaténés, dans l’ordre ci-dessus, en un seul mot (chaine de caractères) . La chaîne de résultat est encodée UTF-8 avant de générer le code de contrôle MD5. Exemple : Dans le cas de l‘exemple précédent du Payment success update Post Form, le mot (chaine de caractères) qui est utilisé pour
générer le code de contrôle MD5, est le suivant :
http%3A%2F%2Fwww.sitemarchand.com%2Fresult.asp011233160.75customer%40domain.comClEsEcReTe
Le code de contrôle MD5 dans ce cas est le suivant :
8aebfa7e90180537f1de58d6d827bcf1
5. LE PAIEMENT MOBILE
Tous les internautes dotés d’un Smartphone, tablette ou terminale Mobile et désireux d’effectuer des achats, règlement de créances… via leurs mobiles peuvent le faire avec la version mobile des pages de paiement en ligne sécurisées de Maroc Telecommerce qui ont été adaptées à l’affichage de ce canal. Cette solution a été mise en place dans une perspéctive d’innovation et de promotion des applications m-commerce et m-paiement pour à la fois tirer profit du développement du marché du mobile au Maroc et de ses différentes déclinaisons technologiques et applicatives les plus avancées (Iphone, Androïde, Blackburry) et encourager les e-marchands en mettant à leur disposition un canal de paiement suplementaire, adapté aux différents terminaux mobiles. Du point de vu intégration, le marchand n’a pas besoin d’utiliser de nouveaux paramètres car il suffit que la plate-forme MTC détecte que le client utilise un terminal mobile pour qu’elle affiche les pages de paiement avec la charte adéquate à ce canal. Technologiquement parlant, il s’agit toujours de pages web dont le design a été adapté à l’affichage mobile. Cela dit, si du côté marchand, il s’agit d’application mobile qui permet au client de passer commande, lors de la phase de paiement, ladite application doit prendre en compte le fait que le client est redirigé vers des pages web.
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L Page 17 /18
6. ANNEXE
Tableau des codes des erreurs dans le reçu de paiement concernant la requête de confirmation de paiement.
Code Retour Description 908 Code réponse retourné par le marchand non
valide 909 Erreur dans la réponse du marchand
910 Erreur Time Out Marchand (MTC n’a pas reçu à temps la réponse du site marchand)
15024 Erreur Time Out MTC (le traitement de la réponse du site marchand a pris un temps anormal)
15008 Erreur d’indisponibilité du service de confirmation des transactions côté MTC
<Code erreur marchand> Retourné par le site marchand