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

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

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

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

Принудительное назначение языка виджета.

paymentType

строка

Код платежной системы, через которую будет идти оплата.

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?