Сборка gift-settings-repeat
Второй вызов принимался за повтор первого
Изменяющие методы бизнес-подключения удавались один раз, а на втором вызове отвечали ошибкой сервера.
- ~Изменяющие методы бизнес-подключения можно вызывать повторно. Раньше второй вызов по тому же аккаунту отвечал
500с текстом «gift operation failed». - ~Заметнее всего на
setBusinessAccountGiftSettings: вернуть настройки к прежним значениям было нельзя, потому что именно такое сочетание уже применялось. - ~Защита от двойного выполнения осталась. Повтор с тем же
idempotency_keyпо-прежнему не делает работу дважды, и потерянный ответ не приводит к списанию звёзд второй раз.
Внутри у каждой такой операции есть номер, по которому сервер отличает новый вызов от повторной доставки уже выполненного. У методов бизнес-подключения этот номер не заполнялся, поэтому все они выглядели как одна и та же операция, и вторую сервер отклонял как уже сделанную. Теперь номер берётся из самой операции: разные вызовы различаются, а повторная доставка одного вызова остаётся повтором.
Затронутые методы