Уроки · Платёж и его статус
Как потерянный ответ может привести к повторной выплате
Представим обычную ситуацию: программа отправляет деньги, но подтверждение не приходит. Получатель, возможно, уже получил платёж. Отправитель видит только зависший статус. Можно ли нажать «отправить ещё раз»?
РЕДАКЦИОННЫЙ ОБЗОР · Подготовлен редакцией проекта на основе указанных источников.
Между платежом и сведениями о нём
В октябре 2026 года разработчики BTCPay Server исправили ошибку именно на этой границе — между самим платежом и сведениями о нём.
BTCPay сохранял идентификатор Lightning-выплаты, чтобы впоследствии уточнить её состояние. Однако если очередной запрос не находил платёж, программа могла отменить запись о выплате и удалить сохранённые сведения. Отсутствие ответа фактически превращалось в утверждение: платёж не состоялся.
Исправление приняли в основную ветку 19 октября. Теперь при таком неопределённом результате выплата с сохранённым идентификатором остаётся в процессе, чтобы её можно было проверить позднее. Это не означает, что изменение уже установлено у каждого пользователя.
Повторить запрос — не значит повторить платёж
В предварительном обсуждении описан проверочный сценарий: платёжная система сохраняет завершённую операцию, но ответ обрывается. Последующая проверка тоже не даёт результата. Когда связь восстанавливается, исходная операция снова обнаруживается как завершённая.
Это был локальный тест без настоящих платежей, а не сообщение о подтверждённой краже. Но он показывал, почему исчезновение записи нельзя считать доказательством неудачи.
У осторожного решения есть неудобство: неопределённая выплата может оставаться незавершённой долго. Администратору приходится разбираться, вместо того чтобы получить красивую зелёную галочку.
В данном случае эта неопределённость честнее простого ответа. Иногда системе необходимо сохранить третье состояние: деньги не обязательно потеряны, платёж не обязательно провалился — мы пока не знаем.
Источники и проверка
Разбор исправления программного учёта, а не сообщение о подтверждённом хищении. Принятие изменения в основную ветку не означает его наличие во всех установках.
Если не указано иное, текст, выводы, структура и редакционная компоновка созданы редакцией проекта. Факты, цитаты и материалы источников принадлежат их авторам и правообладателям.
← Вернуться к рубрике