Unitpay
Search…
Создание платежа (виджет)
Виджет - это всплывающее окно с формой оплаты.
Для использования виджета вам достаточно добавить его код на страницу сайта, настроить передачу параметров и создать событие его вызова (например, нажатие на кнопку).
Код примера и описание используемых параметров виджета расположены в личном кабинете Unitpay в настройках проекта на вкладке "Виджет оплаты" (на скриншоте ниже).
Расположение кода виджета в настройках проекта

Код примера:

1
<script src="https://widget.unitpay.ru/unitpay.js"></script>
2
<script type="text/javascript">
3
this.pay = function() {
4
var payment = new UnitPay();
5
payment.createWidget({
6
publicKey: "PUBLIC KEY",
7
sum: 1,
8
account: "demo",
9
domainName: "unitpay.ru",
10
signature: "2c38bb3114b2f02222ee35f6b60c6bbe628ad31bed59633787204ae59659a02e",
11
desc: "Описание платежа",
12
locale: "ru",
13
cashItems: [{"name":"Shaurma", "count": 1, "price":sum, "type":"commodity"}],
14
customerEmail: email
15
});
16
payment.success(function (params) {
17
console.log('Успешный платеж');
18
});
19
payment.error(function (message, params) {
20
console.log(message);
21
});
22
return false;
23
};
24
</script>
Copied!
Обязательные параметры:
Значение
Описание
publicKey
строка
Публичный ключ проекта (PUBLIC KEY)
sum
число
Сумма платежа (например, 10.00);
account
строка
Идентификатор абонента в вашей системе (например, email абонента или номер заказа)
domainName
строка
unitpay.ru
signature
строка
Цифровая подпись запроса. Они защищает вас от злоумышленников - подмены описания или стоимости заказа, размещения ссылки на оплату на ресурсах мошенников. Образуется как sha256( account + "{up}" + currency + "{up}" + desc + "{up}" + sum + "{up}" + secretKey), где sha256 - метод хеширования; "{up}" - разделитель параметров в хеш-функции; secretKey - секретный ключ проекта (доступен в личном кабинете) Важно! Если вы не передаете currency на форму оплаты, то этот параметр не должен участвовать в формировании подписи.
desc
строка
Описание заказа для покупателя
Дополнительные параметры:
Значение
Описание
locale
ru, en
Принудительное назначение языка виджета.
currency
строка
Валюта суммы оплаты, допустимые значения: "RUB", "UAH", "BYR", "EUR", "USD" (по умолчанию RUB). Если платежная система не поддерживает требуемую валюту, то сумма будет сконвертирована в валюту по умолчанию.
paymentType
строка
Код платежной системы, через которую будет идти оплата.
hideMenu
true, false
Скрывает меню с выбором способов оплаты.
subscription
true
Используйте данный флаг, если требуется создать подписку по карте плательщика. Идентификатор подписки (subscriptionId) будет передан в методе PAY на ваш обработчик платежа. Использование подписок возможно только после согласования со Службой безопасности Unitpay.
subscriptionId
число
Идентификатор подписки, по которой требуется произвести списание средств. Данный параметр должен быть предварительно получен в методе PAY на ваш обработчик платежа
preauth
0,1
Используйте этот флаг для создания платежа с преавторизацией, по умолчанию флаг выключен и значение равно 0
preauthExpireLogic
число
Поле для логики блокировки платежей с преавторизацией:
0 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет подтвержден;
1 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет отменен.
Если параметр не будет использован, платеж будет отменен по истечении срока.
Если вы подключили онлайн-кассу в личном кабинете Unitpay, то для формирования чеков необходимо дополнительно передать ряд параметров:
Значение
Описание
paymentId
число
ID платежа в системе Unitpay
account
строка
Идентификатор абонента в вашей системе, переданный на этапе вызова виджета (e-mail абонента или номер заказа)
orderSum
число
Сумма заказа, например, 10.00. Обязательно сверяйте данное значение с оригинальной суммой заказа
orderCurrency
строка
Валюта заказа
cashItems
строка
Может быть сформирован, как в примере или следующими способами: btoa(unescape(encodeURIComponent(JSON.stringify([{"name":"Шаверма", "count": 1, "price":10.00, "type":"commodity"}])))) ________________________
const cashItems = [{ name: 'Shaverma', count: 1, price: this.amount, type: 'commodity' }];
btoa(JSON.stringify(cashItems)) Подробнее тут
customerEmail
строка
Электронная почта клиента, на которую будет отправлен чек
Если возникнут какие-то дополнительные вопросы по ходу интеграции, вы можете задать их в чате Юнит.Помощь или адресовать вопрос на [email protected]
Last modified 3mo ago
Copy link