Raiffeisen Payment Page Sdk
JS библиотека для работы с формой оплаты Райффайзенбанка. Конфигуратор формы оплаты Райффайзенбанка.
Документация
Подключение библиотеки
Для рабочего проекта подключите скрипт:
<script src="https://pay.raif.ru/pay/sdk/v2/payment.styled.min.js"></script>
или
import PaymentPageSdk from '@raiffeisen-ecom/payment-sdk';
Иные варианты подключения расположены в разделе дополнительно
Использование библиотеки
Работа происходит через обращения к классу PaymentPageSdk
.
В параметрах конструктора нужно указать обязательный параметр publicId
и необязательный, в случае, если нужно выбрать определенный сервер для работы
(test/production) - url
test
const paymentPage = new PaymentPageSdk('000001680200002-80200002', {
url: 'https://pay-test.raif.ru/pay'
});
prod
const paymentPage = new PaymentPageSdk('000001780049001-80049001');
Простые сценарии
Обязательные парамеры:
Для отслеживания успешности оплаты метод openPopup возвращает Promise, позволяющий подписаться на успешную оплату или закрытие окна.
paymentPage.openPopup({amount: 10.10})
.then(function() {
// console.log("Спасибо");
})
.catch(function() {
// console.log("Неудача");
});
paymentPage.openWindow({amount: 10.10});
paymentPage.replace({amount: 10.10});
Расширенные сценарии
Обязательные параметры:
Необязательные параметры:
ru
.https://
для web страниц или уникальную схему для мобильного приложения.Дополнительно можно стилизовать страницу, это достигается путём добавления параметра style
:
В зависимости от titlePlace зависит размер логотипа:
Если вы хотите фискализировать чеки через форму оплаты по ФФД 1.05, необходимо дополнительно передать объект чека
receipt
.
В случае некорректного формата объектаreceipt
чек не будет создан, при этом открытие платежной формы не блокируется, и заказ может быть оплачен.
maxLength: 99
– уникальный номер чека. Формат A-Za-z0-9_-
;required
maxLength: 64
- электронный адрес покупателя для отправки чека;maxLength: 256
- ФИО покупателя;required
– позиции чека (не более 100 объектов);required
maxLength: 128
- наименование товара, работы, услуги, иного предмета расчета;required
– цена за единицу товара, работы, услуги, иного предмета расчета в рублях (8 символов на целую часть, 2 - на дробную);required
– количество/вес (5 символов на целую часть, 3 - на дробную);required
– итоговая сумма в рублях (8 символов на целую часть, 2 - на дробную);maxLength: 16
– единица измерения товара, работы, услуги, иного предмета расчета;maxLength: 150
– номенклатурный код товара в 16-ричном представлении с пробелами или в формате GS1 DataMatrix. Например, "00 00 00 00 12 00 AB 00" или "010463003407001221CMK45BrhN0WLf";required
– ставка НДС ['NONE', 'VAT0', 'VAT10', 'VAT110', 'VAT20', 'VAT120'];required
maxLength: 12
– ИНН поставщика. Может содержать только цифры в количестве 10 или 12 символов;required
– вид оплаты ['E_PAYMENT', 'PREPAID'].
required
– сумма оплатыЕсли вы хотите фискализировать чеки через форму оплаты по ФФД 1.2, необходимо дополнительно передать объект чека
receipt
.
В случае некорректного формата объектаreceipt
чек не будет создан, при этом открытие платежной формы не блокируется, и заказ может быть оплачен.
maxLength: 99
– уникальный номер чека. Формат A-Za-z0-9_-
;required
maxLength: 64
– электронный адрес покупателя для отправки чека;required
– позиции чека (не более 100 объектов);
required
maxLength: 128
- наименование товара, работы, услуги, иного предмета расчета;required
– цена за единицу товара, работы, услуги, иного предмета расчета в рублях (8 символов на целую часть, 2 - на дробную);required
– количество/вес (5 символов на целую часть, 3 - на дробную);required
– итоговая сумма в рублях (8 символов на целую часть, 2 - на дробную);required
– ставка НДС ['NONE', 'VAT0', 'VAT10', 'VAT110', 'VAT20', 'VAT120'];required
maxLength: 12
– ИНН поставщика. Может содержать только цифры в количестве 10 или 12 символов;required
– код маркировкиrequired
– формат кода маркировки ['UNKNOWN', 'EAN8', 'EAN13', 'ITF14', 'GS1M', 'SHORT', 'FUR', 'EGAIS20', 'EGAIS30']required
– код маркировки в соответствии с форматом;required
– вид оплаты ['E_PAYMENT', 'PREPAID'].
required
– сумма оплатыpaymentPage.openPopup({
"publicId": "000001680200002-80200002",
"orderId": "orderTest",
"amount": 1200,
"receipt": {
"receiptNumber": "3000827351831",
"customer": {
"email": "customer@domain.ru"
},
"items": [
{
"name": "Шоколадный торт",
"price": 1200,
"quantity": 1,
"paymentObject": "COMMODITY",
"paymentMode": "FULL_PAYMENT",
"amount": 1200,
"vatType": "VAT20"
}
]
}
})
paymentPage.openPopup({
amount: 10.10,
orderId: '91700',
extra: {
email: 'test@test.ru',
login: 'testLogin',
phone: '79191234567'
},
style: {
button: {
backgroundColor: '#ffc800',
textColor: '#542595',
hoverTextColor: '#ffc800',
hoverBackgroundColor: '#542595',
borderRadius: '3px'
},
header: {
logo: 'https://www.raiffeisen.ru/common/new/images/logo-raif.svg',
titlePlace: 'RIGHT'
}
},
comment: 'Тирольский пирог с яблоками, грушами, ветчиной, сыром, ананасами, 50см'
})
.then(function() {
//console.log("Спасибо");
})
.catch(function() {
//console.log("Неудача");
});
);
В openWindow передаются необязательные параметры для возврата пользователя на страницу, в зависимости от результата оплаты: successUrl и failUrl.
paymentPage.openWindow({
amount: 10.10,
orderId: '91700',
successUrl: 'https://www.raiffeisen.ru',
failUrl: 'https://pay.raif.ru/pay/demo.html',
extra: {
email: 'test@test.ru',
login: 'testLogin',
phone: '79191234567'
},
style: {
button: {
backgroundColor: '#ffc800',
textColor: '#542595',
hoverTextColor: '#ffc800',
hoverBackgroundColor: '#542595',
borderRadius: '3px'
},
header: {
logo: 'https://www.raiffeisen.ru/common/new/images/logo-raif.svg',
titlePlace: 'RIGHT'
}
},
comment: 'Тирольский пирог с яблоками, грушами, ветчиной, сыром, ананасами, 50см'
});
То же самое, что и открытие в новой вкладке,
только необходимо использовать метод paymentPage.replace()
Дополнительно
Не минифицированный скрипт со стилями внутри:
<script src="https://pay.raif.ru/pay/sdk/v2/payment.styled.js"></script>
Подключение стилей:
<link rel="stylesheet" href="https://pay.raif.ru/pay/sdk/v2/payment.min.css">
Подключение библиотеки:
<script src="https://pay.raif.ru/pay/sdk/v2/payment.min.js"></script>
Подключение стилей:
import '@raiffeisen-ecom/payment-sdk/lib-style/index.css';
Подключение библиотеки:
import PaymentPageSdk from '@raiffeisen-ecom/payment-sdk/lib-style';
Для успешного запуска проекта локально, необходимо использовать https.