18
Module Marchand Maroc Telecommerce Guide d’intégration du service de paiement en ligne Version 3.3 L

Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

Embed Size (px)

Citation preview

Page 1: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

Module Marchand Maroc Telecommerce

Guide d’intégration

du service de paiement en ligne

Version 3.3 L

Page 2: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 3: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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.

Page 4: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 5: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 6: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 7: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 8: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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.

Page 9: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 10: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 11: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 12: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 13: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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.

Page 14: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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.

Page 15: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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

Page 16: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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,

Page 17: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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.

Page 18: Module Marchand Maroc Telecommerce Guide d …€¦ ·  · 2015-02-10informations sont prédéfinies dans le Back-office et non modifiables. ... (Front Office) ... Cette section

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