Moneris Checkout integrēšana ar JavaScript: JSON atbildes problēmu risināšana

Moneris Checkout integrēšana ar JavaScript: JSON atbildes problēmu risināšana
Moneris Checkout integrēšana ar JavaScript: JSON atbildes problēmu risināšana

Nevainojama Moneris Checkout integrācija: JSON atbildes problēmu novēršana

Moneris Checkout ir plaši izmantota maksājumu vārtejas sistēma, kas palīdz uzņēmumiem paātrināt tiešsaistes darījumus. Tomēr to integrēšana vietnē var būt sarežģīta, jo īpaši, ja nepieciešamie dati, piemēram, biļetes numurs, netiek atgriezti no JSON zvana. Šādas kļūdas var kavēt regulāru darījumu plūsmu, tāpēc atkļūdošana ir nepieciešama inženieru prasme.

Aizstājot novecojušu Hosted Payment Page (HPP) ar Moneris un izmantojot to JavaScript saskarni, ir ļoti svarīgi saprast, kā pareizi konfigurēt izrakstīšanos. Lai nodrošinātu klientiem nevainojamu pieredzi, pārliecinieties, ka lapa ievieto darījumu informāciju un izgūst precīzas atbildes.

Daudziem izstrādātājiem ir grūtības ievērot Moneris integrācijas dokumentāciju. Sarežģītība ir saistīta ar atzvanu apstrādi, darījumu datu augšupielādi un rezultātu nolasīšanu reāllaikā, un tas viss ir nepieciešams veiksmīgai integrācijai. Uzsākot integrācijas ceļu, skaidra un labi dokumentēta metodika varētu būt noderīga.

Šajā ziņojumā mēs apskatīsim, kā atrisināt problēmu, kas saistīta ar trūkstošo biļešu numuru jūsu Moneris integrācijā. Jūs būsiet labāk sagatavots šīs problēmas risināšanai, ja pārskatīsit nepieciešamos koda fragmentus un problēmu novēršanas metodes.

Komanda Lietošanas piemērs
monerisCheckout() Šī ir konstruktora funkcija no Moneris JavaScript SDK. Tas sāk norēķināšanās procedūru. Šis skripts ģenerē jaunu Moneris izrakstīšanās logrīka gadījumu, kas ļauj iegult maksājumu vārteju jūsu vietnē.
setMode() Norāda Moneris darījuma vidi. Šajā piemērā “qa” attiecas uz testa vidi, kurā varat droši simulēt darījumus, neapstrādājot faktiskos maksājumus. Tas ir nepieciešams, lai pārbaudītu integrāciju, faktiski neuzlādējot kartes.
setCheckoutDiv() Šī komanda saista Moneris izrakstīšanos ar noteiktu HTML konteineru (div). Iesniedzot ID "monerisCheckout", maksājuma logrīks tiek parādīts šajā div, ļaujot jums izvēlēties, kur lapā parādās forma.
setCallback() Norēķinu procesa laikā piešķiriet funkciju konkrētam notikumam. Šajā scenārijā pielāgotā funkcija “myPageLoad” apstrādā notikumu “page_loaded”, ļaujot izstrādātājiem palaist kodu, kad norēķinu lapa ir pilnībā ielādēta.
startCheckout() Sāciet Moneris norēķināšanās procesu. Izsaucot šo funkciju, šī funkcija sāk maksājumu plūsmu, renderējot maksājuma veidlapu un savienojot to ar aizmugursistēmu darījumu apstrādei.
app.post() Šis ir Express.js maršruta apstrādātājs, kas apstrādā POST pieprasījumus. Šis skripts saņem maksājumu kvītis no Moneris aizmugursistēmas pēc darījuma pabeigšanas, kas ļauj veikt papildu apstrādi, piemēram, maksājumu datu saglabāšanu vai apstiprinājumu izsniegšanu.
bodyParser.json() Starpprogrammatūras funkcija programmā Express ienākošo JSON pieprasījumu parsēšanai. Tas ir īpaši svarīgi šajā gadījumā, jo Moneris pārsūta darījumu datus JSON formātā. Šī komanda garantē, ka pieprasījuma pamatteksts tiek pareizi apstrādāts servera puses apstrādei.
chai.request() Šī komanda ir daļa no Chai HTTP testēšanas pakotnes, kas testa gadījumos nosūta HTTP pieprasījumus. Vienības pārbaudes laikā tas atkārto POST pieprasījumus Moneris maksājumu API, ļaujot izstrādātājam redzēt, kā aizmugursistēma apstrādā veiksmīgus un neveiksmīgus darījumus.
expect() Galvenā apgalvojuma funkcija Chai bibliotēkā. Vienības testu kontekstā tas nosaka, vai ir izpildīti konkrēti nosacījumi. To izmanto, lai nodrošinātu, ka maksājuma galapunkta atgrieztais atbildes statuss un ziņojums atbilst paredzētajiem rezultātiem.

Izpratne par Moneris Checkout integrāciju un skriptu darbplūsmu

Iekļautais priekšgala skripts integrē Moneris Checkout sistēmu vietnē, izmantojot JavaScript. Primārā funkcionalitāte sākas ar Moneris kases gadījuma izveidošanu, izmantojot monerisCheckout() konstruktors. Šis gadījums kalpo kā saskarne starp jūsu vietni un Moneris maksājumu apstrādes pakalpojumu. Komanda setMode() norāda, vai vide ir jāiestata uz "qa" testēšanai vai "tiešraidē" ražošanai, kas ir ļoti svarīgi izstrādes posmos. Atlasot “qa”, izstrādātāji var atkārtot darījumus, neradot reālās izmaksas, tādējādi radot drošu testēšanas vietu.

Kad izrakstīšanās gadījums ir izveidots, setCheckoutDiv() komanda savieno Moneris izrakstīšanās veidlapu ar noteiktu HTML div. Šeit lapā parādīsies maksājuma veidlapa. Tas garantē, ka maksājuma veidlapas vizuālais attēlojums tiek parādīts noteiktā vietnes reģionā, padarot procedūru viengabalainu un integrētu jūsu esošajā dizainā. Mūsu piemērā Moneris forma ir ievietota div ar ID "monerisCheckout". Šis dalījums kalpo kā vietturis Moneris dinamiski ielādējamam saturam, kas ietver klienta maksājumu ievades laukus un pogas.

Pēc tam skripts tiek izpildīts setCallback(), ļaujot izstrādātājam konfigurēt konkrētu notikumu apstrādi norēķinu procesam. Konkrēti, funkcijai ir pievienots atzvans uz “page_loaded”. myPageLoad, garantējot, ka tad, kad lapa ir pilnībā ielādēta, var tikt veiktas papildu pielāgotas darbības (piemēram, datu reģistrēšana). Šī funkcija nodrošina elastību, kā tiek apstrādāta lietotāja pieredze. Satura reģistrēšana piem objekts iekšā myPageLoad() palīdz izstrādātājiem atkļūdot, sniedzot reāllaika atgriezenisko saiti par Moneris atgrieztajiem datiem.

Visbeidzot, aizmugures skripts apstrādā maksājumu datu saņemšanu no servera. Izmantojot Express.js Node.js, maršruts app.post() ir definēts, lai saņemtu POST pieprasījumus no Moneris, kad darījums ir pabeigts. Šis galapunkts apstrādā atgriezto JSON, pārbaudot atbildes_kods lai redzētu, vai maksājums bija veiksmīgs. Ja tas izdodas, darījuma datus (piemēram, biļetes numuru) var reģistrēt vai ievadīt datu bāzē. Atgriežot piemērotus statusa kodus un ziņojumus, aizmugursistēma nodrošina vienmērīgu savienojumu ar priekšgalu, sniedzot lietotājam kritisku atgriezenisko saiti, piemēram, vai darījums ir izdevies vai neizdevās.

Moneris Checkout integrācija ar JavaScript: priekšgala un aizmugures risinājumi

Priekšgala risinājums, kas izmanto JavaScript, lai iekļautu Moneris Checkout veidlapu un apstrādātu darījumu atbildes.

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

Aizmugurējais risinājums ar Node.js un Express: maksājumu datu apstrāde

Aizmugurējais risinājums, kas izmanto Node.js un Express, lai pārvaldītu Moneris pēcapmaksas datus

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

Vienība, kas testē aizmugures maksājumu apstrādi ar Mocha un Chai

Aizmugursistēmas vienību pārbaude ar Mocha un Chai, lai apstiprinātu naudas apstrādes funkcionalitāti

// 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 integrācijas uzlabošana ar pielāgošanas opcijām

Strādājot ar Moneris Checkout integrāciju, izstrādātāji bieži meklē metodes, kā personalizēt norēķinu procesu, lai uzlabotu lietotāja pieredzi. Norēķinu veidlapa UI komponenti var pielāgot, kas ir mazāk zināma funkcija. Moneris ļauj uzņēmumiem pielāgot norēķinu lapas izskatu un izkārtojumu, ļaujot tiem saskaņot to ar savu zīmolu. Tas ietver pogu izkārtojumu, veidlapu lauku un pat formulējuma pārveidošanu, lai galalietotājiem atvieglotu procesu un palielinātu reklāmguvumu skaitu.

Vēl viens faktors, kas jāpārbauda, ​​ir citu darījumu veidu izmantošana, nevis pamata maksājumi. Moneris ir tādas iespējas kā priekšautorizācija, kurā darījuma summa tiek saglabāta kartē, bet netiek iekasēta uzreiz. Šī funkcionalitāte ir īpaši svarīga tādās jomās kā viesnīcas un automašīnu noma, kur galīgās cenas var atšķirties. Integrācija var apstrādāt daudzus darījumu veidus, izmantojot vienu un to pašu API, padarot to daudzpusīgu dažādiem lietošanas gadījumiem.

Drošība ir galvenā prioritāte jebkurā maksājumu integrācijā, un Moneris Checkout ietver tādas tehnoloģijas kā marķieri un krāpšanas novēršana. Tokenizācija aizvieto sensitīvu karšu informāciju ar marķieri, tāpēc patērētāju dati nekad netiek atklāti jūsu sistēmās. Drošības pasākumu, piemēram, krāpšanas atklāšanas tehnoloģiju un PCI DSS atbilstības, ieviešana var ievērojami samazināt ar tiešsaistes darījumiem saistītos riskus.

Bieži uzdotie jautājumi par Moneris Checkout integrāciju

  1. Kas ir Moneris Checkout?
  2. Moneris Checkout ir maksājumu vārtejas risinājums, kas ļauj uzņēmumiem droši pieņemt maksājumus savā tīmekļa vietnē. Tas nodrošina pielāgojamas izrakstīšanās veidlapas un pieņem dažādus maksājumu veidus.
  3. Kā es varu pielāgot Moneris Checkout veidlapu?
  4. Moneris API ļauj pielāgot norēķinu veidlapas dizainu, mainot elementus, piemēram, pogas un ievades laukus. Izmantojiet tādas komandas kā setCustomStyle() lai pievienotu veidlapai sava zīmola stilu.
  5. Kāda nozīme ir vides iestatīšanai uz "qa"?
  6. Vides iestatīšana uz "qa" ar setMode("qa") ļauj droši pārbaudīt darījumus, neapstrādājot reālus maksājumus.
  7. Kā rīkoties ar iepriekšējas autorizācijas darījumu?
  8. Lai pārvaldītu iepriekšēju autorizāciju, iekļaujiet action: "preauth" arguments jūsu JSON pieprasījumā. Tas aizturēs klienta karti, nevis nekavējoties iekasēs maksu.
  9. Kādus drošības pasākumus nodrošina Moneris Checkout?
  10. Moneris atbalsta tokenizāciju, kas sensitīvu kredītkartes informāciju aizstāj ar marķieri. Atbilstība PCI DSS nodrošina, ka jūsu integrācija atbilst nozares drošības prasībām.

Pēdējās domas par Moneris Checkout integrāciju

Lai veiksmīgi integrētu Moneris Checkout ar JavaScript, gan priekšgala, gan aizmugures iestatījumi ir rūpīgi jāplāno. Lai lietotājiem nodrošinātu labu norēķināšanās pieredzi, ir jānodrošina, lai darījumu informācija, piemēram, biļetes numurs, tiktu atbilstoši fiksēta.

Pārbaude kvalitātes nodrošināšanas vidē un pareiza maksājuma veidlapas strukturēšana palīdzēs laikus atklāt problēmas. Izmantojot pareizo tehniku, jūs varat izveidot nevainojamu un drošu maksājuma procedūru, kas atbilst jūsu uzņēmuma mērķiem, vienlaikus nodrošinot klienta laimi.

Atsauces un resursi Moneris Checkout integrācijai
  1. Šis raksts ir balstīts uz Moneris Checkout integrācijas dokumentāciju un API atsauci. Lai iegūtu sīkāku informāciju, apmeklējiet oficiālo Moneris GitHub repozitoriju: Moneris Checkout GitHub .
  2. Papildu norādījumus par JavaScript balstītu maksājumu integrāciju iestatīšanu var atrast Moneris izstrādātāju portālā: Moneris izstrādātāju portāls .
  3. Paraugpraksi par JSON izsaukumu apstrādi un darījumu atbilžu tveršanu skatiet JavaScript SDK dokumentācijā: Moneris JavaScript SDK .