Skip to content

Донат в боте и админке биллинга - #374

Merged
spacesarmat merged 12 commits into
mainfrom
cursor/donate-telegram-6987
Nov 12, 2026
Merged

spacesarmat merged 12 commits into
mainfrom
cursor/donate-telegram-6987

Conversation

@spacesarmat

@spacesarmat spacesarmat commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Что сделано

Донат на любую сумму в @OMPBILLINGBOT и лента в админке биллинга. Подписку не продлевает и реферальные бонусы не меняет.

  • Кнопка «Поддержать проект» и команда /donate. Суммы 100/300/500/1000 и «Своя сумма» с мин/макс из админки. ЮMoney (кошелек и карта, комиссия как у оплаты), Telegram Stars по курсу «рублей за звезду», Crypto Pay. Комментарий необязательный. Имя в списке благодарностей по умолчанию скрыто. После оплаты бот шлет текст из админки.
  • Отдельный платеж с меткой don:. В таблицу подписочных payments не пишется, поэтому начисление рефералки его не видит. Подпись вебхука и проверка суммы те же, что у оплаты. Один operation id - один донат.
  • Админка, вкладка «Донаты»: время МСК, кто, сумма, способ, комментарий, статус. Фильтры, итоги за день/неделю/месяц, график 30 дней, средний чек, топ, CSV, отметка возврата, скрытие имени и комментария. Уведомление админу о каждом донате и/или от порога. Флаг и каждый способ выключены по умолчанию.
  • Значок «Поддержал» и публичный список - на экране аккаунта телефона и компьютера (/v1/me и GET /v1/thanks). Сайт omp-player.online не трогал: он статический и выкатывается отдельно, а аккаунт уже читает биллинг.
  • Миграция 012_donations. На main на момент ветки последняя миграция - 011_referral.

Запуск

Новых секретов нет: ЮMoney, Stars и Crypto Pay берут уже заданные кошелек, токен бота и CRYPTO_PAY_TOKEN. После деплоя биллинга включить флаг и нужные способы во вкладке «Донаты». Деплой на NUC и релиз не делались.

Проверка

Локально прогнаны тесты биллинга (635, Postgres 16) и сборка админки. Скриншоты диалога бота (тексты из botReply) и вкладки «Донаты».

Диалог доната в боте
Вкладка Донаты в админке

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; the outstanding country-check issue is fixed.

Summary

This PR adds separate donation payments, bot checkout, admin reports, and account thank-you features without extending subscriptions.

Since the previous review:

  • Telegram users can make donations without changing their subscriptions.
  • Billing admins can manage donations and review their totals and activity.
  • The account screen shows supporter status and an opt-in thanks list.

No new actionable issues were found. Tests were reviewed but not run.

Reviews (10) · Last reviewed commit: "Донат: повтор Crypto Pay снова проверяет..." · Reviewed by Greptile

cursoragent and others added 2 commits November 12, 2026 02:46
Отдельный платеж don:, миграция 012, флаг и способы выключены.
Кнопка «Поддержать проект», лента в админке, значок и список в аккаунте.
Подписку и реферальные бонусы не меняет.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Comment thread ops/billing/src/donate.mjs Resolved
Comment thread ops/billing/src/donate.mjs Resolved
Удержанный перевод сохраняется на донате и подтверждается без подписки.
Повтор кнопки шлёт тот же замороженный счёт. Форма и фильтр админки не затирают свежие данные.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
cursoragent and others added 2 commits November 12, 2026 03:02
Если админ печатает, пока сохранение ещё идёт, форма остаётся грязной и не подменяется ответом сервера.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Comment thread ops/billing/src/server.mjs Resolved
cursoragent and others added 2 commits November 12, 2026 03:15
Просроченный счет не отдается снова. Следующее нажатие создает новый.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Comment thread ops/billing/src/donate.mjs Resolved
cursoragent and others added 3 commits November 12, 2026 03:22
Новая ссылка не забывает прежние invoice id. Неудачное сохранение настроек не очищает форму.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Донат Crypto Pay использует cryptoPayCredentials: токен и хост активного режима.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Comment thread ops/billing/src/donate.mjs Resolved
cursoragent and others added 2 commits November 12, 2026 11:13
Черновик в boot() помечен 09:00 UTC, а кнопка живет два часа. После 11:00 счет не создавался.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
Просроченный или живой счет не выдается, если cryptoNonRu и страна RU или пустая.

Co-authored-by: ANDY BUM <spacesarmat@users.noreply.github.com>
@spacesarmat
spacesarmat merged commit ed8da1a into main Nov 12, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants