Добрый день. Возникла небольшая проблема - бот не видит подтвержденного инвойса. По факту, я прописал все необходимое, создал инвойс, все открывается, но... бот просто не видит даже подтверждения. Платежный модуль: юкасса. Использую Aiogram
Код:
@dp.callback_query_handler(text="oplata")
async def confirm(query: CallbackQuery):
teleid = query.from_user.id
priceord = db.fetchone('SELECT price FROM precheckout WHERE id=?', (teleid,))
await query.answer('Оплатите покупку с помощью банковской карты:',
reply_markup=confirm_markup())
priceord = priceord[0]
str(priceord)+"00"
priceord = int(priceord)
await bot.send_invoice(chat_id=query.from_user.id, title="Оформление заказа", description="Спасибо что выбираете нас!", payload="order", provider_token=YOOTOKEN, currency="RUB", start_parameter="shaverma_bot", prices=[{"label": "Руб", "amount": 15000}])
@dp.pre_checkout_query_handler(IsUser())
async def process_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery):
await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=False or True)
print("aaaa")
@dp.message_handler(content_types=ContentType.SUCCESSFUL_PAYMENT)
async def process_confirm(message: Message):
# enough money on the balance sheet
markup = ReplyKeyboardRemove()
logging.info('Deal was made.')
if message.successful_payment.invoice_payload == "order":
async with state.proxy() as data:
cid = message.chat.id
products = [idx + '=' + str(quantity)
for idx, quantity in db.fetchall('''SELECT idx, quantity FROM cart
WHERE cid=?''', (cid,))] # idx=quantity
db.query('INSERT INTO orders VALUES (?, ?, ?, ?)',
(cid, data['name'], data['address'], ' '.join(products)))
db.query('DELETE FROM cart WHERE cid=?', (cid,))
await message.answer('Ок! Ваш заказ уже в пути \nИмя: <b>' + data['name'] + '</b>\nАдрес: <b>' + data['address'] + '</b>',
reply_markup=markup)
await state.finish()
Заранее спасибо!