Найти тему
Qorred

Python telegram bot (Aiogram 3). Функция оплаты

Функция оплаты выглядит следующим образом.

При вводе команды '/buy' мы получаем форму оплаты в боте с названием, описанием и инлайн кнопкой 'заплатить'

-2

После нажатия на 'заплатить' открывается окно с более подробным описанием.

-3

За название и описание отвечают след. строки кода

Если title, description = '' , то мы получим ошибку 
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: parameter "title" is required
Если title, description = '' , то мы получим ошибку aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: parameter "title" is required

provider_token - это токен ю-кассы(в данном примере). Получаем в @BotFather

Цену и стоимость заполняем тут:

Цена указана в копейках в коде.
Валюту заполняем так - currency='rub'
Цена указана в копейках в коде. Валюту заполняем так - currency='rub'

Далее идет поле с чаевыми. Задаем максимальное количество чаевых: max_tip_amount=5000

И после этого создаем список с чаевыми(также в коп.)

-6

После нажатия кнопки 'заплатить', попадаем сюда

Заполняем данные и жмем заплатить
Заполняем данные и жмем заплатить

Если после ввода тестовых данных не удается оплатить значит проблема в устаревших тестовых данных обновите через @BotFather номер карты.

Ошибки:
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: PAYMENT_PROVIDER_INVALID - неправильный токен ю-кассы. сбера и т.д.
Сумма тестовой оплаты ограничена
Без функции pre_checkout_query вы не получите чек при оплате.
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: CURRENCY_INVALID не правильно заполнено поле валюты.
Обычно после
Telegram server says - Bad Request: название ошибки , ничего сложного. Очень важно правильно научиться читать и работать с ошибками.