Если не верный раздел, переместите(На коленях извиняюсь заранее) Вообще-м нужно что-бы бот создавал уникальные ссылки, при переходе на которые, открываются сделки, так вот у меня какого-то черта, срабатывает просто команда /start, без уникального айди который присвоился к сделке, может есть тут какой-то смышленый парень, который в силах мне помочь? Фулл Код могу закинуть при обращении в личные сообщения. def get_main_menu(): return InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Создать сделку", callback_data="create_deal")], [InlineKeyboardButton(text=" Вернуться в меню", callback_data="back_to_menu")] ]) @router.callback_query(lambda c: c.data == "create_deal") async def start_deal(callback_query: CallbackQuery): deal_menu = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Карта", callback_data="deal_card")], [InlineKeyboardButton(text=" Ton-кошелек", callback_data="deal_ton")], [InlineKeyboardButton(text=" Вернуться в меню", callback_data="back_to_menu")] ]) await callback_query.message.edit_text( " Выберите метод выплаты:", reply_markup=deal_menu ) @router.callback_query(lambda c: c.data.startswith("deal_")) async def set_deal_method(callback_query: CallbackQuery): method = "UAH" if callback_query.data == "deal_card" else "TON" user_context[callback_query.from_user.id] = {"method": method} await callback_query.message.edit_text( f" Создание сделки\n\nВведите сумму ({method}) сделки в формате: 100.5:", reply_markup=get_back_button() ) @router.message(lambda message: message.from_user.id in user_context and "method" in user_context[message.from_user.id]) async def set_deal_amount(message: Message): try: amount = float(message.text) user_context[message.from_user.id]["amount"] = amount await message.answer( " Укажите, что вы предлагаете в этой сделке:\n\nПример: 10 Кепок и Пепе...", reply_markup=get_back_button() ) except ValueError: await message.answer(" Некорректный формат суммы. Попробуйте ещё раз.") @router.message(lambda message: message.from_user.id in user_context and "amount" in user_context[message.from_user.id]) async def set_deal_description(message: Message): description = message.text user_context[message.from_user.id]["description"] = description deal_id = str(uuid.uuid4()) user_context[message.from_user.id]["deal_id"] = deal_id deal_link = f"https://t.me/YdaleniiSoo_bot?start={deal_id}" await message.answer( f" Сумма: {user_context[message.from_user.id]['amount']} {user_context[message.from_user.id]['method']}\n" f" Описание: {description}\n" f" Ссылка для покупателя: {deal_link}\n\n" "Вы можете отменить сделку, нажав кнопку ниже.", reply_markup=InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Отменить сделку", callback_data=f"cancel_deal_{deal_id}")], [InlineKeyboardButton(text=" Вернуться в меню", callback_data="back_to_menu")] ]) ) @router.callback_query(lambda c: c.data.startswith("cancel_deal_")) async def cancel_deal(callback_query: CallbackQuery): deal_id = callback_query.data.split("_")[-1] confirmation_menu = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Да", callback_data=f"confirm_cancel_{deal_id}")], [InlineKeyboardButton(text=" Нет", callback_data="back_to_menu")] ]) await callback_query.message.edit_text( "Вы готовы отменить данную сделку?", reply_markup=confirmation_menu ) @router.callback_query(lambda c: c.data.startswith("confirm_cancel_")) async def confirm_cancel_deal(callback_query: CallbackQuery): await callback_query.message.edit_text( " Сделка успешно отменена.", reply_markup=get_main_menu() ) @router.callback_query(lambda c: c.data.startswith("start_")) async def buyer_joined(callback_query: CallbackQuery): deal_id = callback_query.data.split("_")[-1] seller_id = ... await bot.send_message( seller_id, f"Пользователь @{callback_query.from_user.username} (ID: {callback_query.from_user.id}) " f"присоединился к сделке #{deal_id}.\n\n" "• Успешные сделки: 0\n Проверьте, что это тот же пользователь, с которым вы вели диалог ранее!" ) await callback_query.message.edit_text( f" Информация о сделке #{deal_id}\n\n" f" Вы покупатель в сделке.\n" f" Продавец: {seller_id}\n" "• Вы покупаете: Описание предложения\n\n" " Адрес для оплаты: Способ выплаты продавца\n" " Сумма к оплате: Сумма сделки\n" " Комментарий к платежу (мемо): Z8M9Blrssn\n\n" " Пожалуйста, убедитесь в правильности данных перед оплатой. Комментарий обязателен!", reply_markup=InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Подтвердить оплату", callback_data=f"confirm_payment_{deal_id}")], [InlineKeyboardButton(text=" Выйти из сделки", callback_data="back_to_menu")] ]) ) Python def get_main_menu(): return InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Создать сделку", callback_data="create_deal")], [InlineKeyboardButton(text=" Вернуться в меню", callback_data="back_to_menu")] ]) @router.callback_query(lambda c: c.data == "create_deal") async def start_deal(callback_query: CallbackQuery): deal_menu = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Карта", callback_data="deal_card")], [InlineKeyboardButton(text=" Ton-кошелек", callback_data="deal_ton")], [InlineKeyboardButton(text=" Вернуться в меню", callback_data="back_to_menu")] ]) await callback_query.message.edit_text( " Выберите метод выплаты:", reply_markup=deal_menu ) @router.callback_query(lambda c: c.data.startswith("deal_")) async def set_deal_method(callback_query: CallbackQuery): method = "UAH" if callback_query.data == "deal_card" else "TON" user_context[callback_query.from_user.id] = {"method": method} await callback_query.message.edit_text( f" Создание сделки\n\nВведите сумму ({method}) сделки в формате: 100.5:", reply_markup=get_back_button() ) @router.message(lambda message: message.from_user.id in user_context and "method" in user_context[message.from_user.id]) async def set_deal_amount(message: Message): try: amount = float(message.text) user_context[message.from_user.id]["amount"] = amount await message.answer( " Укажите, что вы предлагаете в этой сделке:\n\nПример: 10 Кепок и Пепе...", reply_markup=get_back_button() ) except ValueError: await message.answer(" Некорректный формат суммы. Попробуйте ещё раз.") @router.message(lambda message: message.from_user.id in user_context and "amount" in user_context[message.from_user.id]) async def set_deal_description(message: Message): description = message.text user_context[message.from_user.id]["description"] = description deal_id = str(uuid.uuid4()) user_context[message.from_user.id]["deal_id"] = deal_id deal_link = f"https://t.me/YdaleniiSoo_bot?start={deal_id}" await message.answer( f" Сумма: {user_context[message.from_user.id]['amount']} {user_context[message.from_user.id]['method']}\n" f" Описание: {description}\n" f" Ссылка для покупателя: {deal_link}\n\n" "Вы можете отменить сделку, нажав кнопку ниже.", reply_markup=InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Отменить сделку", callback_data=f"cancel_deal_{deal_id}")], [InlineKeyboardButton(text=" Вернуться в меню", callback_data="back_to_menu")] ]) ) @router.callback_query(lambda c: c.data.startswith("cancel_deal_")) async def cancel_deal(callback_query: CallbackQuery): deal_id = callback_query.data.split("_")[-1] confirmation_menu = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Да", callback_data=f"confirm_cancel_{deal_id}")], [InlineKeyboardButton(text=" Нет", callback_data="back_to_menu")] ]) await callback_query.message.edit_text( "Вы готовы отменить данную сделку?", reply_markup=confirmation_menu ) @router.callback_query(lambda c: c.data.startswith("confirm_cancel_")) async def confirm_cancel_deal(callback_query: CallbackQuery): await callback_query.message.edit_text( " Сделка успешно отменена.", reply_markup=get_main_menu() ) @router.callback_query(lambda c: c.data.startswith("start_")) async def buyer_joined(callback_query: CallbackQuery): deal_id = callback_query.data.split("_")[-1] seller_id = ... await bot.send_message( seller_id, f"Пользователь @{callback_query.from_user.username} (ID: {callback_query.from_user.id}) " f"присоединился к сделке #{deal_id}.\n\n" "• Успешные сделки: 0\n Проверьте, что это тот же пользователь, с которым вы вели диалог ранее!" ) await callback_query.message.edit_text( f" Информация о сделке #{deal_id}\n\n" f" Вы покупатель в сделке.\n" f" Продавец: {seller_id}\n" "• Вы покупаете: Описание предложения\n\n" " Адрес для оплаты: Способ выплаты продавца\n" " Сумма к оплате: Сумма сделки\n" " Комментарий к платежу (мемо): Z8M9Blrssn\n\n" " Пожалуйста, убедитесь в правильности данных перед оплатой. Комментарий обязателен!", reply_markup=InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text=" Подтвердить оплату", callback_data=f"confirm_payment_{deal_id}")], [InlineKeyboardButton(text=" Выйти из сделки", callback_data="back_to_menu")] ]) )
rofl1ng, перемести. https://lolz.live/forums/830/ Если хочешь заплатить, а проще так ру - программирование - поиск исполнителей
Понюсм, похоже, что проблема может быть связана с тем, как ты обрабатываешь уникальные ссылки и идентификаторы сделок. В твоем коде я не вижу обработки уникальных идентификаторов для сделок, которые могли бы быть переданы через команду `/start`. Чтобы исправить это, тебе нужно убедиться, что при генерации уникальной ссылки ты добавляешь уникальный идентификатор сделки в параметры ссылки. Затем, при обработке команды `/start`, тебе нужно извлечь этот идентификатор и использовать его для настройки контекста пользователя или выполнения других действий. Вот пример, как это может быть реализовано: 1. Генерация уникальной ссылки с идентификатором сделки: def generate_unique_link(deal_id): return f"https://yourboturl.com/start?deal_id={deal_id}" Python def generate_unique_link(deal_id): return f"https://yourboturl.com/start?deal_id={deal_id}" 2. Обработка команды `/start` с параметром `deal_id`: @router.message(commands=['start']) async def start_command(message: Message): deal_id = message.get_args() # Получаем параметры команды if deal_id: # Здесь ты можешь настроить контекст пользователя или выполнить другие действия user_context[message.from_user.id] = {"deal_id": deal_id} await message.answer(f"Сделка с ID {deal_id} начата.") else: await message.answer("Добро пожаловать! Используйте уникальную ссылку для начала сделки.") Python @router.message(commands=['start']) async def start_command(message: Message): deal_id = message.get_args() # Получаем параметры команды if deal_id: # Здесь ты можешь настроить контекст пользователя или выполнить другие действия user_context[message.from_user.id] = {"deal_id": deal_id} await message.answer(f"Сделка с ID {deal_id} начата.") else: await message.answer("Добро пожаловать! Используйте уникальную ссылку для начала сделки.") Убедись, что ты правильно передаешь и обрабатываешь `deal_id` в своих функциях. Если у тебя есть дополнительные вопросы или нужна помощь с конкретной частью кода, дай знать!