Кнопка - оплатить с Баланса
В этом пособии мы создадим кнопку оплаты чего либо. Оплата будет происходить с Баланса в вашем боте, поскольку этот функционал доступен всем по умолчанию.
Создание подобной кнопки оправдано, в случае если это единичный кейс продажи чего-либо в вашем проекте, некая конкретная функция основанная на такой же механике или способ для вас освоить принципиальный подход - в остальных случаях, проще воспользоваться функционалом «Магазина» - там процесс платы автоматизирован и формализован.
КЕЙС: Пользователь хочет совершить покупку в вашем боте. Кнопка, при помощи Условия, должна проверить наличие средств на Балансе пользователя. Если средств не достаточно - показать сообщение об ошибке. Если достаточно, то списать заданную админом сумму и выполнить действие по Команде.
При составлении пособия, мы исходим из того что функционал позволяющий юзеру пополнить Баланс уже существует. Вопросы пополнения баланса рассматриваются тут:
• Руководство: «Автоплатежи и вывод средств»
• Пособие: «Кастомная Форма - запрос на ручной приём платежа»
НЕОБХОДИМЫЕ ЗНАНИЯ:
Создание кнопки: Руководство по Базовым Функциям.
Добавление сообщения в кнопку: Руководство по Базовым Функциям.
Баланс пользователя в боте: Баланс и Редактор Переменных.
Работа с Action-ами: руководство по Action-ам.
Работа с Условиями: руководство по Условиям.
Использование Макросов: руководство по Макросам.
❖ Приобретение функционала
Весь функционал приобретается В ВАШЕМ БОТЕ, для этого перейдите в свой бот:☞ 🔐Админ | 🧩Расширения
ВАЖНО: Приобретение функционала для бота доступно только Создателю (владельцу) бота. Админы покупать функционал - НЕ МОГУТ!
Вам понадобится:
1. Action-ы - 2 штуки☞ 🔐Админ | 🧩Расширения | 📂Action-ы
2. Условия для кнопок☞ 🔐Админ | 🧩Расширения | 📂Кнопки
3. Макросы и выражения для кнопок☞ 🔐Админ | 🧩Расширения | 📂Кнопки
❖ Создание кнопки оплаты
1. Создайте саму кнопку
Эту кнопку должен будет нажать юзер чтобы произошло списание средств.
Перейдите в вашем боте:
☞ Редактор Кнопок > Добавить Кнопку.
• Введите Имя для новой кнопки.
• Отправьте Имя Боту.
Руководство по созданию кнопки: «Руководство по Базовым Функциям».
2. Добавьте Условие для кнопки
Условие будет проверять достаточно ли средств на Баланса пользователя и показывать сообщение об ошибке.
Перейдите в вашем боте:
☞ Редактор Кнопок
• Зайдите в «Настройки кнопки» нажав на кнопку со звёздочкой ("*"):
• Нажмите: «Назначить Условие».
• Введите само Условие:
Пример условия: {%balance% >= 100} ➨ Это условие означает что что Баланс юзера должен быть больше или равен 100.
• Введите сообщение об ошибке (будет показано, если средств на балансе не достаточно):
Пример сообщения ошибки:
"Недостаточно средств.
Стоимость: 100 RUB
Баланс: %balance% RUB"
Руководство по использованию Условий: «Условия».
3. Добавьте Action-ы списания и выполнения Команды
Если проверка Условия показала что средств на Балансе достаточно, можно их списывать и выполнять нужно действие (саму продажу). Для этого нам понадобятся 2 Action-а.
3.1 Списываем средства с Баланса в качестве оплаты
Не выходя из Настроек кнопки и «Редактора Кнопок» (если вышли зайдите снова):
• Нажимаем «Назначить Pre-Action».
• Выбираем «Action Чисел» (это будет наш первый Action в цепочке).
• Указываем переменную для изменения (списания) - в нашем случае это "balance".
• Указываем способ: «Изменить Значение».
• Вводим значение - в нашем случае нужно списать, поэтому "-100" (минус сто).
• Условие НЕ задаём (всё что нужно мы же проверили ранее на уровне самой кнопки).
• Сообщение о срабатывании задавайте не своё усмотрение (можно сообщить юзеру что средства были списаны).
3.2 Вызываем функцию которая выполняет то за что было заплачено
В зависимости от того что вы продаёте, саму "Функцию Продажи" можно поместить и в этой же кнопке (при помощи таких же Action-ов), но для демонстрации концепции, когда функция продажи может быть комплексной и содержать действия затрагивающие как самого Юзера, так и Админа и данные Бота, нагляднее и удобнее помещать её в отдельной кнопке и обращаться по команде из любого места.
Не выходя из Настроек кнопки и «Редактора Кнопок» (если вышли зайдите снова):
• Нажимаем «Назначить Pre-Action».
• Выбираем «Action Команд» (это будет наш второй Action в цепочке).
• Задаём команду той кнопки где у нас расположена созданная нами функция продажи чего-либо.
Пример команды: "/sell_item1" (настройки исполнения самого Action-а оставляйте на своё усмотрение).
• Условие НЕ задаём
В нашем случае Условие не нужно, однако технически вы можете вызывать разные функции в зависимости от каких-то факторов, проверяя в Условии данные в переменных юзера - при выполнении одного условия вы можете вызвать одну функцию, при выполнении другого - другую (или вообще вызывать дополнительные функции в зависимости от условий).
Руководство по Action-ам: «Action-ы».