@RichardDR

Почему то при запуске кода в pycharm срабатывает ошибка 0, и тг бот не реагирует на команды. Как исправить?

import logging

from aiogram import Bot, Dispatcher, executor
from aiogram.types.message import ContentType
from telebot import types

import config

logging.basicConfig(level=logging.INFO)


bot = Bot (token=config.TOKEN)
dp = Dispatcher (bot)

PRICE = types. LabeledPrice(label="Подписка на 1 неcяu", amount=588*180)

@dp.message_handler (commands=["buy"])
async def buy(message: types.Message):
    if config.RAYMENT_TOKEN.split(":")[1] == "TEST":
        await bot.send_message(message.chat.id, "Тестовый платеж")


    await bot.send_invoice(message.chat.id,title="Подписка на бота",description= "Активация подписки на бота на 1 месяц",provider_token=config.PAYMENTS_TOKEN,currency="RUB",is_flexible=False,prices=[PRICE],start_parameter="one-month-subscription",payload="test-invoice-payload")


@dp.pre_checkout_query_handler(lambda query: True)
async def pre_checkout_query (pre_checkout_q: types. PreCheckoutQuery):
    await bot.answer_pre_checkout_query (pre_checkout_q.id, ok=True)


@dp.message_handler(content_types=ContentType.SUCCESSFUL_PAYMENT)
async def successful_payment (message: types.Message):
    print("SUCCESSFUL PAYMENT:")
    payment_info = message.successful_payment.to_python()
    for k, v in payment_info.items():
        print(f"{k} = {v}")


    await bot.send_message(message.chat.id,f"Платëж на суMMY {message.successful_payment.total_amount // 100} {message.succesful_paymeyt.currency} прошел успешно!")



if __name__ == "main":
    executor.start_polling(dp, skip_updates=False)
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Учи азы программирования.
Exit code 0 в практически любой операционной системе означает, что программа завершилась без ошибок. Это относится и к программам на питоне - они завершаются с кодом 0, если выполнение спокойно дошло до конца файла без непойманных исключений. Есть ещё функция sys.exit(), но про неё сам почитаешь.

А в твоём случае ты накосячил в обёртке тела программы. Правильно будет
if __name__ == "__main__":
Тоже советую погуглить и почитать, что это, как работает, и зачем оно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы