Общие сведения
EasyPayments выполняет роль посредника между игровым сервером, исполняя на нем консольные команды, и EasyDonate, принимающим решения по итогам проделанной плагином работы.
Принцип работы плагина основан на постоянном и асинхронном общении с серверами EasyDonate и обмене данными с ними через интерфейс EasyPayments API. Асинхронный метод позволяет не нагружать основной рабочий поток игрового сервера, выполняя необходимую логику в фоне, незаметно для пользователя.
EasyPayments API
EasyPayments (EP) API — это закрытый интерфейс взаимодействия с EasyDonate, специально разработанный для плагина EasyPayments.
EP API выполняет две задачи:
- Отправляет плагину ивенты для их реализации на игровом сервере.
- Получает отчет от плагина о выполнении ивентов и принимает дальнейшее решение по их обработке.
Получение ивентов
Плагин, благодаря технологии LongPoll, устанавливает долгие соединения с EP API с целью получения событий, требующих завершения на игровом сервере. В случае срабатывания одного из событий, платформа принудительно закрывает соединение и возвращает список команд, которые необходимо исполнить. Такие соединения мы называем циклами. Циклы могут продолжаться до 30 секунд.
После завершения цикла запускается новый, аналогичный предыдущему.
Плагин способен обрабатывать сразу несколько событий в течение одного цикла, благодаря чему никаких задержек в их обработке не возникает.
Отчет о выполнении ивентов
Когда EP API передает плагину список ивентов, происходит их исполнение на игровом сервере и отправка результата обратно на серверы EasyDonate, где в дальнейшем EasyDonate запускает процесс выполнения завершающей логики.
Результатом завершен ия события может быть обновление статуса платежа и/или зачисление денежных средств на баланс владельца магазина.
Команды запускаются от имени виртуального пользователя @EasyPayments. Настоятельно не рекомендуется взаимодействовать с ним как с сущностью.