Создание платежа (виджет)

Виджет - это всплывающее окно с формой оплаты.

Для использования виджета вам достаточно добавить его код на страницу сайта, настроить передачу параметров и создать событие его вызова (например, нажатие на кнопку).

Код примера и описание используемых параметров виджета расположены в личном кабинете 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' }];

btoa(JSON.stringify(cashItems)) Подробнее тут

customerEmail

строка

Электронная почта клиента, на которую будет отправлен чек

customerPhone

строка

Телефон плательщика в международном формате без "+" (чек на него не будет отправлен)

Если возникнут какие-то дополнительные вопросы по ходу интеграции, вы можете задать их в чате Юнит.Помощь или адресовать вопрос на partners@unitpay.ru

Last updated