Repository navigation
2.8.1 — Исправление Platega и защита от повторных начислений
Исправлена обработка новых статусов 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.