Skip to content

2.8.1 — Исправление Platega и защита от повторных начислений

Choose a tag to compare

@bruhxax bruhxax released this 28 Oct 18:33
· 53 commits to main since this release

Исправлена обработка новых статусов Platega и усилена защита от повторной выдачи покупки.

  • DISPUTED принимается без отмены уже выданной услуги и без сброса отметки об оплате. Повторный CONFIRMED после завершения спора не начисляет подписку, подарок, устройства или трафик повторно.
  • PARTIALLY_REFUNDED и события подписок не запускают выдачу покупки. CANCELED и CHARGEBACKED отменяют только ещё не исполненные покупки; ранее выданная услуга автоматически не отзывается.
  • Запоздавший вебхук отмены больше не может перезаписать оплаченное состояние: условие проверяется атомарно в базе. Сохранённый paid_at также защищает от повторной выдачи, если статус покупки ранее был перезаписан.
  • Сохранены проверка X-MerchantId / X-Secret, поиск покупки по ID транзакции и существующая блокировка исполнения между экземплярами бота. Добавлена проверка наличия ID транзакции.

Проверено: полный набор Go-тестов, отдельный интеграционный тест на изолированной базе PGlite со всеми миграциями, цепочки повторных статусов и запоздавшая отмена, сборка Linux amd64. Реальные платежи не выполнялись.

Новых настроек и миграций не требуется. Для обновления существующей установки:

cd /opt/Link-Bot
bash ./update.sh

Протокол Platega: https://docs.platega.io/disputed-46157462e0 и https://docs.platega.io/confirmed-29209725e0.