Виджет
Способ интеграции с Сам.Эквайринг с отображением окна оплаты на вашем сайте. Вам необходимо подключить скрипт на сайте для работы данного способа.

Процесс оплаты через "Виджет":
Пользователь на вашей стороне переходит к оплате (например, нажимает на кнопку);
Вы создаете запрос на оплату и отображаете на своем сайте платежную форму Сам.Эквайринг;
Пользователь в платежной форме выбирает способ оплаты, вводит данные и переходит к оплате;
Сам.Эквайринг реализует нужный сценарий подтверждения оплаты (например, перенаправляет пользователя в интернет-банк);
Пользователь подтверждает оплату;
Сам.Эквайринг автоматически возвращает пользователя на страницу завершения оплаты на вашей стороне;
Вы отображаете нужную информацию, в зависимости от статуса платежа.
Пример реализации отправки запроса
Пример реализации не предусматривает генерацию полей order_id (Ваш номер заказа) и signature (Подпись запроса).
Подразумевается, что за это отвечает ваш сервер.
<form action="https://pro.selfwork.ru/merchant/v1/init" method="POST">
<input type="hidden" name="amount" value="400000">
<input type="hidden" name="info[0][name]" value="Cвитер ручной работы">
<input type="hidden" name="info[0][quantity]" value="2">
<input type="hidden" name="info[0][amount]" value="100000">
<input type="hidden" name="info[1][name]" value="Штаны ручной работы">
<input type="hidden" name="info[1][quantity]" value="1">
<input type="hidden" name="info[1][amount]" value="200000">
<input type="hidden" name="order_id" value="ID заказа">
<input type="hidden" name="signature" value="Подпись заказа">
<button id="smz-init-payment-button" type="submit">Оплатить</button>
</form>
<script src="https://pro.selfwork.ru/merchant-app/smz-init-payment.js"></script>
Метод subscribe
Метод subscribe
позволяет подписывать обработчики на определенные события виджета.
Например, можно следить за открытием и закрытием всплывающего окна оплаты.
На данный момент реализовано 5 событий:
smzPaymentOpened
- Виджет отобразился;smzPaymentClosed
- Виджет был закрыт;smzPaymentError
- При загрузке виджета произошла ошибка;smzPaymentSuccess
- Оплата прошла успешно;smzPaymentFail
- При оплате произошла ошибка.
СобытияsmzPaymentSuccess и smzPaymentFail
не являются фактом того,
что оплата прошла успешно или нет. Данное событие могут подделать злоумышленники и указать любые параметры.
Чтобы получить статус оплаты по заказу, дождитесь когда мы обратимся по URL-callback, которую вы указали в настройках личного кабинета своего магазина.
Так же вы можете самостоятельно запросить статус оплаты отправив запрос GET /status
(event: SubscribeEvent, callback: Function) => UnsubscribeFunction;
Пример реализации отслеживания событий
smzPaymentWidget.subscribe('smzPaymentOpened', () => console.log('Виджет отобразился'));
smzPaymentWidget.subscribe('smzPaymentClosed', () => console.log('Виджет закрыт'));
smzPaymentWidget.subscribe('smzPaymentError', () => console.log('Ошибка загрузки виджета'));
smzPaymentWidget.subscribe('smzPaymentSuccess', (event)=>console.log(event.detail.id)); //ID заказа
smzPaymentWidget.subscribe('smzPaymentFail', (event)=>console.log(event.detail.id)); //ID заказа
//Отписаться от события можно вызвав результат функции subscribe
//Например отписаться от события отображения виджета:
const unsubscribe = smzPaymentWidget.subscribe('smzPaymentOpened', () => console.log('Виджет отобразился'));
unsubscribe();
Метод close
Метод close позволяет программно закрыть виджет оплаты.
smzPaymentWidget.close();
Last updated