SOCIETE MONETIQUE TUNISIE «Serveur de Paiement Sécurisé» ***************************************** Spécifications Techniques d Usagers du Commerce Electronique.
FONCTIONNEMENT Le Système de Paiement Sécurisé permet d offrir les autorisations sur les cartes bancaires, dans un environnement sécurisé ; toutes les cartes de paiement locales ou étrangères sont acceptées. Les différents acteurs sont : L internaute C est le consommateur qui désire faire des achats auprès des galeries marchandes. La Galerie Marchande Les galeries marchandes sont les sites marchands opérationnels et qui utilisent les services du. Le Serveur de Paiement Sécurisé La fonction du est d assurer le paiement sécurisé : identifier le commerçant, prendre en charge les informations de la transaction, adresser à la SMT une demande d autorisation et en fournir au consommateur un reçu et au commerçant un acquittement pour livrer la marchandise. Les échanges des instructions de paiement en ligne sont sous le protocole SSL (en mode https). Le Commerçant Le commerçant sera avisé par le de toutes les transactions acceptées par les Banques. Il gère son stock en ligne et envoie la marchandise. La SMT Elle répond par délégation aux demandes d autorisations parvenues du. Page 2 17/04/2007
SCHEMA SIMPLIFIE D UNE TRANSACTION Page 3 17/04/2007
SPECIFICATIONS DE PROCESSUS DE VALIDATION ET DE NOTIFICATION Spécifications de processus de validation et de notification Site Marchand Site Page Commande 1 Affilie, Devise, Montant, Reference Réception Notification DETAIL ACCORD REFUS ERREUR ANNULATION (Entrée : Référence) (sortie Montant) 2 3 5 Vérification 1 Vérification 2 Page de paiement Autorisation 3DS 4 Confirmation de retour 6 1 Demande de paiement 2 Vérification du commerçant (vérifier qu il est bien inscrit dans la base des commerçants du ). 3 Vérification des informations de la transaction (vérification du montant) Si le montant émis et le montant reçu ne sont pas conformes, la demande sera rejetée. 4 5 6 Récupération d une authentification 3DS auprès de visa ou de Mastercard. Envoi de la réponse au site marchand, suite à sa demande d autorisation. Confirmation de la réception de la réponse par le commerçant. (une transaction non confirmée par le site marchand engendre systématiquement une annulation de l autorisation) Page 4 17/04/2007
PROCEDURE D INSTALLATION Pour se connecter à l il suffit de transmettre les données de notification, les données d identification, et les données relatives à la transaction par la méthode Poste ou Get à lune des URLs suivantes : https://196.203.10.190/paiement/ URL de test. - Sid (50) : variable session qui identifie la session en cours, à récupérer lorsque l internaute clique sur l URL de retour dans les deux cas d échec ou de succès. Données de notification : Paramètre POST Description Remarques Affilie(10) Identifiant de l affilié chez la SMT Fourni par la banque du commerçant Devise (TND)(3) Devise du site Valeur TND (Dinars) Montant (12) Référence (24) Montant de l opération dans la devise spécifiée Une référence alphanumérique identifiant d une manière unique la transaction Format 999999999,999 Chaîne de caractère de longueur maximale 24 Voici un extrait de code en HTML qu un affilié pourrait inclure dans sa page de validation de la commande pour passer à la page de paiement : <html> <body> <form name="form" method="post" action="https://www.smt-sps.com.tn/paiement/"> <br><center>page de test</center><br> <p align="center"> Commande </p> <table width="34%" border="0" align="center" cellpadding="0" cellspacing="1"> <tr><td width="48%">réference </td> <td width="52%"> <input name="reference" type="text" value="reference de la commande"> </td></tr> <tr> <td>montant : </td><td> <input name="montant" type="text" value="le montant de la transaction"> </td></tr> <tr><td>devise : </td><td> <input name="devise" type="text" value="tnd"> </td></tr><tr> <td height="52" colspan="2"><br> <input type="hidden" name="sid" value="identificateur de session"> <input type="hidden" name="affilie" value="numéro du terminal"> <input type="submit" name="submit" value="passer au paiement"> </td> </tr> </table> </form> </body> </html> * les valeurs des champs décrites dans l exemple précédant, sont remplient à titre d exemple. Le commerçant doit remplir les valeurs exactes des champs. * le champs affile correspond à l identification du commerçant au prés de sa banque. * le champ «référence» doit contenir une valeur unique qui ne se répète pas. Page 5 17/04/2007
De son coté le marchand doit fournir 3 URLs lors de son inscription par la banque, de préférence SSL, qui seront sollicités par le au moment de la transaction pour effectuer les tâches de vérification, notification et retour au site marchand après l opération de paiement. 1. URL de contrôle : c est une page permettant au de vérifier les éléments de la transaction et notifier le site marchand du résultat de paiement. Le détail de cette page est décrit dans la section suivante. Exp : www.site-commerçant/notification.asp* 2. URL de retour OK : c est une page permettant à l internaute de retourner au site commerçant après un succès du processus de paiement. Exp : www.site-commerçant.com/succes.asp* 3. URL de retour ECHEC : c est une page permettant à l internaute de retourner au site commerçant après un échec du processus de paiement. Elle peut être la même que la page précédente. Exp : www.site-commerçant.com/echec.asp* * l URL du contrôle et les deux URLs de retour peuvent être écrite par n import quel autre langage( ASP, JSP, PHP, Perl ) Page de contrôle : cette une page utilisée par le pour dialoguer avec le site marchand, elle reçoit des requêtes du, effectue un traitement et renvoi une réponse. Les paramètres impliqués dans ce dialogue sont détaillés ci-après : Requête () Réponse (Site Marchand) Remarques Action=DETAIL Param=(rien) Action=ACCORD Param=(numéro autorisation) Action=DETAIL Reponse=(montant) Action=ACCORD Reponse=OK Demande de détails de la transaction : le montant. Notifie le site marchand par le bon déroulement de l opération et lui fournit le numéro d autorisation (Alpha Num 6). Si une réponse différente de OK est reçue, la transaction sera annulée. Action=REFUS Param=(rien) Action=ERREUR Param=(rien) Action=ANNULATION Param=(rien) Action=REFUS Reponse=OK Action=ERREUR Reponse=OK Action=ANNULATION Reponse=OK Notifie le site marchand par un refus de l opération. Notifie le site marchand par une erreur parvenue dans la vérification de l opération. Notifie le site marchand que l opération est annulée. Page 6 17/04/2007
Voici un extrait de code en ASP qu un affilié pourrait inclure dans son URL de contrôle : <% ref = request("reference") action = request("action") param = request("param") select case action case "DETAIL" accéder à la base et récupérer le montant response.write "Reference=" & ref & "&Action=" & action & "&Reponse=" & montant case "ERREUR" accéder à la base et mettre à jour l état de la transaction response.write "Reference=" & ref & "&Action=" & action & "&Reponse=OK" case "ACCORD" accéder à la base, enregistrer le numéro d autorisation (dans param) response.write "Reference=" & ref & "&Action=" & action & "&Reponse=OK" case "REFUS" accéder à la base et mettre à jour l état de la transaction response.write "Reference=" & ref & "&Action=" & action & "&Reponse=OK" case "ANNULATION" accéder à la base et mettre à jour l état de la transaction response.write "Reference=" & ref & "&Action=" & action & "&Reponse=OK" end select %> Voici un extrait de code en php <? $ref = $_GET['Reference']; $act = $_GET['Action']; $par = $_GET['Param']; switch ($act) { case "DETAIL": // accéder à la base et récuperer le montant }?> echo "Reference=.$ref. &Action=.$act. &Reponse=.$montant; case "ERREUR": // accéder à la base et mettre à jour l état de la transaction echo "Reference=".$ref. "Action=".$act. "Reponse=OK"; case "ACCORD": // accéder à la base, enregistrer le numéro d autorisation (dans param) echo "Reference=".$ref. "Action=".$act. "Reponse=OK"; case "REFUS": // accéder à la base et mettre à jour l état de la transaction echo "Reference=".$ref. "Action=".$act. "Reponse=OK"; case "ANNULATION": // accéder à la base et mettre à jour l état de la transaction echo "Reference=".$ref. "Action=".$act. "Reponse=OK"; Ces pages ne doivent pas fournir un contenu HTML, mais uniquement une ligne de texte contenant les différents paramètres et leurs valeurs séparés par le caractère &. NB : Page 7 17/04/2007
Diagramme des flux inter - domaines Domaine commerçant Domaine https :www.smt-sps.com.tn/paiement/index.asp envoyer avec l adresse l ensemble des informations requises (Notification données porteur données client final - données supplémentaires). Traitement et validation des données reçus. Verification de l existence du commerçant dans la base des données. Notification http://www.votresite.com/notification.asp?reference=123&action=detail¶m= Validation Résultat = Reference=123&Action=DETAIL&Reponse=50 50 est le montant de la commande qui doit être retirer des la base de données du site marchand Validation du montant Paiement http://www.votresite.com/notification.asp?notification.asp?reference=123&action=accord¶m=677119 B http://www.votresite.com/notification.asp?reference=123&action=erreur¶m= Ok Notification http://www.votresite.com/notification.asp?reference=123&action=refus¶m= NO-PB Autorisation http://www.votresite.com/notification.asp?reference=123&action=annulation¶m= AN REP = Reference=123&Action=ACCORD&Reponse=OK REP = Reference=123&Action=ANNULATION&Reponse=OK REP = Reference=123&Action=REFUS&Reponse=OK REP = Reference=123&Action=ERREUR&Reponse=OK Validation OK FIN Si non http://www.votresite.com/notification.asp?notification.asp?reference=123&action=annulation¶m= Annulation Page 8 17/04/2007