Bezproblémová integrace Moneris Checkout: Odstraňování problémů s odpovědí JSON
Moneris Checkout je běžně používaný systém platební brány, který firmám pomáhá urychlit online transakce. Jeho integrace do vašeho webu však může být obtížná, zvláště když požadovaná data, jako je číslo lístku, nejsou vrácena z volání JSON. Takové chyby mohou bránit pravidelnému toku transakcí, takže ladění je pro inženýry nezbytnou dovedností.
Pochopení toho, jak správně nakonfigurovat pokladnu, je zásadní při nahrazení zastaralé hostované platební stránky (HPP) službou Moneris a používání jejich rozhraní JavaScript. Chcete-li svým klientům poskytnout bezproblémovou zkušenost, zajistěte, aby stránka uváděla podrobnosti o transakci a získávala přesné odpovědi.
Mnoho vývojářů má potíže s dodržováním integrační dokumentace Moneris. Složitost pramení ze zpracování zpětných volání, nahrávání transakčních dat a čtení výsledků v reálném čase, což vše je nezbytné pro úspěšnou integraci. Na začátku své integrační cesty může být prospěšné mít jasnou a dobře zdokumentovanou metodologii.
V tomto příspěvku se podíváme na to, jak vyřešit problém s chybějícími čísly tiketu ve vaší integraci Moneris. Budete lépe připraveni se s tímto problémem vypořádat, pokud si projdete potřebné úryvky kódu a techniky odstraňování problémů.
Příkaz | Příklad použití |
---|---|
monerisCheckout() | Toto je funkce konstruktoru z Moneris JavaScript SDK. Zahájí proces pokladny. Tento skript vygeneruje novou instanci widgetu pokladny Moneris, který vám umožní vložit platební bránu na váš web. |
setMode() | Určuje prostředí pro transakci Moneris. V tomto příkladu "qa" odkazuje na testovací prostředí, ve kterém můžete bezpečně simulovat transakce bez zpracování skutečných plateb. To je nezbytné pro testování integrace bez skutečného nabíjení karet. |
setCheckoutDiv() | Tento příkaz spojuje pokladnu Moneris se zadaným kontejnerem HTML (div). Zadáním ID „monerisCheckout“ se v tomto divu zobrazí platební widget, který vám umožní vybrat, kde se formulář na stránce zobrazí. |
setCallback() | Během procesu pokladny přiřaďte funkci konkrétní události. V tomto scénáři vlastní funkce "myPageLoad" zpracovává událost "page_loaded" a umožňuje vývojářům spustit kód, když je stránka pokladny zcela načtena. |
startCheckout() | Zahajte proces pokladny Moneris. Když je tato funkce zavolána, spustí tok plateb vykreslením platebního formuláře a jeho připojením k backendovému systému pro zpracování transakcí. |
app.post() | Toto je obslužná rutina trasy Express.js, která zpracovává požadavky POST. Tento skript přijímá potvrzení o platbě z backendu Moneris po dokončení transakce, což umožňuje další zpracování, jako je uchování platebních údajů nebo vydávání potvrzení. |
bodyParser.json() | Middlewarová funkce v Express pro analýzu příchozích požadavků JSON. V tomto případě je to obzvláště důležité, protože Moneris přenáší data transakcí ve formátu JSON. Tento příkaz zaručuje, že tělo požadavku je správně zpracováno pro zpracování na straně serveru. |
chai.request() | Tento příkaz je součástí testovacího balíčku Chai HTTP, který odesílá požadavky HTTP v testovacích případech. Replikuje požadavky POST do rozhraní API pro platby Moneris během testu jednotky, což vývojáři umožňuje vidět, jak backend zpracovává úspěšné a neúspěšné transakce. |
expect() | Základní funkce asertace v knihovně Chai. V rámci jednotkových testů zjišťuje, zda jsou splněny konkrétní podmínky. Používá se k zajištění toho, aby stav odpovědi a zpráva vrácená koncovým bodem platby odpovídaly zamýšleným výsledkům. |
Pochopení integrace Moneris Checkout a pracovního postupu skriptů
Zahrnutý front-end skript integruje systém Moneris Checkout do webové stránky prostřednictvím JavaScriptu. Primární funkce začíná vytvořením instance pokladny Moneris prostřednictvím monerisCheckout() konstruktér. Tato instance slouží jako rozhraní mezi vaším webem a službou zpracování plateb společnosti Moneris. Příkaz setMode() určuje, zda by mělo být prostředí nastaveno na "qa" pro testování nebo "live" pro produkci, což je kritické během fází vývoje. Výběrem „qa“ mohou vývojáři replikovat transakce, aniž by jim vznikly skutečné náklady, a vytvořit tak bezpečné testovací prostředí.
Jakmile je vytvořena instance pokladny, setCheckoutDiv() příkaz připojí pokladní formulář Moneris ke konkrétnímu div. HTML. Zde se na stránce objeví platební formulář. To zaručuje, že se vizuální zobrazení platebního formuláře zobrazí v konkrétní oblasti webové stránky, takže postup bude bezproblémový a integrovaný do vašeho stávajícího designu. V našem příkladu je formulář Moneris vložen do div s ID "monerisCheckout." Tento div slouží jako zástupný symbol pro dynamicky načítaný obsah Moneris, který zahrnuje vstupní pole a tlačítka pro klientské platby.
Skript se pak spustí setCallback(), což umožňuje vývojáři nakonfigurovat specifické zpracování událostí pro proces pokladny. Konkrétně je k funkci připojeno zpětné volání pro "page_loaded". myPageLoad, což zaručuje, že když je stránka plně načtena, mohou nastat další vlastní akce (jako je protokolování dat). Tato funkce umožňuje flexibilitu v tom, jak je nakládáno s uživatelskou zkušeností. Protokolování obsahu např objekt uvnitř myPageLoad() pomáhá vývojářům při ladění poskytováním zpětné vazby v reálném čase o datech, která Moneris vrací.
Nakonec back-endový skript zpracovává příjem platebních dat na straně serveru. Použití Express.js v Node.js, trasa app.post() je definován pro příjem požadavků POST od společnosti Moneris po dokončení transakce. Tento koncový bod zpracovává vrácený JSON a kontroluje kód_odpovědi abyste zjistili, zda platba proběhla úspěšně. V případě úspěchu lze data transakce (jako je číslo tiketu) zaprotokolovat nebo vložit do databáze. Vrácením vhodných stavových kódů a zpráv umožňuje backend hladké spojení s frontendem a poskytuje uživateli kritickou zpětnou vazbu, například zda byla transakce úspěšná nebo neúspěšná.
Integrace Moneris Checkout s JavaScriptem: front-end a back-end řešení
Frontendové řešení využívající JavaScript k začlenění formuláře Moneris Checkout a zpracování transakčních odpovědí.
// 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 řešení s Node.js a Express: Zpracování platebních dat
Back-endové řešení využívající Node.js a Express ke správě dat po platbě Moneris
// 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');
});
Jednotka testující zpracování backendových plateb pomocí Mocha a Chai
Testování backendových jednotek pomocí Mocha a Chai pro ověření funkčnosti manipulace s penězi
// 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();
});
});
});
Vylepšení integrace pokladny Moneris s možnostmi přizpůsobení
Při práci s integrací Moneris Checkout vývojáři často hledají způsoby, jak personalizovat proces pokladny a zlepšit tak uživatelskou zkušenost. Pokladní formulář komponenty uživatelského rozhraní lze přizpůsobit, což je méně známá funkce. Moneris umožňuje podnikům přizpůsobit vzhled a rozvržení stránky pokladny, což jim umožňuje sladit ji s jejich značkou. To zahrnuje úpravu rozložení tlačítek, polí formulářů a dokonce i formulace, aby byl proces pro koncové uživatele jednodušší a zvýšil se počet konverzí.
Dalším faktorem, který je třeba prozkoumat, je použití jiných druhů transakcí, než jsou základní platby. Moneris má funkce, jako je předautorizace, při které je částka transakce uložena na kartě, ale není okamžitě účtována. Tato funkce je zvláště důležitá v oblastech, jako jsou hotely a půjčovny automobilů, kde se konečné ceny mohou lišit. Integrace dokáže zpracovat mnoho typů transakcí pomocí stejného API, díky čemuž je univerzální pro různé případy použití.
Bezpečnost je nejvyšší prioritou v jakékoli integraci plateb a Moneris Checkout zahrnuje technologie, jako je tokenizace a prevence podvodů. Tokenizace nahrazuje citlivé informace o kartě tokenem, takže spotřebitelská data nejsou ve vašich systémech nikdy vystavena. Implementace bezpečnostních opatření, jako jsou technologie detekce podvodů a soulad s PCI DSS, může dramaticky snížit rizika spojená s online transakcemi.
Běžné otázky o integraci pokladny Moneris
- Co je to Moneris Checkout?
- Moneris Checkout je řešení platební brány, které umožňuje podnikům bezpečně přijímat platby prostřednictvím jejich webových stránek. Poskytuje přizpůsobitelné formuláře pokladny a přijímá různé způsoby platby.
- Jak mohu přizpůsobit formulář Moneris Checkout?
- Moneris API vám umožňuje přizpůsobit design pokladního formuláře změnou prvků, jako jsou tlačítka a vstupní pole. Používejte příkazy jako setCustomStyle() přidat do formuláře styl vaší značky.
- Jaký význam má nastavení prostředí na „qa“?
- Nastavení prostředí na "qa" s setMode("qa") umožňuje bezpečně testovat transakce bez zpracování skutečných plateb.
- Jak zpracuji předautorizační transakci?
- Chcete-li spravovat předběžnou autorizaci, zahrňte action: "preauth" argument ve vašem požadavku JSON. Tím se zablokuje karta zákazníka, místo aby se okamžitě účtovala.
- Jaká bezpečnostní opatření poskytuje Moneris Checkout?
- Moneris podporuje tokenizaci, která nahrazuje citlivé informace o kreditní kartě tokenem. Soulad s PCI DSS zajišťuje, že vaše integrace splňuje požadavky na bezpečnost odvětví.
Závěrečné úvahy o integraci pokladny Moneris
Pro úspěšnou integraci Moneris Checkout s JavaScriptem je nutné pečlivě naplánovat nastavení front-endu i back-endu. Poskytování dobré zkušenosti s placením pro uživatele vyžaduje zajistit, aby byly náležitě zachyceny podrobnosti transakce, jako je číslo lístku.
Testování v prostředí kontroly kvality a správná struktura platebního formuláře vám pomůže včas odhalit problémy. Se správnou technikou můžete vytvořit bezproblémový a bezpečný platební postup, který vyhovuje cílům vaší společnosti a zároveň zajišťuje spokojenost klientů.
Reference a zdroje pro integraci pokladny Moneris
- Tento článek je založen na dokumentaci Moneris Checkout Integration a referenci API. Pro podrobnější informace navštivte oficiální úložiště Moneris GitHub: Moneris Checkout GitHub .
- Další pokyny k nastavení integrace plateb založených na JavaScriptu lze nalézt na vývojářském portálu Moneris: Vývojářský portál Moneris .
- Osvědčené postupy pro zpracování volání JSON a zachycování transakčních odpovědí naleznete v dokumentaci JavaScript SDK: Moneris JavaScript SDK .