@sadrui

Что делать, если команда работает только если каждый раз перезапускать бота?

elif interaction.component.custom_id == "Qiwi":
                async with p2p:
                    message = interaction.message
                    global new_bill
                    new_bill = await p2p.bill(lifetime=2)
                    embed = disnake.Embed(title='Ссылка на оплату', color=0x2f3136)
                    embed.add_field(name='Цена:', value='100 рублей')
                    embed.add_field(name="Ссылка:",
                                    value=f'{new_bill.pay_url}',
                                    inline=False)
                    embed.set_footer(text='Если у вас возникает ошибка, то попробуйте оплатить снова немного позже')
                    embed.add_field(name="Время действия счета:",
                                    value=f'5 минут',
                                    inline=False)
                    embed.add_field(name="ID счета:",
                                    value=f'{new_bill.bill_id}',
                                    inline=False)

                    embed.set_author(name=f'{interaction.author.name}#{interaction.author.discriminator}')
                    embedd = disnake.Embed(title='Оплата',
                                           description='нажмите на кнопку ниже',
                                           color=0x2f3136)

                    await interaction.send(embed=embed, ephemeral=True)
                    await message.edit(embed=embedd, components=[
                        Button(disabled=True,
                               custom_id='Qiwi',
                               label="Оплатить вход",
                               style=ButtonStyle.green),
                        Button(custom_id='Qiwip', label='Проверить оплату', style=ButtonStyle.blurple)])

    elif interaction.component.custom_id == "Qiwip":
                async with p2p:

                    await interaction.send(await p2p.check(bill_id=new_bill.bill_id).status)

Вот ошибка:
RuntimeError: Cannot send a request, as the client has been closed.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Подозреваю, что async with p2p закрывает соединение с сервисом, с которым ты пытаешься работать. Собственно, with обычно для этого и предназначен - для высвобождения ресурсов.
Либо переоткрывай клиента перед with, либо не используй with.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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