Integrering av Moneris Checkout med JavaScript: Hantering av JSON-svarsproblem

Integrering av Moneris Checkout med JavaScript: Hantering av JSON-svarsproblem
Integrering av Moneris Checkout med JavaScript: Hantering av JSON-svarsproblem

Sömlös integrering av Moneris Checkout: Felsökning av JSON-svar

Moneris Checkout är ett vanligt använt betalningsgateway-system som hjälper företag att påskynda onlinetransaktioner. Det kan dock vara svårt att integrera den på din webbplats, särskilt när nödvändiga data, såsom ett biljettnummer, inte returneras från ett JSON-samtal. Sådana fel kan hindra det regelbundna flödet av transaktioner, så felsökning är en nödvändig färdighet för ingenjörer.

Att förstå hur man korrekt konfigurerar kassan är avgörande när man ersätter en föråldrad Hosted Payment Page (HPP) med Moneris och använder deras JavaScript-gränssnitt. För att ge dina kunder en sömlös upplevelse, se till att sidan publicerar transaktionsdetaljer och hämtar korrekta svar.

Många utvecklare har problem med att följa Moneris integrationsdokumentation. Komplexiteten härrör från hantering av återuppringningar, uppladdning av transaktionsdata och avläsning av resultat i realtid, allt detta krävs för en framgångsrik integration. När du börjar din integrationsresa kan det vara fördelaktigt att ha en tydlig och väldokumenterad metodik.

I det här inlägget kommer vi att titta på hur du löser problemet med saknade biljettnummer i din Moneris-integration. Du kommer att vara bättre förberedd att ta itu med det här problemet om du granskar nödvändiga kodavsnitt och felsökningstekniker.

Kommando Exempel på användning
monerisCheckout() Detta är konstruktorfunktionen från Moneris JavaScript SDK. Det initierar kassaproceduren. Det här skriptet genererar en ny instans av Moneris kassawidget, som låter dig bädda in betalningsporten på din webbplats.
setMode() Anger miljön för Moneris-transaktionen. I det här exemplet hänvisar "qa" till en testmiljö där du säkert kan simulera transaktioner utan att bearbeta faktiska betalningar. Detta är nödvändigt för att testa integrationen utan att faktiskt ladda korten.
setCheckoutDiv() Detta kommando associerar Moneris-utcheckningen med en specificerad HTML-behållare (div). Genom att ange ID "monerisCheckout" visas betalningswidgeten inom denna div, så att du kan välja var formuläret ska visas på sidan.
setCallback() Tilldela en funktion till en specifik händelse under utcheckningsprocessen. I det här scenariot hanterar den anpassade funktionen "myPageLoad" händelsen "page_loaded", vilket gör att utvecklare kan köra kod när kassasidan är helt laddad.
startCheckout() Börja Moneris kassaprocess. När den anropas startar denna funktion betalningsflödet genom att rendera betalningsformuläret och koppla det till backend-systemet för att behandla transaktioner.
app.post() Detta är en Express.js-rutthanterare som hanterar POST-förfrågningar. Det här skriptet tar emot betalningskvitton från Moneris backend efter att en transaktion är klar, vilket möjliggör ytterligare bearbetning som att bevara betalningsdata eller utfärda bekräftelser.
bodyParser.json() En middleware-funktion i Express för att analysera inkommande JSON-förfrågningar. Det är särskilt viktigt i det här fallet eftersom Moneris överför transaktionsdata i JSON-format. Detta kommando garanterar att förfrågningskroppen bearbetas korrekt för bearbetning på serversidan.
chai.request() Detta kommando är en del av Chai HTTP-testpaketet som skickar HTTP-förfrågningar i testfall. Den replikerar POST-förfrågningar till Moneris betalnings-API under enhetstestet, vilket gör att utvecklaren kan se hur backend hanterar framgångsrika och misslyckade transaktioner.
expect() En central påståendefunktion i Chai-biblioteket. I samband med enhetstester avgör den om särskilda villkor är uppfyllda. Den används för att säkerställa att svarsstatusen och meddelandet som returneras av betalningsslutpunkten matchar de avsedda resultaten.

Förstå Moneris Checkout-integrering och skriptarbetsflöde

Front-end-skriptet som ingår integrerar Moneris Checkout-systemet i en webbplats via JavaScript. Den primära funktionen börjar med att etablera en instans av Moneris-utcheckningen genom monerisCheckout() konstruktör. Denna instans fungerar som ett gränssnitt mellan din webbplats och Moneris betalningshanteringstjänst. Kommandot setMode() anger om miljön ska ställas in på "qa" för testning eller "live" för produktion, vilket är avgörande under utvecklingsskeden. Genom att välja "qa" kan utvecklare replikera transaktioner utan att ådra sig verkliga kostnader, vilket skapar en säker testplats.

När kassainstansen är byggd, setCheckoutDiv() kommandot ansluter Moneris kassaformulär till en specifik HTML div. Det är här betalningsformuläret kommer att synas på sidan. Detta garanterar att den visuella bilden av betalningsformuläret visas i en specifik region på webbplatsen, vilket gör proceduren sömlös och integrerad i din befintliga design. I vårt exempel infogas Moneris-formuläret i div med ID:t "monerisCheckout". Denna div fungerar som en platshållare för Moneris dynamiskt laddade innehåll, som inkluderar inmatningsfält och knappar för klientbetalningar.

Skriptet körs sedan setCallback(), vilket gör att utvecklaren kan konfigurera specifik händelsehantering för utcheckningsprocessen. Specifikt är återuppringningen för "page_loaded" kopplad till funktionen myPageLoad, vilket garanterar att när sidan är fulladdad kan extra anpassade åtgärder (som loggningsdata) inträffa. Denna funktion möjliggör flexibilitet i hur användarupplevelsen hanteras. Logga innehållet i ex objekt inom myPageLoad() hjälper utvecklare att felsöka genom att ge feedback i realtid på data som Moneris returnerar.

Slutligen hanterar back-end-skriptet mottagandet av betalningsdata på serversidan. Använder Express.js i Node.js, rutten app.post() är definierad för att ta emot POST-förfrågningar från Moneris när transaktionen är klar. Denna slutpunkt bearbetar den returnerade JSON, kontrollerar svarskod för att se om betalningen lyckades. Om det lyckas kan transaktionsdata (som ärendenumret) loggas eller matas in i en databas. Genom att returnera lämpliga statuskoder och meddelanden möjliggör backend smidig anslutning till frontend, vilket ger kritisk feedback till användaren, till exempel om transaktionen lyckades eller misslyckades.

Moneris Checkout-integration med JavaScript: Front-End- och Back-end-lösningar

Front-end-lösning som använder JavaScript för att införliva Moneris Checkout-formuläret och hantera transaktionssvar.

// 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>

Back-end-lösning med Node.js och Express: Hantering av betalningsdata

Back-end-lösning som använder Node.js och Express för att hantera Moneris efterbetalningsdata

// 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');
});

Enhetstestning av backend-betalningshanteringen med Mocha och Chai

Backend-enhetstestning med Mocha och Chai för att validera pengahanteringsfunktioner

// 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();
            });
    });
});

Förbättra Moneris Checkout-integration med anpassningsalternativ

När utvecklare arbetar med Moneris Checkout-integrationen letar utvecklare ofta efter metoder för att anpassa utcheckningsprocessen för att förbättra användarupplevelsen. Kassaformuläret UI-komponenter kan anpassas, vilket är en mindre känd funktion. Moneris tillåter företag att anpassa utseendet och layouten på kassasidan, så att de kan anpassa den till sitt varumärke. Detta innebär att ändra knapplayouter, formulärfält och till och med ordalydelsen för att göra processen enklare för slutanvändare och öka konverteringarna.

En annan faktor att undersöka är användningen av andra transaktionsslag än basbetalningar. Moneris har funktioner som förauktorisering, där ett transaktionsbelopp lagras på kortet men inte debiteras omedelbart. Denna funktion är särskilt viktig i områden som hotell och biluthyrning, där slutpriserna kan skilja sig åt. Integrationen kan hantera många transaktionstyper med samma API, vilket gör den mångsidig för olika användningsfall.

Säkerhet är en högsta prioritet i all betalningsintegration, och Moneris Checkout innehåller teknologier som tokenisering och bedrägeriförebyggande. Tokenisering ersätter känslig kortinformation med en token, så att konsumentdata aldrig exponeras på dina system. Att implementera säkerhetsåtgärder, såsom bedrägeriupptäcktsteknik och PCI DSS-efterlevnad, kan dramatiskt minska riskerna i samband med onlinetransaktioner.

Vanliga frågor om Moneris Checkout-integrering

  1. Vad är Moneris Checkout?
  2. Moneris Checkout är en betalningsgateway-lösning som gör det möjligt för företag att säkert acceptera betalningar via sin webbplats. Det tillhandahåller anpassningsbara kassaformulär och accepterar en mängd olika betalningssätt.
  3. Hur kan jag anpassa Moneris Checkout-formuläret?
  4. Moneris API låter dig anpassa utformningen av kassaformuläret genom att ändra element som knappar och inmatningsfält. Använd kommandon som setCustomStyle() för att lägga till ditt varumärkes stil i formuläret.
  5. Vad är betydelsen av att sätta miljön på "qa"?
  6. Att ställa in miljön på "qa" med setMode("qa") låter dig testa transaktioner säkert utan att bearbeta riktiga betalningar.
  7. Hur hanterar jag en förauktorisationstransaktion?
  8. För att hantera förauktorisation, inkludera action: "preauth" argument i din JSON-förfrågan. Detta kommer att placera en spärr på kundens kort i stället för att debitera det omedelbart.
  9. Vilka säkerhetsåtgärder tillhandahålls av Moneris Checkout?
  10. Moneris stöder tokenisering, som ersätter känslig kreditkortsinformation med en token. Överensstämmelse med PCI DSS säkerställer att din integration uppfyller branschens säkerhetskrav.

Sista tankar om Moneris Checkout-integrering

För att framgångsrikt integrera Moneris Checkout med JavaScript måste både front-end- och back-end-inställningarna planeras noggrant. För att ge användarna en bra utcheckningsupplevelse krävs det att transaktionsdetaljerna, såsom biljettnumret, registreras på rätt sätt.

Att testa i en kvalitetssäkringsmiljö och strukturera ditt betalningsformulär på rätt sätt hjälper dig att upptäcka problem tidigt. Med rätt teknik kan du skapa en sömlös och säker betalningsprocedur som passar ditt företags mål samtidigt som du säkerställer kundnöjdhet.

Referenser och resurser för Moneris Checkout-integrering
  1. Den här artikeln är baserad på Moneris Checkout-integrationsdokumentation och API-referens. För mer detaljerad information, besök det officiella Moneris GitHub-förrådet: Moneris Checkout GitHub .
  2. Ytterligare vägledning om hur du ställer in JavaScript-baserade betalningsintegrationer finns på Moneris utvecklarportal: Moneris utvecklarportal .
  3. För bästa praxis för att hantera JSON-anrop och fånga transaktionssvar, se JavaScript SDK-dokumentationen: Moneris JavaScript SDK .