Интеграция Moneris Checkout с JavaScript: решение проблем с ответами JSON

Интеграция Moneris Checkout с JavaScript: решение проблем с ответами JSON
Интеграция Moneris Checkout с JavaScript: решение проблем с ответами JSON

Бесшовная интеграция 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 через monerisCheckout() конструктор. Этот экземпляр служит интерфейсом между вашим веб-сайтом и службой обработки платежей Moneris. Команда setMode() указывает, должна ли среда быть установлена ​​на «qa» для тестирования или «live» для производства, что имеет решающее значение на этапах разработки. Выбрав «qa», разработчики могут реплицировать транзакции без реальных затрат, создавая безопасную испытательную площадку.

После создания экземпляра кассы setCheckoutDiv() Команда подключает форму оформления заказа Moneris к определенному HTML-элементу div. Здесь на странице появится форма оплаты. Это гарантирует, что визуальное изображение формы оплаты отображается в определенной области веб-сайта, что делает процедуру простой и интегрированной в существующий дизайн. В нашем примере форма Moneris вставляется в элемент div с идентификатором «monerisCheckout». Этот div служит заполнителем для динамически загружаемого контента Moneris, который включает поля и кнопки ввода клиентских платежей.

Затем скрипт выполняется setCallback(), что позволяет разработчику настроить обработку определенных событий для процесса оформления заказа. В частности, обратный вызов «page_loaded» прикреплен к функции. мояпейджлоад, гарантируя, что при полной загрузке страницы могут выполняться дополнительные пользовательские действия (например, запись данных в журнал). Эта функция обеспечивает гибкость в обработке пользовательского опыта. Запись содержимого бывший объект внутри мояпажелоад() помогает разработчикам в отладке, предоставляя обратную связь в режиме реального времени по данным, возвращаемым Moneris.

Наконец, внутренний скрипт обрабатывает получение платежных данных на стороне сервера. С использованием Экспресс.js в Node.js маршрут приложение.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

  1. Что такое Moneris Checkout?
  2. Moneris Checkout — это платежный шлюз, который позволяет предприятиям безопасно принимать платежи через свой веб-сайт. Он предоставляет настраиваемые формы оформления заказа и принимает различные способы оплаты.
  3. Как настроить форму Moneris Checkout?
  4. API Moneris позволяет настраивать дизайн формы оформления заказа, изменяя такие элементы, как кнопки и поля ввода. Используйте такие команды, как setCustomStyle() чтобы добавить в форму стиль вашего бренда.
  5. В чем важность настройки среды «qa»?
  6. Установка среды «qa» с помощью setMode("qa") позволяет безопасно тестировать транзакции без обработки реальных платежей.
  7. Как мне обработать транзакцию предварительной авторизации?
  8. Для управления предварительной авторизацией включите action: "preauth" аргумент в вашем запросе JSON. Это приведет к блокировке карты клиента, а не немедленному снятию с нее средств.
  9. Какие меры безопасности обеспечивает Moneris Checkout?
  10. Moneris поддерживает токенизацию, при которой конфиденциальная информация о кредитной карте заменяется токеном. Соответствие PCI DSS гарантирует, что ваша интеграция соответствует отраслевым требованиям безопасности.

Заключительные мысли об интеграции Moneris Checkout

Для успешной интеграции Moneris Checkout с JavaScript необходимо тщательно спланировать как внешние, так и внутренние настройки. Чтобы обеспечить пользователям удобство оформления заказа, необходимо убедиться, что детали транзакции, такие как номер билета, записаны надлежащим образом.

Тестирование в среде контроля качества и правильное структурирование вашей платежной формы помогут вам обнаружить проблемы на ранней стадии. Используя правильную технику, вы сможете создать плавную и безопасную процедуру оплаты, которая будет соответствовать целям вашей компании и при этом обеспечивать удовлетворенность клиентов.

Ссылки и ресурсы для интеграции Moneris Checkout
  1. Эта статья основана на документации по интеграции Moneris Checkout и справочнике по API. Для получения более подробной информации посетите официальный репозиторий Moneris GitHub: Moneris Checkout GitHub .
  2. Дополнительные рекомендации по настройке интеграции платежей на основе JavaScript можно найти на портале разработчиков Moneris: Портал разработчиков Moneris .
  3. Рекомендации по обработке вызовов JSON и получению ответов на транзакции см. в документации JavaScript SDK: Moneris JavaScript SDK .