Не могу сделать оплату в Telegram боте

Изучаю Python примерно 7 месяцев. Сейчас учусь делать телеграмм ботов. Итак у меня возникла проблема, что я не могу сделать систему оплаты в боте. Прошарил весь интернет, смотрел Youtube ролики, у ChatGPT тоже спрашивал, но ничего не помогает. Вот мой код: Файл bot.py

import asyncio
import logging
from interface import main_kb, subscribers
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from config import API_TOKEN, PROVIDER_TOKEN

logging.basicConfig(level=logging.INFO)

bot = Bot(API_TOKEN, parse_mode="HTML")
dp = Dispatcher()

user_states = {}

user_subscribers = ["подписчики", "подписчики русские", "подписчики с гарантией",
                    "подписчики высокого качества", "подписчики с высоким процентом онлайна",
                    "быстрые подписчики с гарантией",
                    "подписчики для закрытых каналов", "русские подписчики высокого качества",
                    "подпиcчики с премиум аккаунтами",
                    "подписчики с премиум аккаунтами | 50 % русские", "подписчики из сша", "подписчики из англии",
                    "подписчики из армении", "подписчики из грузии", "подписчики из казахстана высокого качества",
                    "подписчики из китая", "подписчики из узбекистана", "подписчики из индии"]


@dp.message(Command("start"))
async def start(message: types.Message):
    await message.answer("Доброго времени суток!\n"
                         "Готовы бустануть свой Telegram канал?\n"
                         "Закажите подписчиков у нас и увидите результат уже сегодня!", reply_markup=main_kb)


@dp.message(lambda message: message.text == "FAQ")
async def faq(message: types.Message):
    await message.answer("<b>Внимательно ознакомьтесь с описанием услуги, наличием по ней гарантии.\n"
                         "Это поможет избежать лишних вопросов в будущем</b>\n\n")
    await message.answer("Какую лучше услугу вы посоветуете купить?\n\n")
    await message.answer("<b>Обычно более дорогие услуги имеют выше качество, но решать все равно только Вам!\n"
                         "Советуем ознакомится с описанием услуг перед заказом, чтобы понять в чем их разница.</b>")
    await message.answer("Что такое 'с гарантией' и 'без гарантии'?")
    await message.answer("<b>Нет гарантий – это самая дешёвая и нестабильная услуга,"
                         "у которой могут быть задержки накрутки до суток, возможны списания\n"
                         "На данную услугу мы не даем гарантию в том, что весь заказанный материал придет к"
                         "Вам на страницу,"
                         "поэтому заказывая услугу, без гарантии, Вы принимаете все вышеуказанные риски на себя.\n"
                         "С гарантией - эта услуга более стабильна в сроках, количестве и,"
                         "если произойдут списания соцсетью накрученного материала,"
                         "Вам нужно будет обратиться в нашу техподдержку с описанием проблемы.\n"
                         "Мы проверим, и если Ваша претензия обоснована, то устраним недочеты и все восстановим.</b>")
    await message.answer("Если подписчики отписываются?")
    await message.answer("<b>Если Вы выбрали услугу «нет гарантии», то списания соц.сетью возможны,"
                         "и мы не даем Вам гарантию на списания.\n"
                         "Если услуга «с гарантией», то напишите в тех.поддержку.\n"
                         "Мы обязательно проверим заказ и исправим недочеты.</b>")
    await message.answer("Тех.поддержка: @I_am_Lenya")


@dp.message(lambda message: message.text == "Накрутить")
async def wind_up(message: types.Message):
    await message.answer("Выберите действие из меню:", reply_markup=subscribers)


@dp.message(lambda message: message.text.lower() in user_subscribers)
async def ask_for_subscribers(message: types.Message):
    await message.answer("Сколько подписчиков тебе надо накрутить?(выберите число, которое нацело делиться на 100)")
    user_states[message.from_user.id] = message.text.lower()


@dp.message()
async def message_handler_one(message: types.Message):
    user_id = message.from_user.id
    if user_id in user_states:
        if message.text.isdigit():
            number_of_subscribers = int(message.text)
            if number_of_subscribers % 100 == 0:
                if user_states[user_id] == "подписчики русские":
                    price = (number_of_subscribers / 100) * 15
                    await message.answer("Для этой услуги если гарантия в 7 дней.")
                    await message.answer("Условия для выполнения заказа:\n\n"
                                         "1. Каналу не менее 3 дней\n\n"
                                         "2. Нет запрещенных слов"
                                         "(связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми"
                                         ", пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n"
                                         "3. За удаленные/переименованные/заблокированные/переведенные"
                                         "в закрытые каналы возвраты не предусмотрены!.\n\n"
                                         "4. Если для вступления нужно подавать заявку,"
                                         "то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 15₽")
                elif user_states[user_id] == "подписчики":
                    price = number_of_subscribers / 10
                    await message.answer("У этой услуги нету гарантии")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 10₽")
                elif user_states[user_id] == "подписчики с гарантией":
                    price = (number_of_subscribers / 100) * 17
                    await message.answer("Для этой услуги есть гарантия в 60 дней")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 17₽")
                elif user_states[user_id] == "подписчики высокого качества":
                    price = (number_of_subscribers / 100) * 24
                    await message.answer("Для этой услуги есть гарантия в 30 дней.")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 24₽")
                elif user_states[user_id] == "подписчики с высоким процентом онлайна":
                    price = (number_of_subscribers / 100) * 35
                    await message.answer("У этой услуги нету гарантии")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 35₽")
                elif user_states[user_id] == "быстрые подписчики с гарантией":
                    price = (number_of_subscribers / 100) * 26
                    await message.answer("Для этой услуги есть гарантия в 50 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 26₽")
                elif user_states[user_id] == "подписчики для закрытых каналов":
                    price = (number_of_subscribers / 100) * 27
                    await message.answer("Для этой услуги есть гарантия в 30 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 27₽")
                elif user_states[user_id] == "русские подписчики высокого качества":
                    price = (number_of_subscribers / 100) * 35
                    await message.answer("Для этой услуги есть гарантия в 30 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 35₽")
                elif user_states[user_id] == "подпиcчики с премиум аккаунтами":
                    price = (number_of_subscribers / 100) * 212
                    await message.answer("Для этой услуги есть гарантия в 30 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 212₽")
                elif user_states[user_id] == "подписчики с премиум аккаунтами | 50 % русские":
                    price = (number_of_subscribers / 100) * 482
                    await message.answer("Для этой услуги есть гарантия в 30 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 482₽")
                elif user_states[user_id] == "подписчики из сша":
                    price = (number_of_subscribers / 100) * 37
                    await message.answer("Для этой услуги есть гарантия в 15 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 37₽")
                elif user_states[user_id] == "подписчики из англии":
                    price = (number_of_subscribers / 100) * 32
                    await message.answer("Для этой услуги есть гарантия в 7 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 32₽")
                elif user_states[user_id] == "подписчики из армении":
                    price = (number_of_subscribers / 100) * 152
                    await message.answer("Для этой услуги есть гарантия в 60 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 152₽")
                elif user_states[user_id] == "подписчики из грузии":
                    price = (number_of_subscribers / 100) * 132
                    await message.answer("Для этой услуги есть гарантия в 60 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 132₽")
                elif user_states[user_id] == "подписчики из казахстана высокого качества":
                    price = (number_of_subscribers / 100) * 132
                    await message.answer("У этой услуги нету гарантии")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 132₽")
                elif user_states[user_id] == "подписчики из китая":
                    price = (number_of_subscribers / 100) * 32
                    await message.answer("У этой услуги нету гарантии")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 32₽")
                elif user_states[user_id] == "подписчики из узбекистана":
                    price = (number_of_subscribers / 100) * 132
                    await message.answer("Для этой услуги есть гарантия в 60 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 132₽")
                elif user_states[user_id] == "подписчики из индии":
                    price = (number_of_subscribers / 100) * 25
                    await message.answer("Для этой услуги есть гарантия в 30 дней!")
                    await message.answer("Условия для выполнения заказа:\n\n1. Каналу не менее 3 дней\n\n2. Нет запрещенных слов (связанных с 18+, политикой, оружием, наркотиками, скамом, азартными играми, пирамидами, ставками, вебкамом, порно, криптой и тд)\n\n3. За удаленные/переименованные/заблокированные/переведенные в закрытые каналы возвраты не предусмотрены!.\n\n4.Если для вступления нужно подавать заявку, то услуга может не сработать, гарантию на подобные каналы мы не даем!")
                    await message.answer("Стоимость за каждые 100 подписчиков: 25₽")
                else:
                    await message.answer("Вы ничего не выбрали из списка")
                await message.answer(f"Стоимость выполнения услуги: {price}₽")
            else:
                await message.answer("Количество подписчиков должно быть кратно 100.\n"
                                     "Пожалуйста, введите корректное значение. Нажмите /start, чтобы попробовать ещё раз.")
            del user_states[user_id]
        else:
            await message.answer("Пожалуйста, введите корректное число подписчиков")
    else:
        pass


async def main():
    await bot.delete_webhook(drop_pending_updates=True)
    await dp.start_polling(bot)


if __name__ == "__main__":
    asyncio.run(main())

Файл interface.py

from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

main_kb = ReplyKeyboardMarkup(
    keyboard=[
        [
            KeyboardButton(text="FAQ")
        ],
        [
            KeyboardButton(text="Накрутить")
        ]
    ],
    resize_keyboard=True
)


subscribers = ReplyKeyboardMarkup(
    keyboard=[
        [
            KeyboardButton(text="Подписчики"),
            KeyboardButton(text="Подписчики Русские")
        ],
        [
            KeyboardButton(text="Подписчики с гарантией"),
            KeyboardButton(text="Подписчики высокого качества")
        ],
        [
            KeyboardButton(text="Подписчики с высоким процентом онлайна"),
            KeyboardButton(text="Быстрые подписчики с гарантией")
        ],
        [
            KeyboardButton(text="Подписчики для закрытых каналов"),
            KeyboardButton(text="Русские подписчики высокого качества")
        ],
        [
            KeyboardButton(text="Подписчики с премиум аккаунтами"),
            KeyboardButton(text="Подписчики с премиум аккаунтами | 50 % русские")
        ],
        [
            KeyboardButton(text="Подписчики из США"),
            KeyboardButton(text="Подписчики из Англии")
        ],
        [
            KeyboardButton(text="Подписчики из Армении"),
            KeyboardButton(text="Подписчики из Грузии")
        ],
        [
            KeyboardButton(text="Подписчики из Казахстана высокого качества"),
            KeyboardButton(text="Подписчики из Китая")
        ],
        [
            KeyboardButton(text="Подписчики из Узбекистана"),
            KeyboardButton(text="Подписчики из Индии")
        ]
    ],
    one_time_keyboard=True
)

Файл config.py

API_TOKEN = "MY_API_KEY"
PROVIDER_TOKEN = "MY_PROVIDER_TOKEN"

Помогите пожалуйста!!!


Ответы (0 шт):