![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
Robokaska
Готовая интеграция для апи сервиса Robokassa. Работает, в отличие от других.
Мотивация
Чёто я не смог найти готового модуля, пришлось взять почти готовый, и дописать его самостоятельно в соответствии с
документацией.
Преимущества
- Шифрует в md5
- Валидирует ответ
- Работает синхронно
- Работает вообще
Использование
-
Получаем настройки в личном кабинете РобоКассы. Вносим в конфигурацию.
const config = {
shopIdentifier: 'Идентификатор магазина',
password1: 'Пароль 1',
password2: 'Пароль 2',
testMode: true,
}
-
Создаем экземпляр класса.
const roboKassa = new Robokaska(config);
-
Получаем URL для оплаты. В метод передается email покупателя, на который отправляется чек.
roboKassa.generateUrl(invoiceID, email, outSum, invoiceDescription);
-
Валидируем данные, полученные в ответ.
roboKassa.checkPay(invoiceID, outSum, SignatureValue);
Использование в Express.js
Пример использования в express.js
app.get('/pay', (req, res) => {
const payURL = roboKassa.generateUrl(invoiceID, email, outSum, invoiceDescription);
res.redirect(payURL);
})
app.get('/pay', (req, res) => {
const {invoiceID, outSum, SignatureValue} = req.body;
const isPaymentValid = roboKassa.checkPay(invoiceID, outSum, SignatureValue);
if (isPaymentValid) {
res.send('okay');
} else {
res.staus(400).send('NOT okay');
}
})