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

Код примера:
<script src="https://widget.unitpay.ru/unitpay.js"></script>
<script type="text/javascript">
this.pay = function() {
var payment = new UnitPay();
payment.createWidget({
publicKey: "123456-1a234",
sum: 100,
account: "demo",
domainName: "unitpay.ru",
signature: "7aa705cb4a735d2c576850244912af88edf181db47f4a1fd44a944f6387ae943",
desc: "Описание платежа",
locale: "ru",
});
payment.success(function (params) {
console.log('Успешный платеж');
});
payment.error(function (message, params) {
console.log(message);
});
return false;
};
</script>
Обязательные параметры:
publicKey
строка
Публичный ключ проекта (PUBLIC KEY)
account
строка
Идентификатор абонента в вашей системе (например, email абонента или номер заказа)
sum
число
Сумма платежа (например, 10.00);
desc
строка
Описание заказа для покупателя
domainName
строка
unitpay.ru
signature
строка
Цифровая подпись запроса. Они защищает вас от злоумышленников - подмены описания или стоимости заказа, размещения ссылки на оплату на ресурсах мошенников.
Образуется как sha256( account + "{up}" + currency + "{up}" + desc + "{up}" + sum + "{up}" + secretKey)
, где sha256 - метод хеширования;
"{up}" - разделитель параметров в хеш-функции;
secretKey - секретный ключ проекта (доступен в личном кабинете)
Важно. Если вы не передаете currency на форму оплаты, то этот параметр не должен участвовать в формировании подписи.
Дополнительные параметры:
currency
строка
Валюта суммы оплаты, допустимые значения: "RUB", "UAH", "BYR", "EUR", "USD" (по умолчанию RUB). Если платежная система не поддерживает требуемую валюту, то сумма будет сконвертирована в валюту по умолчанию.
locale
ru, en
Принудительное назначение языка виджета.
subscription
true
Используйте данный флаг, если требуется создать подписку по карте плательщика. Идентификатор подписки (subscriptionId) будет передан в методе PAY на ваш обработчик платежа. Использование подписок возможно только после согласования со Службой безопасности Unitpay.
subscriptionId
число
Идентификатор подписки, по которой требуется произвести списание средств. Данный параметр должен быть предварительно получен в методе PAY на ваш обработчик платежа
preauth
0,1
Используйте этот флаг для создания платежа с преавторизацией, по умолчанию флаг выключен и значение равно 0
preauthExpireLogic
число
Поле для логики блокировки платежей с преавторизацией:
0 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет подтвержден;
1 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет отменен.
Если параметр не будет использован, платеж будет отменен по истечении срока.
hideMenu
true, false
Скрывает меню с выбором способов оплаты.
hideOtherMethods
true, false
Скрывает окно выбора других способов оплаты
Если вы подключили онлайн-кассу в личном кабинете 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' }]; btoa(JSON.stringify(cashItems))
Подробнее тут
customerEmail
строка
Электронная почта клиента, на которую будет отправлен чек
customerPhone
строка
Телефон плательщика в международном формате без "+" (чек на него не будет отправлен)
Last updated
Was this helpful?