Sklandus „Moneris Checkout“ integravimas: JSON atsako trikčių šalinimas
„Moneris Checkout“ yra dažniausiai naudojama mokėjimo šliuzo sistema, padedanti įmonėms pagreitinti internetines operacijas. Tačiau jį integruoti į svetainę gali būti sunku, ypač kai reikalingi duomenys, pvz., bilieto numeris, negrąžinami iš JSON skambučio. Tokios klaidos gali trukdyti reguliariam operacijų srautui, todėl derinimas yra būtinas inžinierių įgūdis.
Pakeitus pasenusį priglobtą mokėjimo puslapį (HPP) Moneris ir naudojant jų JavaScript sąsają, labai svarbu suprasti, kaip tinkamai sukonfigūruoti atsiskaitymą. Norėdami suteikti klientams sklandžią patirtį, įsitikinkite, kad puslapyje būtų paskelbta išsami operacijos informacija ir gauti tikslūs atsakymai.
Daugelis kūrėjų susiduria su sunkumais vadovaudamiesi Monerio integravimo dokumentais. Sudėtingumas kyla dėl atgalinių skambučių tvarkymo, operacijų duomenų įkėlimo ir rezultatų nuskaitymo realiuoju laiku – visa tai būtina sėkmingam integravimui. Kai pradedate savo integracijos kelionę, gali būti naudinga turėti aiškią ir gerai dokumentuotą metodiką.
Šiame įraše apžvelgsime, kaip išspręsti trūkstamų bilietų numerių problemą jūsų Moneris integracijoje. Būsite geriau pasirengę išspręsti šią problemą, jei peržiūrėsite reikiamus kodo fragmentus ir trikčių šalinimo būdus.
komandą | Naudojimo pavyzdys |
---|---|
monerisCheckout() | Tai konstruktoriaus funkcija iš Moneris JavaScript SDK. Jis pradeda atsiskaitymo procedūrą. Šis scenarijus sugeneruoja naują Moneris patikros valdiklio egzempliorių, leidžiantį įterpti mokėjimo šliuzą į savo svetainę. |
setMode() | Nurodo Monerio sandorio aplinką. Šiame pavyzdyje „qa“ reiškia bandomąją aplinką, kurioje galite saugiai imituoti operacijas neapdorodami faktinių mokėjimų. Tai būtina norint išbandyti integraciją iš tikrųjų neįkraunant kortelių. |
setCheckoutDiv() | Ši komanda susieja Moneris patikrą su nurodytu HTML konteineriu (div). Pateikus ID „monerisCheckout“, šiame skirsnyje rodomas mokėjimo valdiklis, leidžiantis pasirinkti, kur puslapyje bus rodoma forma. |
setCallback() | Vykdydami patikros procesą, priskirkite funkciją konkrečiam įvykiui. Pagal šį scenarijų tinkinta funkcija „myPageLoad“ apdoroja įvykį „page_loaded“, leisdama kūrėjams paleisti kodą, kai atsiskaitymo puslapis yra visiškai įkeltas. |
startCheckout() | Pradėkite Moneris atsiskaitymo procesą. Iškviesta ši funkcija pradeda mokėjimo srautą, pateikdama mokėjimo formą ir prijungdama ją prie operacijų apdorojimo sistemos. |
app.post() | Tai Express.js maršruto tvarkytuvas, apdorojantis POST užklausas. Šis scenarijus gauna mokėjimo kvitus iš Moneris užpakalinės programos, kai operacija yra baigta, o tai leidžia papildomai apdoroti, pvz., išsaugoti mokėjimo duomenis arba išduoti patvirtinimus. |
bodyParser.json() | „Express“ tarpinės programinės įrangos funkcija, skirta gaunamoms JSON užklausoms analizuoti. Šiuo atveju tai ypač svarbu, nes Moneris transakcijų duomenis perduoda JSON formatu. Ši komanda garantuoja, kad užklausos turinys yra tinkamai apdorotas serverio pusės apdorojimui. |
chai.request() | Ši komanda yra Chai HTTP testavimo paketo, siunčiančio HTTP užklausas testavimo atvejais, dalis. Jis atkartoja POST užklausas Moneris mokėjimo API per vieneto testą, leidžiantį kūrėjui pamatyti, kaip užpakalinė programa tvarko sėkmingas ir nepavykusias operacijas. |
expect() | Pagrindinė tvirtinimo funkcija Chai bibliotekoje. Atliekant vienetų testus, nustatoma, ar tenkinamos konkrečios sąlygos. Jis naudojamas siekiant užtikrinti, kad atsakymo būsena ir mokėjimo galutinio taško grąžintas pranešimas atitiktų numatytus rezultatus. |
„Moneris Checkout“ integravimo ir scenarijaus darbo eigos supratimas
Pridėtas priekinės dalies scenarijus integruoja „Moneris Checkout“ sistemą į svetainę per „JavaScript“. Pagrindinė funkcija prasideda nustatant Moneris kasos egzempliorių per monerisCheckout() konstruktorius. Šis atvejis yra sąsaja tarp jūsų svetainės ir „Moneris“ mokėjimo apdorojimo paslaugos. Komanda setMode () nurodoma, ar aplinka turi būti nustatyta į „qa“ testavimui ar „tiesioginė“ gamybai, o tai labai svarbu kūrimo etapuose. Pasirinkę „qa“, kūrėjai gali pakartoti operacijas nepatirdami realių išlaidų, sukurdami saugią bandymų poligoną.
Sukūrus patikros egzempliorių, setCheckoutDiv() komanda sujungia Moneris atsiskaitymo formą su konkrečiu HTML div. Čia atsiras mokėjimo forma puslapyje. Tai garantuoja, kad vizualinis mokėjimo formos vaizdas bus rodomas konkrečiame svetainės regione, todėl procedūra bus sklandi ir integruota į esamą dizainą. Mūsų pavyzdyje Moneris forma įterpiama į div su ID "monerisCheckout". Šis skirsnis naudojamas kaip dinamiškai įkeliamo Monerio turinio, kuriame yra kliento mokėjimo įvesties laukai ir mygtukai, rezervavimo vieta.
Tada scenarijus vykdomas setCallback(), leidžiantį kūrėjui konfigūruoti konkretų atsiskaitymo proceso įvykių tvarkymą. Tiksliau, prie funkcijos pridedamas „page_loaded“ atgalinis skambutis myPageLoad, garantuojant, kad kai puslapis bus visiškai įkeltas, gali būti atlikti papildomi pasirinktiniai veiksmai (pvz., registruojami duomenys). Ši funkcija leidžia lanksčiai valdyti vartotojo patirtį. Turinio registravimas pvz objektas viduje myPageLoad() padeda kūrėjams derinti, teikdama grįžtamąjį ryšį realiuoju laiku apie Moneris grąžintus duomenis.
Galiausiai, galinis scenarijus tvarko mokėjimo duomenų gavimą iš serverio. Naudojant Express.js Node.js, maršrutas app.post() yra apibrėžta gauti POST užklausas iš Monerio, kai operacija bus baigta. Šis galutinis taškas apdoroja grąžintą JSON, tikrindamas atsakymo_kodas kad pamatytumėte, ar mokėjimas buvo sėkmingas. Jei pavyks, operacijos duomenis (pvz., bilieto numerį) galima užregistruoti arba įvesti į duomenų bazę. Grąžindama tinkamus būsenos kodus ir pranešimus, užpakalinė programa įgalina sklandų ryšį su sąsaja ir suteikia vartotojui svarbių atsiliepimų, pvz., ar operacija pavyko, ar nepavyko.
„Moneris Checkout“ integravimas su „JavaScript“: priekiniai ir galiniai sprendimai
Priekinis sprendimas, kuriame naudojamas „JavaScript“, kad įtrauktų „Moneris Checkout“ formą ir tvarkytų atsakymus į operaciją.
// 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 sprendimas su Node.js ir Express: Mokėjimo duomenų tvarkymas
Užpakalinis sprendimas, naudojant Node.js ir Express, kad tvarkytų Monerio duomenis po apmokėjimo
// 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');
});
Padalinys, kuriame tikrinamas mokėjimų apdorojimas naudojant „Mocha“ ir „Chai“.
Backend vienetų testavimas su Mocha ir Chai, siekiant patvirtinti pinigų tvarkymo funkcionalumą
// 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“ integravimo tobulinimas naudojant tinkinimo parinktis
Dirbdami su „Moneris Checkout“ integracija, kūrėjai dažnai ieško būdų, kaip individualizuoti atsiskaitymo procesą, kad pagerintų vartotojo patirtį. Kasos forma UI komponentai galima pritaikyti, o tai yra mažiau žinoma funkcija. „Moneris“ leidžia įmonėms tinkinti atsiskaitymo puslapio išvaizdą ir išdėstymą, leidžiantį suderinti jį su savo prekės ženklu. Tai apima mygtukų išdėstymo, formos laukų ir net formuluočių keitimą, kad galutiniams vartotojams būtų lengviau atlikti procesą ir padidėtų konversijų skaičius.
Kitas veiksnys, kurį reikia ištirti, yra kitų rūšių operacijų naudojimas nei pagrindiniai mokėjimai. Moneris turi tokias galimybes kaip išankstinis autorizavimas, kai operacijos suma yra saugoma kortelėje, bet neapmokestinama iš karto. Ši funkcija ypač svarbi tokiose srityse kaip viešbučiai ir automobilių nuoma, kur galutiniai įkainiai gali skirtis. Integracija gali apdoroti daugybę operacijų tipų naudojant tą patį API, todėl jis yra universalus įvairiems naudojimo atvejams.
Saugumas yra svarbiausias bet kokio mokėjimo integravimo prioritetas, o „Moneris Checkout“ apima tokias technologijas kaip prieigos raktas ir sukčiavimo prevencija. Tokenizavimas pakeičia neskelbtiną kortelės informaciją žetonu, todėl vartotojų duomenys niekada nebus rodomi jūsų sistemose. Saugumo priemonių, tokių kaip sukčiavimo aptikimo technologijos ir PCI DSS atitiktis, įgyvendinimas gali žymiai sumažinti riziką, susijusią su sandoriais internetu.
Dažni klausimai apie Moneris Checkout integravimą
- Kas yra Moneris Checkout?
- „Moneris Checkout“ yra mokėjimo šliuzo sprendimas, leidžiantis įmonėms saugiai priimti mokėjimus per savo svetainę. Jame pateikiamos tinkinamos atsiskaitymo formos ir priimami įvairūs mokėjimo būdai.
- Kaip galiu tinkinti Moneris Checkout formą?
- Moneris API leidžia tinkinti atsiskaitymo formos dizainą keičiant tokius elementus kaip mygtukai ir įvesties laukai. Naudokite tokias komandas kaip setCustomStyle() kad pridėtumėte savo prekės ženklo stilių į formą.
- Kuo svarbu nustatyti aplinką „qa“?
- Aplinkos nustatymas „qa“ su setMode("qa") leidžia saugiai išbandyti operacijas neapdorojant tikrų mokėjimų.
- Kaip tvarkyti išankstinio autorizavimo operaciją?
- Norėdami valdyti išankstinį autorizavimą, įtraukite action: "preauth" argumentas jūsų JSON užklausoje. Tai sulaikys kliento kortelę, o ne iš karto apmokestins.
- Kokias saugumo priemones užtikrina „Moneris Checkout“?
- Moneris palaiko žetonų naudojimą, kuris pakeičia slaptą kredito kortelės informaciją žetonu. Atitiktis PCI DSS užtikrina, kad jūsų integracija atitinka pramonės saugumo reikalavimus.
Paskutinės mintys apie Moneris Checkout integravimą
Norint sėkmingai integruoti „Moneris Checkout“ su „JavaScript“, tiek priekinės, tiek galinės sąrankos turi būti kruopščiai suplanuotos. Kad naudotojai galėtų patogiai atsiskaityti, būtina užtikrinti, kad išsami operacijos informacija, pvz., bilieto numeris, būtų tinkamai užfiksuota.
Testavimas kokybės užtikrinimo aplinkoje ir tinkamas mokėjimo formos struktūrizavimas padės anksti aptikti problemas. Naudodami teisingą techniką galite sukurti sklandžią ir saugią mokėjimo procedūrą, atitinkančią jūsų įmonės tikslus, kartu užtikrindami klientų laimę.
„Moneris Checkout“ integravimo nuorodos ir ištekliai
- Šis straipsnis yra pagrįstas Moneris Checkout integracijos dokumentacija ir API nuoroda. Norėdami gauti daugiau informacijos, apsilankykite oficialioje Moneris GitHub saugykloje: Moneris Checkout GitHub .
- Papildomas gaires, kaip nustatyti „JavaScript“ pagrįstą mokėjimų integravimą, rasite „Moneris“ kūrėjų portale: Moneris kūrėjų portalas .
- Jei reikia geriausios JSON skambučių tvarkymo ir operacijų atsakymų fiksavimo praktikos, žr. JavaScript SDK dokumentaciją: Moneris JavaScript SDK .