💳
API Самозанятые
Эквайринг API
Эквайринг API
  • Главная
  • Верификация
  • Сценарии интеграции
    • Смарт оплата
    • Виджет
  • Основы работы с API
    • Что такое ключ API и для чего он?
    • Формат взаимодействия с API
    • Входящие уведомления
  • Методы API
    • init
    • status
  • Список запрещенных товаров и услуг
  • Эквайринг для Tilda
    • Подтверждение сайта
    • Настройка платежной системы
Powered by GitBook
On this page
  1. Сценарии интеграции

Виджет

PreviousСмарт оплатаNextОсновы работы с API

Last updated 7 days ago

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

Процесс оплаты через "Виджет":

  1. Пользователь на вашей стороне переходит к оплате (например, нажимает на кнопку);

  2. Вы создаете запрос на оплату и отображаете на своем сайте платежную форму Сам.Эквайринг;

  3. Пользователь в платежной форме выбирает способ оплаты, вводит данные и переходит к оплате;

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

  5. Пользователь подтверждает оплату;

  6. Сам.Эквайринг автоматически возвращает пользователя на страницу завершения оплаты на вашей стороне;

  7. Вы отображаете нужную информацию, в зависимости от статуса платежа.

Страница на этой ссылке - это возможность показать вашему клиенту финальный статус оплаты. С этой страницы, клиент сможет продолжить совершать покупки на вашем сайте.

Пример реализации отправки запроса

Подразумевается, что за это отвечает ваш сервер.

Обязательным условием для работы виджета является форма со всеми заполненными полями, а так же внутри id кнопки с названием smz-init-payment-button.

<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 не являются фактом того, что оплата прошла успешно или нет. Данное событие могут подделать злоумышленники и указать любые параметры.

(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();

Если вы инициализируете оплату c помощью своего iframe, для корректной работы переходов и кнопок необходимо: - подключить js скрипт - https://pro.selfwork.ru/merchant-app/smz-init-payment.js; - назвать аттрибут id для вашего тега iframe - "smz-payment-iframe".

Чтобы понять как прошла оплата (успешно или с ошибкой) - при возвращении на URL указанный в будет добавлен параметр success или error. А также параметр id с номером вашего заказа. Пример ссылки: https://<доменвашегосайта>/?success&id=15273648338 Обращение по этому URL не является фактом того, что оплата прошла успешно. По этой ссылке могут обратиться злоумышленники и указать любые параметры.

Чтобы получить статус оплаты по заказу, дождитесь когда мы обратимся по , которую вы указали в . Так же вы можете самостоятельно запросить статус оплаты отправив запрос

Пример реализации не предусматривает генерацию полей order_id (Ваш номер заказа) и signature ().

Чтобы получить статус оплаты по заказу, дождитесь когда мы обратимся по , которую вы указали в . Так же вы можете самостоятельно запросить статус оплаты отправив запрос

параметрах магазина
URL-callback
настройках личного кабинета своего магазина
GET /status
URL-callback
настройках личного кабинета своего магазина
GET /status
Пример интеграции "Виджет"
Подпись запроса