Напиши скрипт на оплату в тг боте, только используя мой пример скрипт, но используя биолеотеку pyTelegramBotAPI, также сделай выбор оплаты 1. СБП 2. Банковская карта (СБП и банковская карта это юкассу создай платёж с помощью скрипта ниже и также автоматическую проверку и выдачу подписки Sub переменная) 3. Telegram Stars (сделай чтобы в боте можно оплатить звёздами, если надо где-то регаться, напиши как) также можно отменить платеж (кнопка инлайн, когда нажимаешь удаляется сообщение).
import uuid, randomfrom yookassa import Configuration, Payment 
idempotence_key = str(uuid.uuid4())    payment = Payment.create({
        "amount": {            "value": update.message.text,
            "currency": "RUB"        },
        "capture": True,        "confirmation": {
            "type": "redirect",            "return_url": f"https://t.me/{update.get_bot().username.lstrip('@')}"
        },        "description": "Пополнение баланса в чат-боте",
        "metadata": {            "order_id": str(random.randint(100000, 999999))
        },        "receipt": {
            "customer": {                "email": "goblingebniu@gmail.com"
            },            "items": [
                {                    "description": "Пополнение баланса",
                    "quantity": 1,                    "amount": {
                        "value": update.message.text,                        "currency": "RUB"
                    },                    "vat_code": 1
                }            ]
        }    }, idempotence_key)
    payment_result_keyboard = [
        [InlineKeyboardButton("💳 Оплатить", url=payment.confirmation.confirmation_url), InlineKeyboardButton("✅ Проверить", callback_data=f'check_payment:{payment.id}')],        [InlineKeyboardButton("⬅️ Назад", callback_data='account')]
    ]
    await update.message.reply_text(        payment_result_text.format(update.message.text), 
        reply_markup=InlineKeyboardMarkup(payment_result_keyboard), 
        parse_mode=constants.ParseMode.MARKDOWN_V2    )
    return ConversationHandler.END
async def end_payment(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.callback_query.answer()    await account_callback(update, context)
    return ConversationHandler.END
async def check_payment_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):    await update.callback_query.answer()
    target_id = update.callback_query.data.split(':')[1]
    res = Payment.find_one(target_id)
    if res.status == 'succeeded':        db.add_balance(update.effective_user.id, int(res.amount.value))
        await update.effective_chat.send_message(
            f"✅ *Оплата прошла успешно\\!*\nВаш баланс был пополнен на {int(res.amount.value)}₽",             reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("❌ Закрыть", callback_data='close')]]), 
            parse_mode=constants.ParseMode.MARKDOWN_V2        )
    else:        await update.effective_chat.send_message(
            "❗ *Ваш платеж не был найден\\!*\nПопробуйте подождать некоторое время\\. Если проблема останется, обратитесь в поддержку",             reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("📝 Написать в поддержку", callback_data='write_support')],[InlineKeyboardButton("❌ Закрыть", callback_data='close')]]), 
            parse_mode=constants.ParseMode.MARKDOWN_V2        )
async def purchase_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.callback_query.answer()