@KeXaiL

Не получается обработать успешный платёж Юкасса. Что мне нужно сделать?

Добрый день! Не могу разобраться почему не обрабатывается успешный платеж в Юкасса, снизу код там я делаю кнопку при нажатии на которую переносить на сайт с оплатой Юкасса, после успешной оплаты, захожу в телеграмм а действия от моего условия никакого
class YooKassaPaymentProcessor:
    def __init__(self, account_id, secret_key):
        Configuration.account_id = account_id
        Configuration.secret_key = secret_key

    def create_payment(self, amount_value, currency, return_url, capture=True, description=""):
        payment_data = {
            "amount": {
                "value": str(amount_value),
                "currency": currency
            },
            "confirmation": {
                "type": "redirect",
                "return_url": return_url
            },
            "capture": capture,
            "description": description
        }

        payment = Payment.create(payment_data)
        return payment.confirmation.confirmation_url

payment_1 = yookassa_processor.create_payment(amount_value=189.00, currency="RUB", return_url="https://t.me/it_neural_bot", description="Подписка Premium на неделю")

def create_payment_keyboard(amount, callback_data, url):
    keyboard = InlineKeyboardMarkup()
    keyboard.add(InlineKeyboardButton(f"Оплатить ₽{amount}", callback_data=callback_data, url=url))
    return keyboard

buy_premium_weekly_keyboard = create_payment_keyboard(189, "buy_premium_weakly_call", payment_1)

@dp.callback_query_handler(lambda call: call.data == "premium_weekly")
async def callback_buy(call: types.CallbackQuery):
    await bot.send_message(call.message.chat.id, "Текст", reply_markup=buy_premium_weekly_keyboard)

@dp.pre_checkout_query_handler(lambda query: True)
async def process_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery):
    await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True)

@dp.message_handler(content_types=ContentType.SUCCESSFUL_PAYMENT)
async def process_successful_payment(message: types.Message):
    if message.successful_payment.status == "succeeded":
        time_sub = int(time.time()) + days_to_seconds(30)
        db.set_time_sub(message.from_user.id, time_sub)
        await bot.send_message(message.from_user.id, "Вам выдана подписка на месяц!")
    else:
        await bot.send_message(message.from_user.id, "Вам выдана подписка на месяц!")

Буду очень благодарен, если у вас получиться помочь мне.
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
YooMoneyHelp
@YooMoneyHelp
Приветствую! Нужно проверить, включены ли коллбэки в самом магазине, и уходят/принимаете ли вы их успешно на своей стороне. Чтобы в боте сделать настройку, нужно, чтобы бот "знал" статус платежа.
Чтобы все проверить, напишите в официальное сообщество ВК номер вашего магазина/заявки: https://vk.com/yookassa, укажите ссылку на это обращение. Все детально проверим и вернемся к вам с ответом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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