Introduction
Mercanet est une solution de paiement de commerce électronique multicanale sécurisée conforme à la norme PCI DSS. Elle vous permet d’accepter et de gérer des transactions de paiement en prenant en compte les règles métiers liées à votre activité (paiement à la livraison, paiement différé, paiement récurrent, paiement en plusieurs fois, …).
L’objectif du présent document est d’expliquer la mise en œuvre de la solution Mercanet Message.
À qui s’adresse ce document
Ce document est destiné aux commerçants qui souhaitent envoyer à leurs clients un message indiquant si le paiement a été accepté ou non par mail.
C’est un guide d'implémentation qui s’adresse à votre équipe technique.
Pour avoir une vue d’ensemble de la solution Mercanet, nous vous conseillons de consulter les documents suivants :
- Présentation fonctionnelle ;
- configuration des fonctionnalités.
Qu'est-ce que Mercanet Message ?
Mercanet Message est un système vous permettant d'envoyer à vos clients un message indiquant si leurs paiements ont été acceptés ou refusés par mail ou SMS.
Ce service est disponible avec les connecteurs Paypage, Office (M2M), In-App pour tous les moyens de paiement.
Mercanet Message vous offre la possibilité d'envoyer des messages multilingues et personnalisables.
Fonctionnement de Mercanet Message
1. Lorsque le client procède au paiement, une demande de paiement doit être envoyée aux pages de paiement Mercanet.
Il existe deux notifications de réponses indépendantes :
2. Les réponses manuelles sont envoyées sous format HTTP(S) POST par le serveur de paiement à l’URL de réponse manuelle. Cette URL est précisée dans la requête de paiement et est utilisée lorsque le client clique le bouton « Continuer » de la page de paiement. Elle est la page de destination vers laquelle le client est redirigé à la fin du paiement. Comme il n’y a aucune garantie que le client clique sur ce bouton, vous n’avez aucune garantie de recevoir la réponse manuelle.
2'. Les réponses automatiques sont envoyées indépendamment des réponses manuelles. Elles utilisent également les requêtes HTTP(S) POST envoyées par les serveurs de paiement Mercanet mais cette fois-ci moyennant l’URL de réponse automatique précisée dans la requête de paiement. Cela signifie que vous recevez la réponse dès que le paiement est effectué dans les pages de paiement Mercanet.
3. Les confirmations de paiement par e-mail ou par SMS sont envoyées par notre service Mercanet Message au client (ainsi qu'au marchand en copie carbone) si l'option correspondante est activée.
Démarrer avec Mercanet Message en 3 étapes
Étape 1 : Compléter la requête de paiement
Pour qu’une confirmation de paiement soit transmise, vous devez renseigner dans votre requête de paiement le champ customerContact.email pour un message via e-mail ou le champ customerContact.mobile pour un message par SMS.
Si vous voulez envoyer des messages dans différentes langues en fonction de la langue de votre client, avec les connecteurs Office (M2M) et In-App, vous devez également envoyer le champ customerLanguage pour que Mercanet sache dans quelle langue le message doit être envoyé.
Avec Paypage, si le champ customerLanguage n’est pas renseigné, la langue est calculée en fonction de la langue du navigateur du client.
Étape 2 : Personnaliser vos messages (facultatif)
L’étape de personnalisation des messages est facultative. Si vous ne souhaitez pas personnaliser les messages, les templates Mercanet seront utilisés par défaut (voir les templates dans les parties « Personnaliser les messages de type email » et « Personnaliser les messages de type SMS »). Vous pouvez passer directement à l’étape suivante.
Les messages sont personnalisables au travers de templates contenant le texte de votre message et des éléments contextuels à la transaction (vous trouverez l’intégralité des variables dans le dictionnaire des balises).
Par exemple, si vous voulez envoyer un message en cas de paiement accepté et un autre en cas de paiement refusé, en anglais et en français, vous devrez créer 4 templates :
- un pour le paiement accepté en français ;
- un pour le paiement accepté en anglais ;
- un pour le paiement refusé en français ;
- un pour le paiement refusé en anglais.
Personnaliser les messages de type e-mail
Les templates e-mail sont constitués de balises HTML. Par défaut, les messages e-mail envoyés sont les suivants :
- pour un paiement accepté :
- Pour un paiement refusé :
Les balises suivantes vous permettent de personnaliser votre e-mail :
Balise | Partie personnalisée |
---|---|
<!-- SIPS +com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags. mailSubject --> | Objet du mail |
<!-- SIPS +net.worldline.mm.fwk.wpm.media.DefaultTags.displayProperties --> | Remplace les variables avec la syntaxe « __FIELD_NAME__ » par les valeurs de votre choix |
<img src=”cid:myPicture.jpg” /> | Logo (format : jpg, png, gif, bmp) |
Exemple de code HTML pour un paiement accepté
<!DOCTYPE html>
<!-- SIPS +com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.mailSubject -->
Confirmation de paiement
<!-- SIPS -com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.mailSubject -->
<!-- SIPS +com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.language -->
en
<!-- SIPS -com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.language -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Confirmation de paiement</title>
</head>
<!-- SIPS +net.worldline.mm.fwk.wpm.media.DefaultTags.displayProperties -->
<body style="text-align:center; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
<table cellspacing="0" cellpadding="0" align="center" style="width:100%; border:0px">
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:602px; border:1px solid gainsboro;">
<tr id="mail_header">
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:600px; height:80px;">
<tr>
<td style="text-align:left; width:300px; height:80px;"><img src="cid:worldline.jpg" alt="Worldline"/></td>
<td style="text-align:left; width:200px; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
<div style="font-size:16px; font-weight:bold; color:#046380;margin-right:5px">Confirmation de paiement</div>
<div>Shop __MERCHANT_NAME__<br/>__PAYMENT_DATE__</div>
</td>
</tr>
</table>
</td>
</tr>
<tr id="mail_separator_1"><td><hr style="height:3px; border:0px; background-color:#9D9D9D; color:#9D9D9D;"/></td></tr>
<tr id="mail_body">
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:580px; line-height:160%;">
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:580px; margin-left:30px;">
<tr>
<td style="text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
Bonjour,
</td>
</tr>
<tr><td style="height:10px;"/></tr>
<tr>
<td style="text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
Votre transaction a été acceptée et enregistrée.<br/>
Vous trouverez ci-dessous des informations supplémentaires concernant votre achat.
</td>
</tr>
<tr><td style="height:10px;"/></tr>
<tr>
<td style="text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
Cordialement, l'équipe __MERCHANT_NAME__
</td>
</tr>
</table>
</td>
</tr>
<tr><td style="height:20px;"/></tr>
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:560px; border:1px solid gainsboro; border-color:#93BCDA;">
<tr>
<td style="height:60px; text-align:center; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:14px; font-weight:bold; color:#046380;">
PAIEMENT<br/>PAR INTERNET SÉCURISÉ
</td>
</tr>
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:500px;">
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Nom du marchand :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__MERCHANT_NAME__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Identifiant du marchand :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__MERCHANT_ID__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Le :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__PAYMENT_DATE__ à __PAYMENT_TIME__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Numéro de transaction :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__TRANSACTION_ID__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Numéro d'autorisation :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__AUTHORISATION_ID__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Montant :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__AMOUNT__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Moyen de paiement utilisé :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__CARD_TYPE__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Numéro de carte :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__CARD_NUMBER__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Statut de la transaction :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">Approuvé</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:40px; text-align:center; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">
VEUILLEZ CONSERVER VOTRE REÇU POUR RÉFÉRENCE
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr><td style="height:10px;"/></tr>
<tr id="mail_separator_2"><td><hr style="height:3px; border:0px; background-color:#9D9D9D; color:#9D9D9D;"/></td></tr>
<tr id="mail_footer">
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:580px;">
<tr>
<td style="height:30px; text-align:right; vertical-align:top; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:11px; color:#9d9d9d;">
© Worldline
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<!-- SIPS -net.worldline.mm.fwk.wpm.media.DefaultTags.displayProperties -->
</html>
Exemple de code HTML pour un paiement refusé
<!DOCTYPE html>
<!-- SIPS +com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.mailSubject -->
Paiement refusé
<!-- SIPS -com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.mailSubject -->
<!-- SIPS +com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.language -->
en
<!-- SIPS -com.worldline.sips.sipsmsg.push.sendMessage.tools.tags.SipsMsgTags.language -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Paiement refusé</title>
</head>
<!-- SIPS +net.worldline.mm.fwk.wpm.media.DefaultTags.displayProperties -->
<body style="text-align:center; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
<table cellspacing="0" cellpadding="0" align="center" style="width:100%; border:0px">
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:602px; border:1px solid gainsboro;">
<tr id="mail_header">
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:600px; height:80px;">
<tr>
<td style="text-align:left; width:300px; height:80px;"><img src="cid:worldline.jpg" alt="Worldline"/></td>
<td style="text-align:left; width:200px; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
<div style="font-size:16px; font-weight:bold; color:#046380;margin-right:5px">Paiement refusé</div>
<div>Shop __MERCHANT_NAME__<br/>__PAYMENT_DATE__</div>
</td>
</tr>
</table>
</td>
</tr>
<tr id="mail_separator_1"><td><hr style="height:3px; border:0px; background-color:#9D9D9D; color:#9D9D9D;"/></td></tr>
<tr id="mail_body">
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:580px; line-height:160%;">
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:580px; margin-left:30px;">
<tr>
<td style="text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
Bonjour,
</td>
</tr>
<tr><td style="height:10px;"/></tr>
<tr>
<td style="text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
Votre transaction a échoué.<br/>
Vous trouverez ci-dessous les informations relatives à votre demande.
</td>
</tr>
<tr><td style="height:10px;"/></tr>
<tr>
<td style="text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">
Cordialement, l'équipe __MERCHANT_NAME__
</td>
</tr>
</table>
</td>
</tr>
<tr><td style="height:20px;"/></tr>
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:560px; border:1px solid gainsboro; border-color:#93BCDA;">
<tr>
<td style="height:60px; text-align:center; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:14px; font-weight:bold; color:#046380;">
PAIEMENT<br/>PAR INTERNET SÉCURISÉ
</td>
</tr>
<tr>
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:500px;">
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Nom du marchand :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__MERCHANT_NAME__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Identifiant du marchand :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__MERCHANT_ID__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Le :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__PAYMENT_DATE__ à __PAYMENT_TIME__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Numéro de transaction :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__TRANSACTION_ID__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Montant :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__AMOUNT__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Moyen de paiement utilisé :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__CARD_TYPE__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Numéro de carte :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">__CARD_NUMBER__</td>
</tr>
<tr><td colspan="3" style="height:5px;"/></tr>
<tr>
<td style="width:248px; text-align:right; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px;">Statut de la transaction :</td>
<td style="width:4px;"/>
<td style="width:248px; text-align:left; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">Refusé</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:40px; text-align:center; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:12px; font-weight:bold;">
VEUILLEZ CONSERVER VOTRE REÇU POUR RÉFÉRENCE
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr><td style="height:10px;"/></tr>
<tr id="mail_separator_2"><td><hr style="height:3px; border:0px; background-color:#9D9D9D; color:#9D9D9D;"/></td></tr>
<tr id="mail_footer">
<td align="center">
<table cellspacing="0" cellpadding="0" align="center" style="width:580px;">
<tr>
<td style="height:30px; text-align:right; vertical-align:top; font-family:'Verdana Regular','Verdana','sans-serif'; font-size:11px; color:#9d9d9d;">
© Worldline
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<!-- SIPS -net.worldline.mm.fwk.wpm.media.DefaultTags.displayProperties -->
</html>
Étape 3 : Activer Mercanet Message en production
Pour utiliser Mercanet Message, vous devez demander l’activation des options qui vous intéressent et fournir à Mercanet les informations suivantes :
Option | Action |
---|---|
Paramètres généraux | |
Envoyer une confirmation de paiement en cas de paiement accepté | Activer |
Envoyer une confirmation de paiement en cas de paiement refusé | Activer |
Paramètres pour les messages par e-mail | |
Envoyer une confirmation de paiement par e-mail | Activer |
Indiquer l'adresse e-mail de l'émetteur | Remplir |
Indiquer l'e-mail en copie carbone "cc" | Remplir |
Indiquer le nom de fichier modèle utilisé pour les e-mails | Remplir |
Indiquer l'objet de l'e-mail en cas de paiement accepté | Remplir |
Indiquer l'objet de l'e-mail en cas de paiement refusé | Remplir |
Envoyez l'ensemble de ces informations ainsi que votre(vos) template(s) personnalisé(s) à l'assistance technique Mercanet en indiquant votre merchantId.
Les fichiers de templates doivent être nommés comme suit : nomdutemplatelangue.status.extension
Par exemple, pour un template e-mail français pour un paiement accepté, le fichier sera nommé comme suit : mytemplatefr.accepted.html
Dictionnaire des balises
Balise | Format | Description | Champ correspondant dans les connecteurs |
---|---|---|---|
__AMOUNT__ | Alphanumérique | Montant du paiement formaté avec la devise | amount |
__AUTHORISATION_ID__ | Alphanumérique | Identifiant d'autorisation | authorisationId |
__PAYMENT_TIME__ | dd/mm/yy | date de la transaction | Basé sur merchantTransactionDateTime |
__PAYMENT_DATE__ | hh:mm | heure de la transaction | Basé sur merchantTransactionDateTime |
__CARD_NUMBER__ | Alphanumérique | Numéro de carte masqué (exemple : 4955 #### #### 1234) | maskedPan |
__CARD_TYPE__ | Alphanumérique | Nom du mode de paiement utilisé par l'acheteur | cardScheme |
__MERCHANT_ID__ | Numérique | Identifiant du marchand | merchantId |
__MERCHANT_NAME__ | Alphanumérique | Nom du marchand | merchantName |
__TRANSACTION_ID__ | Alphanumérique | Identifiant de transaction | transactionId ou transactionReference |
__HOLDER_FIRSTNAME__ | Alphanumérique | Prénom de l'acheteur | holderContact.firstname |
__HOLDER_LASTNAME__ | Alphanumérique | Nom de l'acheteur | holderContact.lastname |
__TRADE_NAME__ | Alphanumérique | Nom de l'enseigne | Basé sur la configuration du marchand |
__INVOICE_REFERENCE__ | Numérique | Référence de la facture | invoiceReference |