Moneris Checkoutin saumaton integrointi: JSON-vastauksen vianmääritys
Moneris Checkout on yleisesti käytetty maksuyhdyskäytäväjärjestelmä, joka auttaa yrityksiä nopeuttamaan verkkotapahtumia. Sen integroiminen verkkosivustoosi voi kuitenkin olla vaikeaa, varsinkin kun vaadittua dataa, kuten lippunumeroa, ei palauteta JSON-puhelusta. Tällaiset virheet voivat haitata säännöllistä tapahtumavirtaa, joten virheenkorjaus on insinööreille välttämätön taito.
Kassan määrittämisen ymmärtäminen on tärkeää, kun vanhentunut Hosted Payment Page (HPP) korvataan Monerisilla ja käytetään niiden JavaScript-käyttöliittymää. Tarjoaaksesi asiakkaillesi saumattoman käyttökokemuksen varmistamalla, että sivu lähettää tapahtumatiedot ja hakee oikeat vastaukset.
Monilla kehittäjillä on vaikeuksia seurata Monerisin integrointidokumentaatiota. Monimutkaisuus johtuu takaisinsoittojen käsittelystä, tapahtumatietojen lataamisesta ja tulosten lukemisesta reaaliajassa, jotka kaikki ovat onnistuneen integroinnin edellyttämiä. Kun aloitat integraatiomatkasi, selkeä ja hyvin dokumentoitu menetelmä saattaa olla hyödyllistä.
Tässä viestissä tarkastelemme, kuinka ratkaista puuttuvien lippujen numerot Moneris-integraatiossasi. Olet paremmin valmistautunut käsittelemään tätä ongelmaa, jos käyt läpi tarvittavat koodinpätkät ja vianetsintätekniikat.
Komento | Esimerkki käytöstä |
---|---|
monerisCheckout() | Tämä on Moneris JavaScript SDK:n konstruktoritoiminto. Se käynnistää kassaprosessin. Tämä komentosarja luo uuden Moneris checkout -widgetin esiintymän, jonka avulla voit upottaa maksuyhdyskäytävän verkkosivustollesi. |
setMode() | Määrittää ympäristön Moneris-tapahtumalle. Tässä esimerkissä "qa" viittaa testiympäristöön, jossa voit turvallisesti simuloida tapahtumia käsittelemättä varsinaisia maksuja. Tämä on tarpeen integraation testaamiseksi ilman korttien varsinaista latausta. |
setCheckoutDiv() | Tämä komento yhdistää Moneris-kassan määritettyyn HTML-säilöyn (div). Kun annat tunnuksen "monerisCheckout", maksuwidget näytetään tässä div-osassa, jolloin voit valita, missä lomake sivulla näkyy. |
setCallback() | Määritä toiminto tietylle tapahtumalle kassaprosessin aikana. Tässä skenaariossa mukautettu toiminto "myPageLoad" käsittelee tapahtumaa "page_loaded", jolloin kehittäjät voivat suorittaa koodin, kun kassasivu on ladattu kokonaan. |
startCheckout() | Aloita Moneris-maksuprosessi. Kutsuttaessa tämä toiminto käynnistää maksuvirran näyttämällä maksulomakkeen ja yhdistämällä sen taustajärjestelmään tapahtumien käsittelyä varten. |
app.post() | Tämä on Express.js-reitinkäsittelijä, joka käsittelee POST-pyyntöjä. Tämä komentosarja vastaanottaa maksukuitit Moneris-taustajärjestelmästä tapahtuman päätyttyä, mikä mahdollistaa lisäkäsittelyn, kuten maksutietojen säilyttämisen tai vahvistusten antamisen. |
bodyParser.json() | Expressin väliohjelmistotoiminto saapuvien JSON-pyyntöjen jäsentämiseen. Se on erityisen kriittinen tässä tapauksessa, koska Moneris lähettää tapahtumatiedot JSON-muodossa. Tämä komento takaa, että pyynnön runko käsitellään oikein palvelinpuolen käsittelyä varten. |
chai.request() | Tämä komento on osa Chai HTTP -testauspakettia, joka lähettää HTTP-pyyntöjä testitapauksissa. Se toistaa POST-pyynnöt Moneris-maksusovellusliittymälle yksikkötestin aikana, jolloin kehittäjä voi nähdä, kuinka taustaosa käsittelee onnistuneita ja epäonnistuneita tapahtumia. |
expect() | Chai-kirjaston perustoteutustoiminto. Yksikkötestien yhteydessä se määrittää, täyttyvätkö tietyt ehdot. Sitä käytetään varmistamaan, että maksun päätepisteen palauttama vastauksen tila ja viesti vastaavat aiottuja tuloksia. |
Moneris Checkout -integroinnin ja komentosarjatyönkulun ymmärtäminen
Mukana oleva käyttöliittymäskripti integroi Moneris Checkout -järjestelmän verkkosivustoon JavaScriptin kautta. Ensisijainen toiminto alkaa luomalla Moneris-kassan ilmentymä monerisCheckout() rakentaja. Tämä esiintymä toimii rajapintana verkkosivustosi ja Monerisin maksujenkäsittelypalvelun välillä. komento setMode() määrittää, tuleeko ympäristöksi asettaa "qa" testausta varten vai "live" tuotantoa varten, mikä on kriittistä kehitysvaiheiden aikana. Valitsemalla "qa" kehittäjät voivat toistaa tapahtumat ilman todellisia kustannuksia, mikä luo turvallisen testausalueen.
Kun kassainstanssi on rakennettu, setCheckoutDiv() -komento yhdistää Moneris-maksulomakkeen tiettyyn HTML-div. Tässä sivulla näkyy maksulomake. Tämä takaa, että maksulomakkeen visuaalinen esitys näkyy tietyllä verkkosivuston alueella, mikä tekee menettelystä saumattoman ja integroituneena olemassa olevaan suunnitteluun. Esimerkissämme Moneris-lomake lisätään div-tunnuksella "monerisCheckout". Tämä div toimii paikkamerkkinä Monerisin dynaamisesti ladatulle sisällölle, joka sisältää asiakkaan maksun syöttökentät ja painikkeet.
Skripti suoritetaan sitten setCallback(), jonka avulla kehittäjä voi määrittää tietyn tapahtuman käsittelyn kassaprosessia varten. Erityisesti "page_loaded":n takaisinkutsu on liitetty funktioon myPageLoad, joka takaa, että kun sivu on ladattu täyteen, ylimääräisiä mukautettuja toimintoja (kuten lokitietojen) voi tapahtua. Tämä toiminto mahdollistaa joustavuuden käyttökokemuksen käsittelyssä. Sisällön kirjaaminen esim esine sisällä myPageLoad() auttaa kehittäjiä virheenkorjauksessa antamalla reaaliaikaista palautetta Monerisin palauttamista tiedoista.
Lopuksi taustaskripti käsittelee palvelinpuolen maksutietojen vastaanottamisen. Käyttämällä Express.js Node.js:ssä reitti app.post() on määritetty vastaanottamaan POST-pyynnöt Monerisilta, kun tapahtuma on valmis. Tämä päätepiste käsittelee palautetun JSONin ja tarkistaa vastaus_koodi nähdäksesi onnistuiko maksu. Jos onnistuu, tapahtumatiedot (kuten lipun numero) voidaan kirjata tai syöttää tietokantaan. Palauttamalla sopivia tilakoodeja ja viestejä taustaosa mahdollistaa sujuvan yhteyden käyttöliittymään ja antaa käyttäjälle kriittistä palautetta, kuten tapahtuman onnistuminen vai epäonnistuminen.
Moneris Checkout -integraatio JavaScriptin kanssa: Front-End ja Back-End -ratkaisut
Käyttöliittymäratkaisu, joka käyttää JavaScriptiä Moneris Checkout -lomakkeen sisällyttämiseen ja tapahtumavastausten käsittelemiseen.
// 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>
Node.js:n ja Expressin taustaratkaisu: Maksutietojen käsittely
Node.js:ää ja Expressiä hyödyntävä taustaratkaisu Monerisin maksun jälkeisten tietojen hallintaan
// 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');
});
Yksikkö testaa taustamaksun käsittelyä Mochan ja Chain kanssa
Taustayksikkötestaus Mochan ja Chain kanssa rahankäsittelyn toimivuuden tarkistamiseksi
// 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();
});
});
});
Moneris Checkout -integraation parantaminen mukautusvaihtoehdoilla
Työskentelessään Moneris Checkout -integraation kanssa kehittäjät etsivät usein tapoja personoida kassaprosessia käyttökokemuksen parantamiseksi. Kassalomake UI komponentit voidaan mukauttaa, mikä on vähemmän tunnettu toiminto. Moneris antaa yrityksille mahdollisuuden muokata kassasivun ulkoasua ja asettelua, jolloin ne voivat mukauttaa sen brändinsä kanssa. Tämä edellyttää painikkeiden asettelujen, lomakekenttien ja jopa sanamuotojen muokkaamista prosessin helpottamiseksi loppukäyttäjille ja konversioiden lisäämiseksi.
Toinen tutkittava tekijä on muiden kuin perusmaksujen käyttö. Monerisilla on ominaisuuksia, kuten ennakkovarmennus, jossa tapahtuman summa tallennetaan kortille, mutta sitä ei veloiteta välittömästi. Tämä toiminto on erityisen tärkeä esimerkiksi hotelleissa ja autovuokraamoissa, joissa lopulliset hinnat voivat vaihdella. Integraatio pystyy käsittelemään monia tapahtumatyyppejä käyttämällä samaa API, mikä tekee siitä monipuolisen erilaisiin käyttötarkoituksiin.
Turvallisuus on etusijalla kaikissa maksuintegraatioissa, ja Moneris Checkout sisältää teknologioita, kuten tokenisoinnin ja petosten ehkäisyn. Tokenisointi korvaa arkaluontoiset korttitiedot tunnuksella, joten kuluttajatietoja ei koskaan paljasteta järjestelmissäsi. Turvatoimenpiteiden, kuten petosten havaitsemistekniikoiden ja PCI DSS -yhteensopivuuden, käyttöönotto voi dramaattisesti vähentää online-tapahtumiin liittyviä riskejä.
Yleisiä kysymyksiä Moneris Checkout -integraatiosta
- Mikä on Moneris Checkout?
- Moneris Checkout on maksuyhdyskäytäväratkaisu, jonka avulla yritykset voivat hyväksyä maksuja turvallisesti verkkosivustonsa kautta. Se tarjoaa mukautettavia kassalomakkeita ja hyväksyy erilaisia maksutapoja.
- Kuinka voin mukauttaa Moneris Checkout -lomaketta?
- Moneris-sovellusliittymän avulla voit mukauttaa kassalomakkeen ulkoasua muuttamalla elementtejä, kuten painikkeita ja syöttökenttiä. Käytä komentoja, kuten setCustomStyle() lisätäksesi brändisi tyyliä lomakkeeseen.
- Mitä merkitystä on ympäristön asettamisella "qa":ksi?
- Ympäristön asettaminen "qa":ksi kanssa setMode("qa") voit testata tapahtumia turvallisesti ilman oikeiden maksujen käsittelyä.
- Miten käsittelen ennakkovaltuutusta?
- Jos haluat hallita ennakkovaltuutusta, sisällytä action: "preauth" argumentti JSON-pyynnössäsi. Tämä asettaa asiakkaan kortin pitoon sen sijaan, että se veloittaisi sitä välittömästi.
- Mitä turvatoimia Moneris Checkout tarjoaa?
- Moneris tukee tokenointia, joka korvaa arkaluontoiset luottokorttitiedot tunnuksella. noudattaminen PCI DSS varmistaa, että integraatiosi täyttää alan turvallisuusvaatimukset.
Viimeisiä ajatuksia Moneris Checkout -integraatiosta
Jotta Moneris Checkout voidaan integroida onnistuneesti JavaScriptiin, sekä käyttöliittymän että taustan asetukset on suunniteltava huolellisesti. Hyvän kassakokemuksen tarjoaminen käyttäjille edellyttää, että tapahtumatiedot, kuten lipun numero, tallennetaan asianmukaisesti.
Testaaminen laadunvarmistusympäristössä ja maksulomakkeen oikea jäsentäminen auttavat sinua havaitsemaan ongelmat ajoissa. Oikealla tekniikalla voit luoda saumattoman ja turvallisen maksumenettelyn, joka sopii yrityksesi tavoitteisiin ja varmistaa samalla asiakkaan onnellisuuden.
Viitteet ja resurssit Moneris Checkout -integraatioon
- Tämä artikkeli perustuu Moneris Checkout Integration -dokumentaatioon ja API-viitteeseen. Tarkempia tietoja saat virallisesta Moneris GitHub -tietovarastosta: Moneris Checkout GitHub .
- Lisäohjeita JavaScript-pohjaisten maksuintegraatioiden määrittämiseen löytyy Moneris-kehittäjäportaalista: Moneris-kehittäjäportaali .
- Parhaat käytännöt JSON-kutsujen käsittelyyn ja tapahtumavastausten sieppaamiseen on JavaScript SDK -dokumentaatiossa: Moneris JavaScript SDK .