Module Marchand Maroc Telecommerce Guide d`intégration du

Transcription

Module Marchand Maroc Telecommerce Guide d`intégration du
Module Marchand
Maroc Telecommerce
Guide d’intégration
du service de paiement en ligne
Version 3.3 L
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 1 /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 2 /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 3 /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 4 /18
3.1.2.Diagramme de flux :
Client
1. Connexion au site marchand
D
E
M
A
N
D
E
Site Marchand
(Front Office)
Maroc Telecommerce
(plate-forme)
Centre Monétique
Interbancaire
2. Choix de l’article à commander
3. Demande de paiement en ligne
4. Affichage de la page de paiement
5. Saisie et contrôle des
Informations de paiement
D
E
P
A
I
E
M
E
N
T
10. (option) Retour vers le site marchand
et Affichage du résultat de paiement
sur l’écran du client
6. Demande d’autorisation
9. (option) Mise à jour du site marchand
(cas d’un paiement accepté)
9’. Réponse à la requête de confirmation
7. Traitement de la transaction
8. Affichage du résultat du traitement
de la banque
11. (option) Notification par email
du client et du marchand
9’’. (option) Confirmation ou annulation
de la transaction
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
12. Confirmation manuelle (par le marchand
à travers le Back-office Maroc
Telecommerce) ou automatique des
demandes d’autorisation préalablement
accordées
13. Traitement des
confirmations et notification du
client par mail
14’. Débit du compte client
14. Compensation des
transactions
14’. Crédit du compte marchand
15. Crédit/rembourssement (par le marchand
à travers le Back-office Maroc
Teelecommerce) des demandes
d’autorisation préalablement confirmées
16. Traitement des crédits et
notification du client par mail
17’. Crédit du compte client
17. Compensation des
transactions
17’. Débit du compte marchand
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L
Page 5 /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
Numérique
Requis
Alphanumérique
Option
Telecommerce
langue
La langue utilisée lors de l’affichage du bon de
commande pour l’offre en question.
(2)
Par défaut EN
EN: Anglais
Ou
FR: Français
Ou
AR: Arabe
offerURL
Le chemin qui permet à l’acheteur de revenir au site
Alphanumérique
Requis
Alphanumérique
Option
marchand.
updateURL
L’URL utilisée dans le reçu d’un paiement accepté pour
que le client puisse retourner dans le site marchand et
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L
Page 6 /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é.
Alphanumérique
Option
name
La confirmation est exécutée en background (serverto-server) via http par un submit d’un form de
confirmation (voir détail ci-dessous).
Nom (et prénom) de l’acheteur
Alphanumérique
Option
address
Adresse de l'acheteur
Alphanumérique
Si ces informations ne
sont pas renseignées
sur le site web du
city
Ville de l'acheteur
Alphanumérique
state
Etat/Province de l’acheteur
Alphanumérique
marchand, MTC doit
être informée pour
activer leur saisie sur
le bon de commande
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
de paiement.
Si country = CA
(Canada) ou US
(Etats-Unis), le
paramètre state est à
renseigner selon la
email
Adresse électronique de l'acheteur
Alphanumérique
Format email
liste des
états/provinces décrite
dans l’annexe.
emailWebmaster
Adresse email du webmaster, utilisée pour notification
Alphanumérique
en cas de problème lors de la requette de confirmation
Format email
option
(server to server)
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 7 /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
Alphanumérique
Requis
Numérique
Requis
site marchand
totalAmountTx
Montant de la transaction
Quantité d'argent
sans symbole
monétaire.
centimes séparés
par un point)
Exemple 29.95
totalAmountCur
En option, montant équivalent de
Numérique
totalAmountTx en devise de la commande
Quantité d'argent
sans symbole
monétaire.
centimes séparés
par un point)
en centimes (100.25)
Option
Exemple 29.95
symbolCur
Symbole monétique de la devise à afficher au
Alphanumérique
Requis si TotalamountCur
niveau des pages de paiement
Exemple : USD,
est renseigné
EUR.
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 plateforme)
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 8 /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 9 /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
Alphanumérique
Requis
marchand
name
Nom (et prénom) de l’acheteur
Alphanumérique
Requis
email
Adresse électronique de l'acheteur
Alphanumérique
Requis
totalAmountTx
Montant de la transaction
Format email
Numérique
Requis
Quantité d'argent
sans symbole
monétaire.
centimes séparés
par un point)
Exemple 29.95
orderNumber
N° de la transaction dans le back office MTC
Numérique(6)
Requis
Unique
pmtSeqId
Identifiant de la transaction chez le centre
Numérique
Requis
Alphanumérique(6)
Requis
monétique
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
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L
Page 10 /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
Numérique(1)
3DSecure
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
Varchar (4)
Requis
Requis
Valeurs possibles :
VI : Visa
MA : MasterCard
MT : Maestro
Cmi : cmi
DI : Discover
DC: Diners Club
MC: MobiCash
utilisée
paymentBrandName
Type de la carte de paiement utilisée
Varchar (2)
checksum
Code de contrôle généré par l’algorithm MD5
Alphanumérique
BI: Binga
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L
Requis
Page 11 /18
apiChecksum
Code de hachage pour l’utilisation des API
Alphanumérique
Optionel
d’automatisation des flux
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
Numérique(1)
Requis
confirmation
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 12 /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
Alphanumérique
de la confirmation de la
Requis
Dans le cas d’échec de confirmation (Response
Code = 0), ce champ prend la valeur « Null »
commande au niveau du site
marchand
confirmDate
Date de confirmation de la
Date
commande au niveau du site
aaaammjj
Requis
marchand
confirmationMode
La méthode de confirmation des
Numérique(1)
Requis
transactions au niveau de la
Valeurs possibles :
plate-forme de paiement. Ladite
1 : automatique
confirmation déclenche le débit
(la confirmation est assurée par MTC suite à la
du client.
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 13 /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 14 /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 15 /18
o
o
email,
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 16 /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
Erreur dans la réponse du marchand
909
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
Module Marchand Maroc Telecommerce / Guide d’intégration service du paiement en ligne / V3.3L
Page 17 /18