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

Расположение кода виджета в настройках проекта
<script src="https://widget.unitpay.ru/unitpay.js"></script>
<script type="text/javascript">
this.pay = function() {
var payment = new UnitPay();
payment.createWidget({
publicKey: "PUBLIC KEY",
sum: 1,
account: "demo",
domainName: "unitpay.ru",
signature: "2c38bb3114b2f02222ee35f6b60c6bbe628ad31bed59633787204ae59659a02e",
desc: "Описание платежа",
locale: "ru",
cashItems: [{"name":"Shaurma", "count": 1, "price":sum, "type":"commodity"}],
customerEmail: email
});
payment.success(function (params) {
console.log('Успешный платеж');
});
payment.error(function (message, params) {
console.log(message);
});
return false;
};
</script>
Обязательные параметры:
| Значение | Описание |
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 | Скрывает меню с выбором способов оплаты. |
hideOtherMethods | true, false | Скрывает окно выбора других способов оплаты |
subscription | true | Используйте данный флаг, если требуется создать подписку по карте плательщи ка. Идентификатор подписки (subscriptionId) будет передан в методе PAY на ваш обработчик платежа. Использование подписок возможно только после согласования со Службой безопасности Unitpay. |
subscriptionId | число | Идентификатор подписки, по которой требуется произвести списание средств. Данный параметр должен быть предварительно получен в методе PAY на ваш обработчик платежа |
preauth | 0,1 | Используйте этот флаг для создания платежа с преавторизацией, по умолчанию флаг выключен и значение равно 0 |
preauthExpireLogic | число | Поле для логики блокировки платежей с преавторизацией:
0 - При отсутствии запроса на подтвер ждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет подтвержден;
1 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет отменен.
Если параметр не будет использован, платеж будет отменен по истечении срока. |
Если вы подключили онлайн-кассу в личном кабинете Unitpay, то для формирования чеков необходимо дополнительно передать ряд параметров:
| Значение | Описание |
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' }]; |
customerEmail | строка | Электронная почта клиента, на которую будет отправлен чек |
customerPhone | строка | Телефон клиента, который будет использован вместо почты (чек на него не будет отправлен) |
Если возникнут какие-то дополнительные вопросы по ходу интеграции, вы можете задать их в чате Юнит.Помощь или адресовать вопрос на [email protected]
Last modified 5mo ago