GuidesRéférence APIChangelog
Log In
Guides

Achat avec un jeton de paiement

Vue d'ensemble

La transformation en jetons hébergés permet à votre clientèle d'entrer des numéros de carte de crédit directement sur votre site Web dans un cadre sécuritaire contrôlé par Moneris.

Accepter les paiements de la clientèle en utilisant la transformation en jetons hébergés de Moneris et l'API entre les serveurs de Moneris vous permet d'éviter les fardeaux liés à la conformité aux normes de l'industrie des cartes de paiement (PCI).

La transformation en jetons hébergés permet à votre clientèle d'entrer les numéros de carte de crédit directement sur votre site Web dans un cadre sécuritaire contrôlé par Moneris. Le reste du site Web peut alors garder l'apparence que vous voulez. Après l'envoi par le client, le cadre de transformation en jetons obtient les données de la carte de crédit et renvoie un jeton temporaire à votre serveur qui vous donne l'occasion de traiter le paiement par l'entremise de notre API.


1. Configuration de la transformation en jetons hébergés

Vous devrez suivre ces étapes.

  1. Ouvrez une session dans le centre de ressources pour commerçants (CRC).
  2. Cliquez sur Admin dans la barre de navigation.
  3. Cliquez sur l'option Tokenization hébergés dans le sous-menu.
  4. Entrez la page du domaine source. Il s'agit de l'adresse de la page externe principale qui envoie la transaction à Moneris.
  5. Cliquez sur le bouton Créer un profil.
  6. Notez l'ID de profil généré, car il devra être inclus dans les balises iFrame de votre code HTML.
  7. Suivez les étapes de développement requises susmentionnées.
  8. Testez votre solution dans l'environnement de tests.
  9. Activez votre magasin de production.
  10. Créez et configurez votre magasin de produit de transformation en jetons hébergés dans l'environnement de production du centre de ressources pour commerçants.
  11. Faites les changements nécessaires pour que votre solution passe de l'environnement de tests à l'environnement de production.

📘

Centre de ressources pour commerçants (CRC) de Moneris

Accédez au CRC Identifiants de connexion CRC


2. Obtention d'un jeton temporaire

Pour obtenir un jeton temporaire, vous devrez envoyer à Moneris une requête contenue dans une balise iFrame.

Un exemple de code est présenté plus bas.

Prenez note que l'ID de profil dans le lien HTML ci-dessous devra être remplacé par votre propre ID de profil, que vous pouvez configurer dans le CRC, comme décrit ici.


📘

Remarque

Le src et l'URL postMessage devront être modifiés afin d'utiliser l'URL de l'assurance de la qualité (QA) ou de production appropriée dans le tableau ci-dessous.


Variables obligatoires

Nom de variableDéfinition
IdRequired (Obligatoire) : fourni par l'outil de configuration du profil de jetons hébergés dans le CRC.
css_bodyRequired (Obligatoire) - CSS appliqué au corps. Par défaut, la marge et le remplissage sont définis sur zéro
css_textboxRequired (Obligatoire) - CSS appliqué à toutes les zones de texte en général.

Variables facultatives

Nom de variableDéfinition
pmmsgRecommended (Recommandé) - Force le formulaire à accepter uniquement le message « jeton hébergé ».
css_textbox_panOptional (Facultatif) - CSS appliqué spécifiquement à la zone de texte numéro de compte principal (PAN - Primary Account Number).
enable_expOptional (Facultatif) - Doit être défini sur 1 pour que la zone de texte de la date d'expiration soit affichée (Format: MMYY)
css_textbox_expOptional (Facultatif) - CSS appliqué spécifiquement à la zone de texte de la date d'expiration.
enable_cvdOptional (Facultatif) - Doit être défini sur 1 pour que la zone de texte CVD soit affichée
css_textbox_cvdOptional (Facultatif) - CSS appliqué spécifiquement à la zone de texte CVD.
display_labelsOptional (Facultatif) – 0 pour aucune étiquette (label), 1 pour les étiquettes (label) traditionnelles, 2 pour les étiquettes (label) d'espace réservé.
css_input_labelOptional (Facultatif) – CSS pour les étiquettes d'entrée (input labels)
css_label_panOptional (Facultatif) – CSS pour l'étiquette (label) du numéro de carte
css_label_expOptional (Facultatif) – CSS pour l'étiquette de date d'expiration (label)
css_label_cvdOptional (Facultatif) – CSS pour l'étiquette (label) CVD
pan_labelOptional (Facultatif) – texte pour l'étiquette (label) du numéro de carte (la valeur par défaut est « card number »)
exp_labelOptional (Facultatif) – texte pour l'étiquette (label) de date d'expiration (la valeur par défaut est « Expiry Date")
cvd_labelOptional (Facultatif) – texte pour l'étiquette (label) CVD (la valeur par défaut est « CVD »))
enable_exp_formattingOptional (Facultatif) - Formatage appliqué au champ de date d'expiration pour afficher une barre oblique entre le mois et l'année (Format : MM/YY). Doit être défini sur 1 pour activer le formatage.
enable_cc_formattingOptional (Facultatif) – Formatage appliqué au numéro de carte de crédit en fonction du type de carte (Format : Visa - 4242 4242 4242 4242, MC - 5454 5454 5454 5454, Amex - 333 666666 55555)

Champs de réponse

ChampDéfinition
responseCodeIndique si le chargement de la page ou la soumission de la carte a réussi ou pourquoi il a échoué. Veuillez noter que si la zone de texte d'expiration ou la zone de texte CVD sont activées, la valeur du code de réponse renvoyée sera sous la forme d'une liste (par exemple, ["944", "943"]), car il peut y avoir plusieurs échecs. Par exemple, dans le cas où le numéro de carte saisi et la date d'expiration ne sont pas valides. Si seule la zone de texte du numéro de carte est affichée, le code de réponse sera renvoyé sous la forme d'une chaîne.
errorMessageDescription de l'échec (Il s'agit d'une description très générique – Voir « Définitions des codes de réponse » pour les résultats de codes d'erreur spécifiques).
binPlage BIN (BIN range) du numéro de carte soumis. Permet au commerçant de déterminer le type de carte et d'effectuer tout traitement spécifique à la carte.
dataKeyNuméro de carte transformé en jeton hébergé . C'est ce qui est utilisé avec la transaction API chambre forte (Vault)

Définitions des codes de réponse

code de réponseDéfinition
001Création réussie d'un jeton temporaire
940Identifiant de profil invalide (sur demande de jetons hébergés)
941Erreur lors de la génération du jeton
942ID de profil ou URL source non valide
943Les données de la carte ne sont pas valides (pas numériques, échec du mod10, nous supprimerons les espaces)
944Date d'expiration invalide (mmaa, doit être le mois en cours ou dans le futur)
945Données CVD invalides (pas 3-4 chiffres)

Exemple de code*

*(seulement disponible en anglais)

<html>
<head>
  <title> Outer Frame - Merchant Page</title>
  <script>
    function doMonerisSubmit() {
      var monFrameRef = document.getElementById('monerisFrame').contentWindow;
      monFrameRef.postMessage('tokenize', 'https://mpg1t.moneris.io/HPPtoken/index.php');
      //change link according to table above
      return false;
     }

     var respMsg = function (e) {
       var respData = eval("(" + e.data + ")");
       document.getElementById("monerisResponse").innerHTML = e.origin + " SENT " + " - " +
         respData.responseCode + "-" + respData.dataKey + "-" + respData.errorMessage;
       document.getElementById("monerisFrame").style.display = 'none';
     }

     window.onload = function () {
       if (window.addEventListener) {
         window.addEventListener("message", respMsg, false);
       } else {
         if (window.attachEvent) {
           window.attachEvent("onmessage", respMsg);
         }
       }
     }
  </script>
</head>
<body>
  <div>Hosted Tokenization Demo</div>
  <div id=monerisResponse></div>
  <iframe 
    id="monerisFrame" 
    src="https://mpg1t.moneris.io/HPPtoken/index.php?id=ht1TTK3NZLJ82PE&pmmsg=true&css_body=background:white;margin:0 0 0 6px;padding:0;color:darkgray;&css_textbox=font-size:0.975rem;float:left;border-width:0;margin:0 0 0 4px;padding:0;height:30px;&css_textbox_pan=width:180px;&enable_exp=1&css_textbox_exp=width:70px;&enable_cvd=1&css_textbox_cvd=width:50px;&display_labels=2&exp_label=MMYY" 
    frameborder="0" 
    style="width: calc(100% - 10px); height: 60px;">
  </iframe>
  <input type=button onClick=doMonerisSubmit() value="submit iframe">
</body>
</html>

3. Obtention d'une réponse d'un jeton temporaire

var respMsg = function(e) {
  var respData = eval("(" + e.data + ")");
  document.getElementById("monerisResponse").innerHTML = e.origin + " SENT " + " - " +     respData.responseCode + "-" + respData.dataKey + "-" + respData.errorMessage;
  document.getElementById("monerisFrame").style.display = 'none';
  // your token will be in the field: respData.dataKey
  // from this point in the Javascript you can have more code that posts the token to another page that will actually process the payment.
}

📘

Remarque

Ceci décrit la façon d'obtenir la réponse de la page de transformation en jetons hébergés, qui contient le jeton temporaire.


4. Traitement du paiement

Pour charger la carte au moyen du jeton temporaire, vous devrez utiliser notre API pour la requête de création du paiement en vous servant du jeton temporaire comme mode de paiement.

Dans la requête de paiement (la requête POST), mettez l'objet "paymentMethodData" avec les paramètres suivants :

  • "paymentMethodType" avec une valeur de "TEMPORARY_TOKEN";
  • "temporaryToken" avec une valeur qui correspond au jeton fourni par le service de transformation en jetons hébergés.

📘

Pour des renseignements sur l’API, cliquez sur les boutons suivants :

Naviguer vers l'achat Navigeur vers la préautorisation et la conclusion


Renseignements additionnels

📘

Définitions de l’API

Consultez les endpoints (points de terminaison), les formats des demandes et des réponses, ainsi que les modes d’authentification de ce scénario.

Définitions de l'API