Разработка платежных модулей для конструктора сайтов Tilda Publishing имеет ряд интересных особенностей.
Tilda - это облачный конструктор сайтов, и не предусматривает размещение стороннего выполняемого кода у себя в
сервисе, но предоставляет собственное API, с которым можно взаимодействовать, чтобы настроить процесс оплаты.
Поэтому работа платежных сервисов происходит за пределами сервиса Tilda, и для реализации функционала оплаты
обменивается данными с Tilda. При этом логика работы сторонних модулей (в этом случае правильней использовать
термин “приложение”) не должна вступать в противоречие с общим алгоритмом работы сервиса.
Наше приложение для Tilda представляет собой веб-сервис, располагающийся на отдельном сервере, и имеет свой
веб-интерфейс.
Настройки для подключения и работы происходят именно в этом интерфейсе. По сути, каждый пользователь
приложения получает свой личный кабинет платежей БСПБ, и после регистрации получает возможность работы с
заказами:
- список всех заказов, включая информацию о составе заказа и контактные данные покупателя
- запрос актуального статуса транзакции
- полный возврат средств
При этом информация по оплате заказа отправляется в заявки сайта, таким образом сервис Tilda знает, что
конкретный заказ оплачен.
Для администратора сайта установка и настройка приложения очень просты - нужно выбрать банк в списке
платежных систем, активировать и ввести настройки, после чего можно принимать платежи.
На стороне покупателя оплата реализована переходом на платежную страницу банка.
Доработки приложения
В следующей версии добавили возможность приема платежей при прямых продажах без корзины.
Функционал Тильды предполагает переход к оплате по кнопке из карточки товара, без добавления товара в корзину.
Но при этом передаваемые приложению данные о заказе сокращены - отсутствует информация о данных покупателя
(ФИО, адрес электронной почты, контактный телефон), которые необходимы для работы с ОФД.
Чтобы разрешить это противоречие, мы добавили в приложение возможность автоматически определять, каким способом
совершается заказ и нужно ли собрать дополнительную информацию о покупателе для дальнейшей идентификации. Ведь,
как минимум, после совершения оплаты за заказ нужно связаться с покупателем и передать ему оплаченный заказ. В
сервисе Tilda не реализована возможность дополнительного сбора таких сведений, поэтому этот функционал был
добавлен в приложение оплаты.
Мерчант (владелец магазина) может включить и выключить возможность оплаты без корзины с помощью простой
настройки.
Спустя некоторое время в Банке появились новые серверы оплаты с новым форматом API. Возникла потребность
обеспечить работоспособность платежного приложения как со старыми, так и с новыми серверами. Новое API
отличалось от старого схемой, форматом запросов и ответов, методами, принимаемыми и возвращаемыми данными.
Кроме того, у мерчанта должна быть возможность самостоятельно изменить сервер для запросов. Таким образом часть
мерчантов может взаимодействовать с одними серверами, часть с другими.
Приложение было переработано, была введена стандартизация которая обеспечила соответствие с данными старого и
нового форматов API. Для заказов был определен учет - по какой схеме осуществлять взаимодействие с платежным
шлюзом. В зависимости от выбранного сервера в настройках добавляются дополнительные поля для авторизации
мерчантов.