Skip to main content

Платная подписка на группу или канал

В этом пособии мы расскажем о том как создать Платную Подписку для вашей группы или канала средствами конструктора @MenuBuilderBot. Платная Подписка на канал или группу - позволяет вам брать периодическую плату за присутствие пользователей в вашем канале или группе. После окончания оплаченной подписки юзеры будут автоматически удалены из канала или группы.

Данное пособие рассчитано на людей НЕ владеющих конструктором, поэтому в нём подробно будут описаны все этапы организации Платной Подписки. Те кто знаком с основными функциями конструктора, может напрямую обратиться к главе Платная Подписка раздела "Группы".

Посмотреть на ЖИВОЙ ДЕМО БОТ можно по адресу @MenuBuilderDemo10bot - вы можете приобрести готовый демо бот со всем необходимым функционалом и даже заказать доработку нужных вам функций.

❖ Как это работает

Созданный вами бот добавляется в группу в качестве админа. В самом боте, при помощи кнопки с двумя Action-ами создаётся механизм оплаты подписки (тариф) и сохранение даты её окончания. Время окончания подписки для каждого юзера сохраняется в специальной, созданной вами, переменной. Один раз в сутки ваш бот (система) будет проверять время в этой переменной и удалять из группы тех юзеров время подписки которых уже истекло или оповещать тех чьё время скоро истечёт. Вы, как создатель, оплачиваете функцию Платной Подписки при помощи Токенов Функций в момент непосредственной проверки юзеров в группе (50000 Токенов Функций ЕЖЕМЕСЯЧНО доступно каждому боту. Этого достаточно для группы из примерно 160 человек в течение месяца).

Надо понимать что создание всего функционала происходит средствами конструктора, с использованием механизмов и функций уже имеющихся в конструкторе. Для новичков это может показаться сложным и в чём-то, на начальном этапе, возможно это действительно сложнее чем создание подобного функционала на специализированных ботах. Однако при этом и инструмент которым вы пользуетесь и соответственно - функционал который вы создадите в результате, это гораздо более гибкие, простые в управлении проекты, которые будут находиться под вашим полным контролем. Кроме того, в последствии, не если, а КОГДА, у вас появятся новые идеи, вы с лёгкостью сможете добавлять в ваш проект дополнительные функции, огромное количество которых уже имеется в конструкторе и вам для этого не понадобится, ни искать программиста, ни искать очередной специализированный инструмент - всё уже будет под рукой.

❖ Создаём бот

Для создания функционала платной подписки вам будет необходим бот созданный на платформе @MenuBuilderBot, это позволит вашему боту взаимодействовать с системными функциями конструктора.

Если у вас уже есть бот созданный и подключённый к платформе @MenuBuilderBot, то просто пропустите этот шаг.

ИНФО: Подробнее о том как создать свой первый бот смотри по ссылке:
https://docs.menubuilder.cc/books/1-rukovodstvo-novichka/page/kak-sozdat-svoy-pervyy-bot

Приобретаем функционал


Весь необходимый функционал можно приобрести заранее или приобретать его по мере необходимости в процессе создания отдельных функций. Функционала описанного в этом пособии будет достаточно для создания самой Платной Подписки и одного тарифа для её оплаты. Каждый новый тариф, в своём базовом виде, будет требовать двух дополнительных Action-ов. Весь остальной функционал является общим для всего проекта Платной Подписки.

Для тех кто совершенно не знаком с проектом @MenuBuilderBot, отметим, что в нашем проекте мы предпочитаем не брать агульно ежемесячную оплату по одному, двум тарифам, за функции которые вы никогда не будете использовать. Тем более что функционала в конструкторе настолько много что это ежемесячная плата была бы просто огромной. Вместо этого мы предоставляем возможность платить только за тот функционал который вам действительно необходим. При этом в 99% случаев этот функционал оплачивается ОДИН РАЗ и используется до тех пор пока существует ваш бот или аккаунт. Функционала который оплачивается ежемесячно в проекте практически нет. Поэтому, в начале, подключение новых функций вам может показаться излишне запутанным, однако впоследствии вы оцените данный подход.

Последовательность действий:
1. Пополнить баланс вашего Аккаунта
2. Обменять средства на внутренний токен TMH
3. Приобрести нужные функции за TMH.

ИНФО: Подробнее о КОШЕЛЬКАХ вашего Аккаунта смотри по ссылке:
https://docs.menubuilder.cc/books/1-rukovodstvo-novichka/page/koshelki-akkaunta

ИНФО: Подробнее о том как ПОПОЛНИТЬ Баланс Аккаунта смотри по ссылке:
https://docs.menubuilder.cc/books/1-rukovodstvo-novichka/page/kak-popolnit-balans-akkaunta

ИНФО: Подробнее о том как обменять внутренний ТОКЕН TMH смотри по ссылке:
https://docs.menubuilder.cc/books/1-rukovodstvo-novichka/page/kak-obmenyat-kupit-tmh

ИНФО: Подробнее о том как ПРИОБРЕТАТЬ функционал смотри по ссылке:
https://docs.menubuilder.cc/books/1-rukovodstvo-novichka/page/kak-priobretat-dopolnitelnyy-funktsional

Вам понадобится:

1. Токены групп (любое количество для начала)
☞ 🔐Админ | 🧩Расширения | 📂Каналы и Группы

2. Переменная (1 штука) (исходим из того что оплата буде происходить с Баланса который уже и так доступен всем)
☞ 🔐Админ | 🧩Расширения | 📂Переменные

3. Условия (плагин)
☞ 🔐Админ | 🧩Расширения | 📂Кнопки

4. Макросы и выражения для кнопок
☞ 🔐Админ | 🧩Расширения | 📂Кнопки

5. Action-ы (2 штуки)
☞ 🔐Админ | 🧩Расширения | 📂Action-ы

❖ Создаём переменную Даты и Времени

Переменная нам нужна для того чтобы хранить в ней время окончания подписки для каждого юзера и функция Платной Подписки могла каждый день проверять это значение. Включение самой функции Платной Подписки (смотри ниже) осуществляется в момент когда вы укажете данную переменную в её настройках.

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

Последовательность действий:
1. Перейти в Админку вашего бота:
☞ 🔐Админ | 🗄Переменные | 📕Время
2. Создать переменную задав ей имя

Имя переменной вы можете выбрать сами и далее использовать его в ваших настройках, мы назовём её date_var.

ИНФО: Подробнее о том как СОЗДАТЬ ПЕРЕМЕННУЮ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/peremennye

❖ Добавляем бот в группу

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

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

ВАЖНО: надо понимать что бот в группе "видит", а точнее знает о существовании, только тех пользователей, которых он лично запускал в группу при помощи функционала «Приёма запросов на вступление». Соответственно если в вашей группе уже присутствуют юзеры, то "старых" пользователей, которые были в группе до того как был включён функционал приёма заявок, бот видеть не может. В идеале создание функционала Платной Подписки должно осуществляться для новой группы - пользователи в которой отсутствуют.

Если у вас Группа, а не Канал, то с разной долей вероятности удалить из группы старых юзеров можно с помощью опции «Исключать при Активности» при настройке удаления (Кика) юзера из группы (смотри ниже).

Последовательность действий:
1. Настроить группу на прием заявок
2. Узнать ID группы
3. Подключить и ( ! )активировать группу в боте (Понадобятся Токены Групп)
4. Только после этого - добавить сам бот в группу (иначе бот будет её покидать)

НАСТРОЙКА ГРУППЫ Для работы представленного функционала вам понадобится:
• Публичная Группа
• Включённая опция «Заявки на вступление».
Чтобы включить опцию «Заявки на вступление» перейдите в вашей ПУБЛИЧНОЙ группе:
Настройки группы > Тип группы > Заявки на вступление

ВАЖНО: Подробнее о том КАК БОТЫ РАБОТАЮТ В ГРУППАХ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/gruppy-obshhie-svedeniya

ИНФО: Подробнее о том как ДОБАВИТЬ БОТ В ГРУППУ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/kak-dobavit-nastroit-i-udalit-gruppu

❖ Настраиваем Платную Подписку в боте

Теперь когда ваша группа активирована в боте, а сам бот добавлен в группу, нужно настроить поведение бота в группе, чтобы бот знал чем он там будет заниматься. Минимально необходимыми настройками для проверки подписки в группе являются:
• Приём запросов
• Платная подписка

Последовательность действий:
1. Переходим в настройки групп в Админке бота:
☞ 🔐Админ | 🧫Каналы и Группы
2. Выбираем добавленную вами группу
3. Настраиваем раздел «Управление юзерами» (Приём запросов и Платная подписка)

Вам нужно будет включить опцию «Приём Запросов», а также указать все необходимые данные для опции «Платная Подписка».

ИНФО: Подробнее о настройках раздела УПРАВЛЕНИЕ ЮЗЕРАМИ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/modul-upravleniia-iuzerami

❖ Создаём тариф платной подписки в меню бота

С точки зрения интерфейса, способов представления тарифов юзеру может быть большое количество вариантов:
• Команда в меню команд бота
• Сообщение с командой
• Сообщение с инлайн кнопкой
• Кнопка нижнего меню.

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

Если в вашем проекте будет всего один Тариф, то вы можете напрямую создавать одну кнопку. Если тарифов будет несколько то возможно имеет смысл объединить их в рамках одного подменю.

ИНФО: Подробнее о СОЗДАНИИ КНОПОК смотри по ссылке:
https://docs.menubuilder.cc/books/2-osnovnye-funktsii-ADn/page/kak-dobavit-knopku

ИНФО: Подробнее о создании ПОДМЕНЮ смотри по ссылке:
https://docs.menubuilder.cc/books/2-osnovnye-funktsii-ADn/page/kak-sozdat-knopku-vnutri-knopki-pod-menyu

1.1 Создайте кнопку для приобретения юзером нужного тарифа.

1.2 На кнопку поставьте Условие которое будет проверять достаточно ли средств на Балансе пользователя.
Например: {%balance% >= 100} (100 - это стоимость)

ИНФО: Подробнее о БАЛАНСЕ юзера в боте смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/balans-i-redaktor-peremennyx

ИНФО: Подробнее об УСЛОВИЯХ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/usloviya

1.3 На кнопку поставьте Команду
Например: /sub (с параметром «Переход по Команде»)

ИНФО: Подробнее о КОМАНДАХ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/komandy

Эту команду можно будет указать в «сообщении об окончании подписки» или в «сообщении об удалении из группы (Кик)» чтобы юзер был автоматически перенесён или мог сразу попасть в меню продления Тарифа.

Если у вас один тариф то команду можно присвоить самой кнопке тарифа, если ваши тарифы объединены в одном подменю то команду нужно присвоить родительской кнопке.

1.4 В самой кнопке добавьте «Action Чисел» который будет списывать с Баланса указанную вами в Условии сумму.

ИНФО: Подробнее об ACTION-АХ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/chapter/action-y-eksheny

1.5 Добавьте второй «Action Чисел» который будет устанавливать дату, на месяц большую чем записано в созданной вами ранее переменной Даты и Времени.
Например:
Действие {dt_add("%date_var%", 1, "m")}

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

ИНФО: Подробнее о ВЫРАЖЕНИЯХ смотри по ссылке:
https://docs.menubuilder.cc/books/5-rukovodstva-po-funktsiyam/page/vyrazheniya

По умолчанию (если юзер ранее не взаимодействовал с вашим ботом), или если он был удалён из группы (Кик), переменная при обращении к ней будет показывать Системное Время "сейчас". Поэтому любое приобретение времени по тарифу будет отсчитываться либо от времени "сейчас", либо от того которое УЖЕ сохранено в переменной, что позволит оплачивать Тариф до его истечения - прибавляя время. Если юзер был удалён из группы, то переменная будет деинициализирована и соответственно будет снова возвращать Системное Время "сейчас".

1.6 Добавьте сообщение которое показывает новую дату подписки.

Например:

📆 Новая дата подписки: %date_var%.

На этом создание базовой формы вашего первого платного Тарифа - завершено.

ЧАСОВЫЕ ПОЯСА

Если часовой пояс вашего бота отличается от Системного Времени, то показывать время окончания подписки юзеру нужно с чётом этого различия.
Вариант 1 - с использование Часового Пояса Бота:
{dt_add("%date_var%", %timezone%)}
Где %timezone% - это Системный Макрос часового пояса заданного для бота.

Если в вашем боте международная аудитория и у каждого из них свой часовой пояс, вы можете отображать время с учётом заданного ими самим отличия. Создайте в Цифровую Переменную в которой при помощи Формы с Вводом Переменной попросите их задать свой часовой пояс UTC.
Вариант 2 - индивидуальный часовой пояс для каждого юзера:
{dt_add("%date_var%", %mytimezone%)}
Где %mytimezone% - это макрос переменной в которой юзер сохранил свой собственный часовой пояс.

По аналогии вы дальше можете создавать различные тарифы в том числе и БЕСПЛАТНЫЙ ДЕМО ТАРИФ. В бесплатном тарифе, вместо того чтобы списывать средства с Баланса вам нужно будет создать отдельную Числовую Переменную, и при активации Тарифа задать ей значение "1" - это будет означать что юзер уже получил один бесплатный демо режим. При этом на саму кнопку нужно будет поставить условие которое проверяет что ваша числовая переменная равна нулю (не равна единице). С такой механикой, например, можно предоставлять бесплатный тариф несколько раз - увеличивая значение в переменной... Описывать все возможные варианты не имеет смысла.

❖ Создаём Баланс и пополнение Баланса

В своей минимальной форме Баланс - это кнопка с сообщением в котором вы при помощи Макроса переменной показываете состояние переменной balance и как минимум один способ его пополнения. 

Пополнять баланс можно вручную и автоматически.

Вручную (это бесплатно) - через любые ваши локальные или международные платёжные системы. Для этого вы можете создать Форму любой нужной вам сложности.

Автоматические способы пополнения представлены в «Руководстве по автоплатежам» (есть бесплатные способы есть платные).

Надо понимать что Баланс можно пополнять и при помощи раздачи бонусов, создания различных кликеров и тому подобных вещей. Кроме того его можно начислять и вручную за какие-то действия в группе - тут у вас уже будет полная свобода. Изучайте руководства и мануалы, спрашивайте в группах техподдержки.