Telegram Stars в боте: попробовал прикрутить, делюсь что удивило
Давно хотел добавить платежи в одного из своих ботов. Раньше использовал ЮKassa через нативный Telegram Payments. Но в этот раз решил попробовать Stars, всё-таки нативная валюта платформы, без внешних провайдеров.
Настройка оказалась проще чем ожидал. Никаких provider_token, никакой возни с webhook от платёжки. Просто отправляешь инвойс с указанием суммы в Stars и обрабатываешь successful_payment. Примерно так:
python
await bot.send_invoice( chat_id=message.chat.id, title="Премиум доступ", description="Доступ на 30 дней", payload="premium_30d", currency="XTR", prices=[LabeledPrice("30 дней", 100)] )
Работает. Пользователь платит не выходя из Telegram, конверсия реально выше чем при редиректе на внешнюю страницу.
Но есть нюансы которые я не учёл сразу.
Первое: если пользователь покупал Stars через iOS или Android, Telegram отдаёт разработчику примерно 70% от суммы, остальное Apple и Google забирают себе. Если через десктоп или веб — почти всё твоё. Это принципиально меняет экономику для аудитории которая сидит на телефоне.
Второе: возвраты. Stars можно вернуть и Telegram это делает по запросу пользователя. Нужно обрабатывать refunded_payment иначе пользователь получит деньги обратно а доступ у него останется.
Третье: вывод только через Fragment в TON. Для российского юрлица это отдельная история.
В целом для цифровых товаров и небольших сумм Stars удобнее чем внешние платёжки. Но если оборот серьёзный или нужен рублёвый вывод, ЮKassa всё ещё выглядит надёжнее.
Кто уже работает со Stars в продакшене, как решаете вопрос с выводом в рубли?
