Повна інтеграція Moneris Checkout: усунення несправностей відповіді JSON
Moneris Checkout – це широко використовувана система платіжних шлюзів, яка допомагає компаніям пришвидшити онлайн-транзакції. Однак інтеграція його у ваш веб-сайт може бути складною, особливо якщо необхідні дані, наприклад номер квитка, не повертаються під час виклику JSON. Такі помилки можуть перешкоджати регулярному потоку транзакцій, тому налагодження є необхідною навичкою для інженерів.
Під час заміни застарілої розміщеної платіжної сторінки (HPP) на Moneris і використання їх інтерфейсу JavaScript критично важливо розуміти, як правильно налаштувати оформлення замовлення. Щоб надати своїм клієнтам безперебійний досвід, переконайтеся, що на сторінці розміщені деталі транзакцій і отримані точні відповіді.
Багато розробників мають проблеми з інтеграційною документацією Moneris. Складність пов’язана з обробкою зворотних викликів, завантаженням даних транзакцій і результатами читання в режимі реального часу, які необхідні для успішної інтеграції. Коли ви починаєте свій шлях інтеграції, наявність чіткої та добре задокументованої методології може бути корисною.
У цій публікації ми розглянемо, як вирішити проблему з відсутніми номерами квитків у вашій інтеграції Moneris. Ви будете краще підготовлені до вирішення цієї проблеми, якщо переглянете необхідні фрагменти коду та методи усунення несправностей.
Команда | Приклад використання |
---|---|
monerisCheckout() | Це функція-конструктор із Moneris JavaScript SDK. Він ініціює процедуру оформлення замовлення. Цей сценарій створює новий екземпляр віджета оформлення замовлення Moneris, який дозволяє вам вставити платіжний шлюз на ваш веб-сайт. |
setMode() | Визначає середовище для транзакції Moneris. У цьому прикладі «qa» означає тестове середовище, у якому можна безпечно імітувати транзакції без обробки фактичних платежів. Це необхідно для перевірки інтеграції без фактичного стягнення плати з карток. |
setCheckoutDiv() | Ця команда пов’язує перевірку Moneris із вказаним контейнером HTML (div). Якщо вказати ідентифікатор "monerisCheckout", платіжний віджет відображається в цьому div, дозволяючи вам вибрати, де на сторінці з’явиться форма. |
setCallback() | Під час оформлення замовлення призначте функцію певній події. У цьому сценарії спеціальна функція «myPageLoad» обробляє подію «page_loaded», дозволяючи розробникам запускати код, коли сторінка оформлення замовлення повністю завантажена. |
startCheckout() | Почніть процес оформлення Moneris. Під час виклику ця функція запускає потік платежу, відтворюючи платіжну форму та підключаючи її до серверної системи для обробки транзакцій. |
app.post() | Це обробник маршруту Express.js, який обробляє запити POST. Цей сценарій отримує квитанції про оплату від серверної частини Moneris після завершення транзакції, що дозволяє виконувати додаткову обробку, наприклад зберігати платіжні дані або видавати підтвердження. |
bodyParser.json() | Функція проміжного програмного забезпечення в Express для аналізу вхідних запитів JSON. У цьому випадку це особливо критично, оскільки Moneris передає дані транзакцій у форматі JSON. Ця команда гарантує, що тіло запиту буде правильно оброблено для обробки на стороні сервера. |
chai.request() | Ця команда є частиною пакета тестування HTTP Chai, який надсилає HTTP-запити в тестових випадках. Він реплікує запити POST до платіжного API Moneris під час модульного тестування, дозволяючи розробнику побачити, як бекенд обробляє успішні та невдалі транзакції. |
expect() | Основна функція твердження в бібліотеці Chai. У контексті модульних тестів він визначає, чи задовольняються певні умови. Він використовується, щоб переконатися, що статус відповіді та повідомлення, які повертає кінцева точка платежу, відповідають очікуваним результатам. |
Розуміння інтеграції Moneris Checkout і робочого процесу сценарію
Включений інтерфейсний скрипт інтегрує систему Moneris Checkout у веб-сайт за допомогою JavaScript. Основні функції починаються зі створення екземпляра Moneris Checkout через monerisCheckout() конструктор. Цей екземпляр служить інтерфейсом між вашим веб-сайтом і службою обробки платежів Moneris. Команда setMode() визначає, чи має бути встановлено середовище "qa" для тестування чи "живе" для виробництва, що є критичним на етапах розробки. Вибравши «qa», розробники можуть відтворювати транзакції без реальних витрат, створюючи безпечний полігон для тестування.
Після створення екземпляра перевірки, setCheckoutDiv() команда підключає форму оформлення замовлення Moneris до певного HTML div. Тут на сторінці з’явиться форма оплати. Це гарантує, що візуальне зображення платіжної форми відображається в певній частині веб-сайту, роблячи процедуру бездоганною та інтегрованою у ваш існуючий дизайн. У нашому прикладі форму Moneris вставлено в div з ідентифікатором "monerisCheckout". Цей div служить заповнювачем для динамічно завантажуваного вмісту Moneris, який включає поля введення платежів клієнта та кнопки.
Потім виконується сценарій setCallback(), дозволяючи розробнику налаштувати певну обробку подій для процесу оформлення замовлення. Зокрема, зворотний виклик для "page_loaded" додається до функції myPageLoad, що гарантує, що коли сторінка повністю завантажується, можуть виконуватися додаткові дії (наприклад, дані журналу). Ця функція забезпечує гнучкість у обробці взаємодії з користувачем. Реєстрація вмісту пр об'єкт всередині myPageLoad() допомагає розробникам у налагодженні, надаючи зворотній зв’язок у реальному часі щодо даних, які повертає Moneris.
Нарешті, серверний сценарій обробляє отримання платіжних даних на стороні сервера. Використання Express.js у Node.js, маршрут app.post() визначено для отримання запитів POST від Moneris після завершення транзакції. Ця кінцева точка обробляє повернутий JSON, перевіряючи код_відповіді щоб перевірити, чи платіж був успішним. У разі успіху дані транзакції (наприклад, номер квитка) можна зареєструвати або ввести в базу даних. Повертаючи відповідні коди статусу та повідомлення, бекенд забезпечує безперебійне з’єднання з інтерфейсом, забезпечуючи користувачеві важливий зворотний зв’язок, наприклад, успішна чи невдала транзакція.
Інтеграція Moneris Checkout із JavaScript: інтерфейсні та бек-енд рішення
Інтерфейсне рішення, що використовує JavaScript для включення форми Moneris Checkout і обробки відповідей на транзакції.
// 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 і Express: обробка платіжних даних
Внутрішнє рішення, що використовує Node.js і Express для керування даними післяплати 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');
});
Модульне тестування серверної обробки платежів за допомогою Mocha та Chai
Модульне тестування бекенда з Mocha та Chai для перевірки функціональності обробки грошей
// 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 за допомогою параметрів налаштування
Працюючи з інтеграцією Moneris Checkout, розробники часто шукають методи персоналізації процесу оплати для покращення взаємодії з користувачем. Бланк каси Компоненти інтерфейсу користувача можна налаштувати, що є менш відомою функцією. Moneris дозволяє компаніям налаштовувати зовнішній вигляд і макет сторінки оформлення замовлення, дозволяючи їм узгоджувати її зі своїм брендом. Це передбачає зміну макетів кнопок, полів форм і навіть формулювання, щоб полегшити процес для кінцевих користувачів і збільшити конверсію.
Іншим фактором, який слід розглянути, є використання видів операцій, відмінних від основних платежів. Moneris має такі можливості, як попередня авторизація, коли сума транзакції зберігається на картці, але не стягується негайно. Ця функція особливо важлива в таких сферах, як готелі та оренда автомобілів, де кінцеві ставки можуть відрізнятися. Інтеграція може обробляти багато типів транзакцій, використовуючи те саме API, що робить його універсальним для різних випадків використання.
Безпека є головним пріоритетом будь-якої інтеграції платежів, і Moneris Checkout включає такі технології, як токенізація та запобігання шахрайству. Токенізація замінює конфіденційну інформацію картки маркером, тому дані споживача ніколи не розкриваються у ваших системах. Впровадження заходів безпеки, таких як технології виявлення шахрайства та відповідність PCI DSS, може значно знизити ризики, пов’язані з онлайн-транзакціями.
Поширені запитання щодо інтеграції Moneris Checkout
- Що таке Moneris Checkout?
- Moneris Checkout — це платіжний шлюз, який дозволяє компаніям безпечно приймати платежі через їхні веб-сайти. Він надає настроювані форми оформлення замовлення та приймає різноманітні способи оплати.
- Як я можу налаштувати форму Moneris Checkout?
- Moneris API дозволяє налаштувати дизайн форми оформлення замовлення, змінюючи такі елементи, як кнопки та поля введення. Використовуйте такі команди, як setCustomStyle() щоб додати до форми стиль вашого бренду.
- Яке значення має налаштування середовища на "qa"?
- Встановлення середовища на "qa" з setMode("qa") дозволяє безпечно тестувати транзакції без обробки реальних платежів.
- Як виконати операцію попередньої авторизації?
- Для керування попередньою авторизацією включіть action: "preauth" аргумент у вашому запиті JSON. Це призведе до утримання картки клієнта, а не негайного стягнення плати.
- Які заходи безпеки забезпечує Moneris Checkout?
- Moneris підтримує токенізацію, яка замінює конфіденційну інформацію кредитної картки токеном. Відповідність PCI DSS гарантує, що ваша інтеграція відповідає галузевим вимогам безпеки.
Останні думки щодо інтеграції Moneris Checkout
Щоб успішно інтегрувати Moneris Checkout із JavaScript, необхідно ретельно спланувати налаштування інтерфейсу, і серверу. Для того, щоб забезпечити користувачам зручне оформлення замовлення, потрібно переконатися, що деталі транзакції, наприклад номер квитка, належним чином записані.
Тестування в середовищі контролю якості та правильна структура вашої платіжної форми допоможуть вам виявити проблеми на ранній стадії. За допомогою правильної техніки ви можете створити безперебійну та безпечну процедуру оплати, яка відповідає цілям вашої компанії, забезпечуючи при цьому задоволення клієнтів.
Посилання та ресурси для інтеграції Moneris Checkout
- Ця стаття ґрунтується на документації Moneris Checkout Integration і довідці API. Для отримання більш детальної інформації відвідайте офіційний репозиторій Moneris GitHub: Moneris Checkout GitHub .
- Додаткові вказівки щодо налаштування інтеграції платежів на основі JavaScript можна знайти на порталі розробників Moneris: Портал розробників Moneris .
- Щоб ознайомитися з оптимальними методами обробки викликів JSON і отримання відповідей на транзакції, зверніться до документації JavaScript SDK: Moneris JavaScript SDK .