Биллинг для операторов услуг
Genesis считает деньги, ведёт услуги и выполняет то, что вы описали, на ваших серверах. Ставится в ваш контур одной командой, обновляется другой. Никаких «отдайте нам базу клиентов».
$ ./genesis.sh install
Скачиваю образы…
Запускаю…
Готово. Панель: http://127.0.0.1:3000Баланс — проекция неизменяемого журнала, а не отдельное поле. Списание проверяет средства и списывает одним запросом: окна между проверкой и списанием нет, двойных списаний тоже.
Заказ, продление, приостановка, блокировка за неуплату, отказ. Переходы описаны одной таблицей и проверяются на каждом шаге: недопустимое действие — понятный отказ, а не тихое ничего.
Вы описываете, что делать при событии услуги: команду по SSH, запрос к панели, письмо. Биллинг не знает, что вы продаёте, — VPN, хостинг, сервер или доступ к API.
ЮKassa и Crypto Bot. Непроверенный вебхук отклоняется всегда: провайдер без настроенной подписи просто не подключается. Возврат идёт через платёжную систему, а не только в базе.
Владелец, администратор, финансы, поддержка, наблюдатель. Поддержка видит клиентов и услуги, но балансы ей недоступны — и это проверяется, а не декларируется.
Панель — такой же клиент, как ваш бот. Свой личный кабинет, приложение или витрину вы делаете сами и ходите по ключу интеграции с ограниченными правами.
Свой сервер, свой домен, своя база. Данные клиентов остаются у вас — мы их не видим и не храним.
Тариф, цена, период. При событии услуги — что выполнить: команда, запрос, письмо. Дальше биллинг делает это сам.
Новые версии приходят образами. Перед обновлением делается копия базы; откат — из неё же.
Редакции отличаются числом установок, а не возможностями. Биллинг, у которого в дешёвой версии отключены возвраты или роли, однажды подведёт в неподходящий момент.
В цену входят обновления и поддержка на срок лицензии. Лицензия привязана к домену установки.
Честнее сказать сейчас, чем на второй неделе внедрения.
Переносятся клиенты, тарифы, услуги и вся история денег. Баланс не копируется, а восстанавливается из журналов и сверяется с тем, что записано в SHM: расхождение фиксируется отдельной строкой, а не подгоняется молча.
Сначала — сверка, которая ничего не меняет: она читает базу и показывает, у скольких клиентов баланс разошёлся с историей операций. Уже это бывает полезно само по себе.
$ genesis import-shm 'shm_ro:…@tcp(host)/shm'
снимок снят клиентов=1482 платежей=39104
сверка балансов сходится=1479 расходится=3
расхождение баланса клиент=petr разница=500.00
это была только сверка — ничего не измененоДадим пробную лицензию на месяц и доступ к образам. Поставите на свой сервер, заведёте свои услуги и посмотрите на своих данных, а не на демонстрации.