@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.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Подозреваю, что async with p2p закрывает соединение с сервисом, с которым ты пытаешься работать. Собственно, with обычно для этого и предназначен - для высвобождения ресурсов.
Либо переоткрывай клиента перед with, либо не используй with.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы