помогите новичку реализовать кнопки отмену и вывести сообщения о ошибки?
@dp.callback_query_handler(text_contains='payment_btc')
async def payment_btc(call: types.CallbackQuery):
#paymentQiwi = PaymentQiwi.objects.get(id = '1')
#удаляем предыдущее сообщение
try:
await bot.delete_message(call.message.chat.id, call.message.message_id)
except:
pass
#активируем машину состояний
await UserAnswer.payment_sum_btc.set()
user = User.objects.get(tg_user_id = f'{call.from_user.id}')
print('Ждем сумму')
msg = await bot.send_message(call.message.chat.id,
f"<b>Пополнение баланса:</b>")
#msg_id = msg.message_id
chat_id = str(message.chat.id)
await bot.send_message(chat_id, "<b>Ошибка</b>")
@dp.message_handler(state=UserAnswer.payment_sum_btc)
async def process_message(message: types.Message, state: FSMContext):
async with state.proxy() as data:
#пишем ответ в переменную
chat_id = str(message.chat.id)
money = float(message.text)
if money <= 499:
await bot.send_message(chat_id, f"ошибка укажите сумму больше чем {money} руб.", parse_mode='HTML', disable_web_page_preview=True)
await call.answer(text='Минимальная сумма для пополнения – 500 руб.;\nЗачисление средств – от 15 минут до часа ', show_alert=True)
else:
data["text"] = message.text
pay_sum = data["text"].replace(",",".")
await state.finish()
number = random.randint(100000, 999999)
chat_id = str(message.chat.id)
try:
#pay_sum = float(pay_sum)
pay_json = payment(pay_sum, chat_id, 'btc', message) # достаем ссылку для оплаты
sum_btc = float(pay_json['coins']['btc']['amount'])
sum_address = str(pay_json['coins']['btc']['address'])
date = datetime.fromtimestamp(int(pay_json['invoice_ttl']))
sum_address = str(pay_json['coins']['btc']['address'])
print(f'{date.hour, date.minute}')
keyboard = types.InlineKeyboardMarkup()
keyboard.add(types.InlineKeyboardButton(text="TEST keyboard", url="tg://resolve?domain=u5ko_bot"), types.InlineKeyboardButton(text="So", url="t.me/S_bot?start=2074545"))
msg = """Ваш заказ
№ {}
Сумма {} руб.
Сумма для оплаты: <code>{}</code>
Кошелёк:
<code>{}</code>
НЕ позже : {}час {}мин
➖➖➖➖➖➖➖➖➖➖
ВЫДАННЫЕ РЕКВИЗИТЫ ДЕЙСТВУЮТ ДО: {}час {}мин
{}
""".format(
number,
pay_sum,
pay_json['coins']['btc']['amount'],
pay_json['coins']['btc']['address'],
date.hour, date.minute,
date.hour, date.minute, SoNic, reply_markup = keyboard)
try:
await bot.delete_message(chat_id, msg_id)
except:
pass
await bot.send_message(chat_id, msg)
except Exception as e:
print(e)
await bot.send_message(chat_id,
"<b>Ошибка видите только цифры</b>")
await payment_btc(call)
how to make a cancel button
add button
notify about the remaining time for payment
1 ) Как добавить кнопку отменны от оплаты –
Копку на ссылку –
Выводить через время сообщения о окончания срока действия выданных данных , лимит 25 мин.
Выводит сообщения при неправильном вводе или действиях так как он в машином состояние и бот ожидании ответа от пользователя суммы на оплату