Intégration de Moneris Checkout avec JavaScript : gestion des problèmes de réponse JSON

Intégration de Moneris Checkout avec JavaScript : gestion des problèmes de réponse JSON
Intégration de Moneris Checkout avec JavaScript : gestion des problèmes de réponse JSON

Intégration transparente de Moneris Checkout : dépannage de la réponse JSON

Moneris Checkout est un système de passerelle de paiement couramment utilisé qui aide les entreprises à accélérer les transactions en ligne. Cependant, son intégration dans votre site Web peut s'avérer difficile, en particulier lorsque les données requises, telles qu'un numéro de ticket, ne sont pas renvoyées par un appel JSON. De telles erreurs peuvent entraver le flux régulier des transactions, le débogage est donc une compétence nécessaire pour les ingénieurs.

Comprendre comment configurer correctement la caisse est essentiel lors du remplacement d'une page de paiement hébergée (HPP) obsolète par Moneris et de l'utilisation de leur interface JavaScript. Pour offrir à vos clients une expérience transparente, assurez-vous que la page publie les détails de la transaction et récupère des réponses précises.

De nombreux développeurs ont du mal à suivre la documentation d'intégration de Moneris. La complexité vient de la gestion des rappels, du téléchargement des données de transaction et de la lecture des résultats en temps réel, qui sont tous nécessaires pour une intégration réussie. Lorsque vous commencez votre parcours d’intégration, disposer d’une méthodologie claire et bien documentée peut être bénéfique.

Dans cet article, nous verrons comment résoudre le problème des numéros de billet manquants dans votre intégration Moneris. Vous serez mieux préparé à résoudre ce problème si vous examinez les extraits de code et les techniques de dépannage nécessaires.

Commande Exemple d'utilisation
monerisCheckout() Il s'agit de la fonction constructeur du SDK JavaScript de Moneris. Il lance la procédure de paiement. Ce script génère une nouvelle instance du widget de paiement Moneris, qui vous permet d'intégrer la passerelle de paiement sur votre site Web.
setMode() Spécifie l'environnement de la transaction Moneris. Dans cet exemple, « qa » fait référence à un environnement de test dans lequel vous pouvez simuler en toute sécurité des transactions sans traiter les paiements réels. Ceci est nécessaire pour tester l’intégration sans réellement charger les cartes.
setCheckoutDiv() Cette commande associe la caisse Moneris à un conteneur HTML spécifié (div). En fournissant l'ID « monerisCheckout », le widget de paiement s'affiche au sein de ce div, vous permettant de sélectionner l'endroit où le formulaire apparaît sur la page.
setCallback() Pendant le processus de paiement, attribuez une fonction à un événement spécifique. Dans ce scénario, la fonction personnalisée « myPageLoad » gère l'événement « page_loaded », permettant aux développeurs d'exécuter du code lorsque la page de paiement est complètement chargée.
startCheckout() Commencez le processus de paiement Moneris. Lorsqu'elle est appelée, cette fonction démarre le flux de paiement en rendant le formulaire de paiement et en le connectant au système backend pour traiter les transactions.
app.post() Il s'agit d'un gestionnaire de route Express.js qui gère les requêtes POST. Ce script reçoit les reçus de paiement du backend de Moneris une fois la transaction terminée, ce qui permet un traitement supplémentaire tel que la conservation des données de paiement ou l'émission de confirmations.
bodyParser.json() Une fonction middleware dans Express pour analyser les requêtes JSON entrantes. C'est particulièrement critique dans ce cas car Moneris transmet les données de transaction au format JSON. Cette commande garantit que le corps de la requête est correctement traité pour le traitement côté serveur.
chai.request() Cette commande fait partie du package de test HTTP Chai qui envoie des requêtes HTTP dans les scénarios de test. Il réplique les requêtes POST vers l'API de paiement Moneris pendant le test unitaire, permettant au développeur de voir comment le backend gère les transactions réussies et échouées.
expect() Une fonction d'assertion de base dans la bibliothèque Chai. Dans le cadre des tests unitaires, il détermine si des conditions particulières sont remplies. Il est utilisé pour garantir que l'état de la réponse et le message renvoyé par le point de terminaison de paiement correspondent aux résultats escomptés.

Comprendre l'intégration de Moneris Checkout et le flux de travail des scripts

Le script frontal inclus intègre le système Moneris Checkout dans un site Web via JavaScript. La fonctionnalité principale commence par l'établissement d'une instance de paiement Moneris via le monerisCheckout() constructeur. Cette instance sert d'interface entre votre site Web et le service de traitement des paiements de Moneris. La commande setMode() spécifie si l'environnement doit être défini sur « qa » pour les tests ou sur « live » pour la production, ce qui est critique pendant les étapes de développement. En sélectionnant « qa », les développeurs peuvent répliquer les transactions sans encourir de coûts réels, créant ainsi un terrain d'essai sécurisé.

Une fois l'instance de paiement créée, le setCheckoutDiv() La commande connecte le formulaire de paiement Moneris à un div HTML spécifique. C'est ici que le formulaire de paiement apparaîtra sur la page. Cela garantit que la représentation visuelle du formulaire de paiement s'affiche dans une région spécifique du site Web, rendant la procédure transparente et intégrée à votre conception existante. Dans notre exemple, le formulaire Moneris est inséré dans le div avec l'ID « monerisCheckout ». Ce div sert d'espace réservé pour le contenu chargé dynamiquement de Moneris, qui comprend des champs et des boutons de saisie des paiements des clients.

Le script s'exécute ensuite setCallback(), permettant au développeur de configurer la gestion d'événements spécifiques pour le processus de paiement. Plus précisément, le rappel pour « page_loaded » est attaché à la fonction monChargePage, garantissant que lorsque la page est entièrement chargée, des actions personnalisées supplémentaires (telles que la journalisation des données) peuvent se produire. Cette fonction permet une flexibilité dans la façon dont l'expérience utilisateur est gérée. Enregistrer le contenu du ex objet à l'intérieur monChargePage() aide les développeurs à déboguer en fournissant des commentaires en temps réel sur les données renvoyées par Moneris.

Enfin, le script back-end gère la réception des données de paiement côté serveur. En utilisant Express.js dans Node.js, la route app.post() est défini pour recevoir les demandes POST de Moneris une fois la transaction terminée. Ce point de terminaison traite le JSON renvoyé, en vérifiant le code_réponse pour voir si le paiement a réussi. En cas de succès, les données de transaction (telles que le numéro du ticket) peuvent être enregistrées ou saisies dans une base de données. En renvoyant des codes d'état et des messages appropriés, le backend permet une connexion fluide avec le frontend, fournissant des informations critiques à l'utilisateur, par exemple si la transaction a réussi ou échoué.

Intégration de Moneris Checkout avec JavaScript : solutions frontales et back-end

Solution frontale utilisant JavaScript pour intégrer le formulaire de paiement Moneris et gérer les réponses aux transactions.

// Front-end integration script
// This script embeds the Moneris checkout and processes the transaction result

<script src="https://gatewayt.moneris.com/chktv2/js/chkt_v2.00.js"></script>
<div id="monerisCheckout"></div>
<script>
var myCheckout = new monerisCheckout();
myCheckout.setMode("qa"); // Set environment to QA
myCheckout.setCheckoutDiv("monerisCheckout"); // Define div for checkout
// Add callback for when the page is fully loaded
myCheckout.setCallback("page_loaded", myPageLoad);
// Start the checkout process
myCheckout.startCheckout("");

// Function that gets triggered when the page is loaded
function myPageLoad(ex) {
    console.log("Checkout page loaded", ex);
}

// Function to handle the receipt after the payment
function myPaymentReceipt(ex) {
    if(ex.response_code === '00') {
        alert("Transaction Successful: " + ex.ticket);
    } else {
        alert("Transaction Failed: " + ex.message);
    }
}
</script>

Solution back-end avec Node.js et Express : gestion des données de paiement

Solution back-end utilisant Node.js et Express pour gérer les données post-paiement de Moneris

// Node.js backend script for processing payment receipt data
// This backend handles the response from Moneris and processes it for database storage

const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// Endpoint to receive the payment result
app.post('/payment-receipt', (req, res) => {
    const paymentData = req.body;

    if (paymentData.response_code === '00') {
        console.log('Payment successful:', paymentData.ticket);
        // Insert into database or further process the payment
        res.status(200).send('Payment success');
    } else {
        console.error('Payment failed:', paymentData.message);
        res.status(400).send('Payment failed');
    }
});

app.listen(3000, () => {
    console.log('Server running on port 3000');
});

Test unitaire de la gestion des paiements backend avec Mocha et Chai

Tests unitaires backend avec Mocha et Chai pour valider la fonctionnalité de gestion de l'argent

// Unit test for the Node.js backend using Mocha and Chai
// This test checks if the backend properly handles successful and failed transactions

const chai = require('chai');
const chaiHttp = require('chai-http');
const app = require('../app'); 
const expect = chai.expect;
chai.use(chaiHttp);

describe('POST /payment-receipt', () => {
    it('should return 200 for successful payment', (done) => {
        chai.request(app)
            .post('/payment-receipt')
            .send({ response_code: '00', ticket: '123456' })
            .end((err, res) => {
                expect(res).to.have.status(200);
                expect(res.text).to.equal('Payment success');
                done();
            });
    });

    it('should return 400 for failed payment', (done) => {
        chai.request(app)
            .post('/payment-receipt')
            .send({ response_code: '01', message: 'Transaction Declined' })
            .end((err, res) => {
                expect(res).to.have.status(400);
                expect(res.text).to.equal('Payment failed');
                done();
            });
    });
});

Améliorer l'intégration de Moneris Checkout avec des options de personnalisation

Lorsqu'ils travaillent avec l'intégration de Moneris Checkout, les développeurs recherchent fréquemment des méthodes permettant de personnaliser le processus de paiement afin d'améliorer l'expérience utilisateur. Le formulaire de paiement Composants de l'interface utilisateur peut être personnalisé, ce qui est une fonction moins connue. Moneris permet aux entreprises de personnaliser l'apparence et la mise en page de la page de paiement, leur permettant ainsi de l'aligner sur leur image de marque. Cela implique de modifier la disposition des boutons, les champs de formulaire et même la formulation pour faciliter le processus pour les utilisateurs finaux et augmenter les conversions.

Un autre facteur à examiner est le recours à des types de transactions autres que les paiements de base. Moneris dispose de fonctionnalités telles que la préautorisation, dans laquelle le montant de la transaction est stocké sur la carte mais n'est pas facturé immédiatement. Cette fonctionnalité est particulièrement importante dans des domaines tels que les hôtels et la location de voitures, où les tarifs finaux peuvent différer. L'intégration peut gérer de nombreux types de transactions en utilisant le même API, ce qui le rend polyvalent pour divers cas d'utilisation.

La sécurité est une priorité absolue dans toute intégration de paiement, et Moneris Checkout intègre des technologies telles que la tokenisation et la prévention de la fraude. La tokenisation remplace les informations sensibles de la carte par un jeton, de sorte que les données des consommateurs ne soient jamais exposées sur vos systèmes. La mise en œuvre de mesures de sécurité, telles que des technologies de détection des fraudes et la conformité PCI DSS, peut réduire considérablement les risques liés aux transactions en ligne.

Questions courantes sur l'intégration de Moneris Checkout

  1. Qu’est-ce que Moneris Checkout?
  2. Moneris Checkout est une solution de passerelle de paiement qui permet aux entreprises d'accepter des paiements en toute sécurité via leur site Web. Il fournit des formulaires de paiement personnalisables et accepte une variété de modes de paiement.
  3. Comment puis-je personnaliser le formulaire de paiement Moneris ?
  4. L'API Moneris vous permet de personnaliser la conception du formulaire de paiement en modifiant des éléments tels que les boutons et les champs de saisie. Utilisez des commandes comme setCustomStyle() pour ajouter le style de votre marque au formulaire.
  5. Quelle est l’importance de définir l’environnement sur « qa » ?
  6. Définir l'environnement sur "qa" avec setMode("qa") vous permet de tester des transactions en toute sécurité sans traiter de paiements réels.
  7. Comment gérer une transaction de préautorisation ?
  8. Pour gérer la préautorisation, incluez le action: "preauth" argument dans votre requête JSON. Cela permettra de bloquer la carte du client plutôt que de la facturer immédiatement.
  9. Quelles sont les mesures de sécurité fournies par Moneris Checkout ?
  10. Moneris prend en charge la tokenisation, qui remplace les informations sensibles de carte de crédit par un jeton. Conformité avec PCI DSS garantit que votre intégration répond aux exigences de sécurité du secteur.

Réflexions finales sur l'intégration de Moneris Checkout

Pour intégrer avec succès Moneris Checkout à JavaScript, les configurations frontale et back-end doivent être soigneusement planifiées. Pour offrir une bonne expérience de paiement aux utilisateurs, il faut s'assurer que les détails de la transaction, tels que le numéro du ticket, sont correctement capturés.

Effectuer des tests dans un environnement d'assurance qualité et structurer correctement votre formulaire de paiement vous aidera à détecter les problèmes plus tôt. Avec la bonne technique, vous pouvez créer une procédure de paiement transparente et sécurisée qui correspond aux objectifs de votre entreprise tout en garantissant la satisfaction des clients.

Références et ressources pour l’intégration de Moneris Checkout
  1. Cet article est basé sur la documentation sur l'intégration de Moneris Checkout et sur la référence de l'API. Pour des informations plus détaillées, visitez le référentiel GitHub officiel de Moneris : Moneris Commander GitHub .
  2. Des conseils supplémentaires sur la configuration des intégrations de paiement basées sur JavaScript sont disponibles sur le portail des développeurs de Moneris : Portail des développeurs Moneris .
  3. Pour connaître les meilleures pratiques sur la gestion des appels JSON et la capture des réponses aux transactions, consultez la documentation du SDK JavaScript : SDK JavaScript de Moneris .