Интеграционное приложение банка «Санкт-Петербург» для «Тильды»

Задача. Разработать интеграционное приложение для Tilda для Банка “Санкт-Петербург”.

ПАО «Банк «Санкт-Петербург» основан в 1990 году. Приоритетные направления деятельности Банка — кредитование, расчетно-кассовое обслуживание, обслуживание юридических и физических лиц, операции на валютном рынке, рынке межбанковских кредитов, операции с ценными бумагами.

Разработка платежных модулей для конструктора сайтов Tilda Publishing имеет ряд интересных особенностей.

Tilda - это облачный конструктор сайтов, и не предусматривает размещение стороннего выполняемого кода у себя в сервисе, но предоставляет собственное API, с которым можно взаимодействовать, чтобы настроить процесс оплаты. Поэтому работа платежных сервисов происходит за пределами сервиса Tilda, и для реализации функционала оплаты обменивается данными с Tilda. При этом логика работы сторонних модулей (в этом случае правильней использовать термин “приложение”) не должна вступать в противоречие с общим алгоритмом работы сервиса.

Наше приложение для Tilda представляет собой веб-сервис, располагающийся на отдельном сервере, и имеет свой веб-интерфейс.

Настройки для подключения и работы происходят именно в этом интерфейсе. По сути, каждый пользователь приложения получает свой личный кабинет платежей БСПБ, и после регистрации получает возможность работы с заказами:

  • список всех заказов, включая информацию о составе заказа и контактные данные покупателя
  • запрос актуального статуса транзакции
  • полный возврат средств

При этом информация по оплате заказа отправляется в заявки сайта, таким образом сервис Tilda знает, что конкретный заказ оплачен.

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

На стороне покупателя оплата реализована переходом на платежную страницу банка.

Доработки приложения

В следующей версии добавили возможность приема платежей при прямых продажах без корзины.

Функционал Тильды предполагает переход к оплате по кнопке из карточки товара, без добавления товара в корзину. Но при этом передаваемые приложению данные о заказе сокращены - отсутствует информация о данных покупателя (ФИО, адрес электронной почты, контактный телефон), которые необходимы для работы с ОФД.

Чтобы разрешить это противоречие, мы добавили в приложение возможность автоматически определять, каким способом совершается заказ и нужно ли собрать дополнительную информацию о покупателе для дальнейшей идентификации. Ведь, как минимум, после совершения оплаты за заказ нужно связаться с покупателем и передать ему оплаченный заказ. В сервисе Tilda не реализована возможность дополнительного сбора таких сведений, поэтому этот функционал был добавлен в приложение оплаты.

Мерчант (владелец магазина) может включить и выключить возможность оплаты без корзины с помощью простой настройки.

Спустя некоторое время в Банке появились новые серверы оплаты с новым форматом API. Возникла потребность обеспечить работоспособность платежного приложения как со старыми, так и с новыми серверами. Новое API отличалось от старого схемой, форматом запросов и ответов, методами, принимаемыми и возвращаемыми данными. Кроме того, у мерчанта должна быть возможность самостоятельно изменить сервер для запросов. Таким образом часть мерчантов может взаимодействовать с одними серверами, часть с другими.

Приложение было переработано, была введена стандартизация которая обеспечила соответствие с данными старого и нового форматов API. Для заказов был определен учет - по какой схеме осуществлять взаимодействие с платежным шлюзом. В зависимости от выбранного сервера в настройках добавляются дополнительные поля для авторизации мерчантов.