Naadloze integratie van Moneris Checkout: problemen met JSON-reactie oplossen
Moneris Checkout is een veelgebruikt betalingsgatewaysysteem waarmee bedrijven online transacties kunnen versnellen. Het kan echter moeilijk zijn om het in uw website te integreren, vooral wanneer de vereiste gegevens, zoals een ticketnummer, niet worden geretourneerd door een JSON-aanroep. Dergelijke fouten kunnen de reguliere transactiestroom belemmeren, dus debuggen is een noodzakelijke vaardigheid voor ingenieurs.
Begrijpen hoe u de kassa correct configureert, is van cruciaal belang bij het vervangen van een verouderde Hosted Payment Page (HPP) door Moneris en het gebruik van hun JavaScript-interface. Om uw klanten een naadloze ervaring te bieden, moet u ervoor zorgen dat de pagina transactiegegevens publiceert en nauwkeurige reacties ophaalt.
Veel ontwikkelaars hebben moeite met het volgen van de integratiedocumentatie van Moneris. De complexiteit komt voort uit het afhandelen van terugbelverzoeken, het uploaden van transactiegegevens en het in realtime lezen van de resultaten, die allemaal nodig zijn voor een succesvolle integratie. Als u aan uw integratietraject begint, kan het nuttig zijn om over een duidelijke en goed gedocumenteerde methodologie te beschikken.
In dit bericht bekijken we hoe u het probleem van ontbrekende ticketnummers in uw Moneris-integratie kunt oplossen. U kunt dit probleem beter aanpakken als u de benodigde codefragmenten en probleemoplossingstechnieken doorneemt.
Commando | Voorbeeld van gebruik |
---|---|
monerisCheckout() | Dit is de constructorfunctie van de Moneris JavaScript SDK. Het start de afrekenprocedure. Dit script genereert een nieuw exemplaar van de Moneris-afrekenwidget, waarmee u de betalingsgateway op uw website kunt insluiten. |
setMode() | Specificeert de omgeving voor de Moneris-transactie. In dit voorbeeld verwijst 'qa' naar een testomgeving waarin u veilig transacties kunt simuleren zonder daadwerkelijke betalingen te verwerken. Dit is nodig om de integratie te testen zonder de kaarten daadwerkelijk in rekening te brengen. |
setCheckoutDiv() | Met deze opdracht wordt de Moneris-afrekening gekoppeld aan een opgegeven HTML-container (div). Door de ID "monerisCheckout" op te geven, wordt de betalingswidget binnen deze div weergegeven, zodat u kunt selecteren waar het formulier op de pagina verschijnt. |
setCallback() | Wijs tijdens het afrekenproces een functie toe aan een specifiek evenement. In dit scenario verwerkt de aangepaste functie "myPageLoad" de gebeurtenis "page_loaded", waardoor ontwikkelaars code kunnen uitvoeren wanneer de afrekenpagina volledig is geladen. |
startCheckout() | Start het Moneris-afrekenproces. Wanneer deze functie wordt aangeroepen, start deze de betalingsstroom door het betalingsformulier weer te geven en dit te verbinden met het backend-systeem voor het verwerken van transacties. |
app.post() | Dit is een Express.js-routehandler die POST-aanvragen afhandelt. Dit script ontvangt betalingsbewijzen van de Moneris-backend nadat een transactie is voltooid, wat aanvullende verwerking mogelijk maakt, zoals het bewaren van betalingsgegevens of het afgeven van bevestigingen. |
bodyParser.json() | Een middleware-functie in Express voor het parseren van inkomende JSON-verzoeken. In dit geval is dit vooral van cruciaal belang omdat Moneris transactiegegevens in JSON-formaat verzendt. Deze opdracht garandeert dat de aanvraagtekst correct wordt verwerkt voor verwerking aan de serverzijde. |
chai.request() | Deze opdracht maakt deel uit van het Chai HTTP-testpakket dat HTTP-verzoeken verzendt binnen testgevallen. Het repliceert POST-verzoeken naar de Moneris-betalings-API tijdens de unit-test, waardoor de ontwikkelaar kan zien hoe de backend omgaat met succesvolle en mislukte transacties. |
expect() | Een kernbeweringfunctie in de Chai-bibliotheek. In het kader van unit-tests wordt bepaald of aan bepaalde voorwaarden is voldaan. Het wordt gebruikt om ervoor te zorgen dat de reactiestatus en het bericht dat door het betalingseindpunt wordt geretourneerd, overeenkomen met de beoogde resultaten. |
Inzicht in de Moneris Checkout-integratie en scriptworkflow
Het meegeleverde front-end-script integreert het Moneris Checkout-systeem via JavaScript in een website. De primaire functionaliteit begint met het opzetten van een exemplaar van de Moneris-kassa via de monerisAfrekenen() bouwer. Deze instantie dient als interface tussen uw website en de betalingsverwerkingsservice van Moneris. Het commando setMode() specificeert of de omgeving moet worden ingesteld op "qa" voor testen of "live" voor productie, wat van cruciaal belang is tijdens ontwikkelingsfasen. Door 'qa' te selecteren, kunnen ontwikkelaars transacties repliceren zonder dat dit reële kosten met zich meebrengt, waardoor een veilige proeftuin ontstaat.
Zodra de betaalinstantie is gebouwd, wordt de setCheckoutDiv() opdracht verbindt het Moneris-afrekenformulier met een specifieke HTML-div. Hier verschijnt het betalingsformulier op de pagina. Dit garandeert dat de visuele weergave van het betalingsformulier in een specifiek gebied van de website wordt weergegeven, waardoor de procedure naadloos wordt en geïntegreerd in uw bestaande ontwerp. In ons voorbeeld wordt het Moneris-formulier ingevoegd in de div met de ID 'monerisCheckout'. Deze div dient als tijdelijke aanduiding voor de dynamisch geladen inhoud van Moneris, waaronder invoervelden en knoppen voor klantbetalingen.
Het script wordt vervolgens uitgevoerd setTerugbellen(), waardoor de ontwikkelaar specifieke gebeurtenisafhandeling voor het afrekenproces kan configureren. Concreet is de callback voor "page_loaded" aan de functie gekoppeld mijnPaginaLoad, waardoor wordt gegarandeerd dat wanneer de pagina volledig is geladen, er extra aangepaste acties (zoals het loggen van gegevens) kunnen plaatsvinden. Deze functie zorgt voor flexibiliteit in de manier waarop met de gebruikerservaring wordt omgegaan. Het loggen van de inhoud van de ex voorwerp binnen mijnPaginaLoad() helpt ontwikkelaars bij het opsporen van fouten door realtime feedback te geven over de gegevens die Moneris retourneert.
Ten slotte zorgt het back-endscript voor de ontvangst van betalingsgegevens op de server. Gebruiken Express.js in Node.js, de route app.post() is gedefinieerd om POST-verzoeken van Moneris te ontvangen zodra de transactie is voltooid. Dit eindpunt verwerkt de geretourneerde JSON en controleert de reactiecode om te zien of de betaling is gelukt. Indien succesvol kunnen de transactiegegevens (zoals het ticketnummer) worden vastgelegd of in een database worden ingevoerd. Door geschikte statuscodes en berichten terug te sturen, maakt de backend een soepele verbinding met de frontend mogelijk, waardoor kritische feedback aan de gebruiker wordt gegeven, bijvoorbeeld of de transactie is geslaagd of mislukt.
Moneris Checkout-integratie met JavaScript: front-end- en back-end-oplossingen
Front-endoplossing die JavaScript gebruikt om het Moneris Checkout-formulier op te nemen en transactiereacties af te handelen.
// 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-endoplossing met Node.js en Express: betalingsgegevens verwerken
Back-endoplossing die gebruik maakt van Node.js en Express om de gegevens na betaling van Moneris te beheren
// 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');
});
Eenheid die de afhandeling van backend-betalingen test met Mocha en Chai
Backend-unittests met Mocha en Chai om de functionaliteit voor geldverwerking te valideren
// 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();
});
});
});
Verbetering van de Moneris Checkout-integratie met aanpassingsopties
Bij het werken met de Moneris Checkout-integratie zoeken ontwikkelaars vaak naar methoden om het afrekenproces te personaliseren om de gebruikerservaring te verbeteren. Het afrekenformulier UI-componenten kan worden aangepast, wat een minder bekende functie is. Met Moneris kunnen bedrijven het uiterlijk en de lay-out van de betaalpagina aanpassen, zodat ze deze kunnen afstemmen op hun branding. Dit omvat het aanpassen van de knopindelingen, formuliervelden en zelfs de bewoording om het proces voor eindgebruikers eenvoudiger te maken en het aantal conversies te verhogen.
Een andere factor om te onderzoeken is het gebruik van andere transactiesoorten dan basisbetalingen. Moneris beschikt over mogelijkheden zoals pre-autorisatie, waarbij een transactiebedrag op de kaart wordt opgeslagen maar niet onmiddellijk in rekening wordt gebracht. Deze functionaliteit is vooral belangrijk in gebieden zoals hotels en autoverhuur, waar de uiteindelijke tarieven kunnen verschillen. De integratie kan veel transactietypen verwerken API, waardoor het veelzijdig is voor verschillende gebruiksscenario's.
Beveiliging is een topprioriteit bij elke betalingsintegratie, en Moneris Checkout bevat technologieën zoals tokenisatie en fraudepreventie. Tokenisatie vervangt gevoelige kaartinformatie door een token, zodat consumentengegevens nooit op uw systemen terechtkomen. Het implementeren van beveiligingsmaatregelen, zoals fraudedetectietechnologieën en PCI DSS-compliance, kan de risico's die verbonden zijn aan online transacties dramatisch verminderen.
Veelgestelde vragen over de integratie van Moneris Checkout
- Wat is Moneris-afrekenen?
- Moneris Checkout is een betalingsgateway-oplossing waarmee bedrijven veilig betalingen via hun website kunnen accepteren. Het biedt aanpasbare betaalformulieren en accepteert verschillende betalingsmethoden.
- Hoe kan ik het Moneris Checkout-formulier aanpassen?
- Met de Moneris API kunt u het ontwerp van het afrekenformulier aanpassen door elementen zoals knoppen en invoervelden te wijzigen. Gebruik commando's zoals setCustomStyle() om de stijl van uw merk aan het formulier toe te voegen.
- Wat is het belang van het instellen van de omgeving op "qa"?
- De omgeving instellen op "qa" met setMode("qa") Hiermee kunt u veilig transacties testen zonder echte betalingen te verwerken.
- Hoe ga ik om met een pre-autorisatietransactie?
- Om pre-autorisatie te beheren, voegt u de action: "preauth" argument in uw JSON-verzoek. Hierdoor wordt de kaart van de klant geblokkeerd in plaats van deze onmiddellijk in rekening te brengen.
- Welke veiligheidsmaatregelen biedt Moneris Checkout?
- Moneris ondersteunt tokenisatie, waarbij gevoelige creditcardgegevens worden vervangen door een token. Naleving van PCI DSS zorgt ervoor dat uw integratie voldoet aan de beveiligingsvereisten van de sector.
Laatste gedachten over de integratie van Moneris Checkout
Om Moneris Checkout met JavaScript succesvol te integreren, moeten zowel de front-end- als de back-end-instellingen zorgvuldig worden gepland. Om gebruikers een goede betaalervaring te bieden, moet ervoor worden gezorgd dat transactiegegevens, zoals het ticketnummer, op de juiste manier worden vastgelegd.
Door te testen in een QA-omgeving en uw betalingsformulier goed te structureren, kunt u problemen vroegtijdig opsporen. Met de juiste techniek kunt u een naadloze en veilige betalingsprocedure creëren die past bij de doelstellingen van uw bedrijf en tegelijkertijd de klanttevredenheid garandeert.
Referenties en bronnen voor Moneris Checkout-integratie
- Dit artikel is gebaseerd op de Moneris Checkout-integratiedocumentatie en API-referentie. Bezoek de officiële Moneris GitHub-repository voor meer gedetailleerde informatie: Moneris Afrekenen GitHub .
- Aanvullende richtlijnen voor het instellen van op JavaScript gebaseerde betalingsintegraties zijn te vinden op de Moneris-ontwikkelaarsportal: Moneris-ontwikkelaarsportal .
- Raadpleeg de JavaScript SDK-documentatie voor best practices voor het afhandelen van JSON-oproepen en het vastleggen van transactiereacties: Moneris JavaScript-SDK .