Webhook События и предупреждения о ликвидации
Типы событий продавца Webhook, идентификаторы идемпотентности, поля предупреждения о ликвидации и примеры результатов средств.
Эта страница следует Agent Java SDK WEBHOOKS.md при фиксации fa6c7b6. Это обновление предназначено только для документации; новый артефакт SDK, содержащий вспомогательные методы предупреждений, не был выпущен.
Все четыре типа событий используют единый настроенный обратный вызов продавца URL (agents.webhook_url). Отправка по телу event; отдельного предупреждения URL не требуется. В примерах показана структура полезных данных, и их нельзя использовать для внедрения данных в тестовую среду.
События и идемпотентность
Событие предупреждения продавца: liquidation.warning; пользователь WebSocket data.event остается LIQUIDATION_WARNING. Держите два канала разными.
Использованы исторические уведомления продавцов LIQUIDATION_WARNING. Замороженные полезные данные сохраняют свое исходное тело при повторных попытках, поэтому получатели должны распознавать оба имени. Если в существующих бизнес-записях используется префикс ключа предупреждения в верхнем регистре, сохраните исходный ключ или проверьте оба ключа во время миграции, чтобы избежать повторной обработки уведомления.
Текущий WebhookVerifier.idempotencyKey извлекает только orderType:orderId:targetStatus для событий средств и возвращает пустую строку для полезных данных предупреждений. В этом обновлении документации не было выпущено нового артефакта SDK с вспомогательными методами предупреждений. Продолжайте использовать существующий метод verify для проверки необработанного текста предупреждения. После проверки подписи и владения бизнес-код продавца должен распознать оба имени события, подтвердить, что notificationId является строкой положительного десятичного целого числа, и сконструировать liquidation.warning:<notificationId>. Никогда не используйте пустой ключ дедупликации и не требуйте, чтобы предупреждения содержали поля заказа средств.
Сохраните дедупликацию в пределах продавца и области environment и зафиксируйте ее атомарно с помощью бизнес-обработки. Уведомления FIRST / UPGRADE / REMINDER с разными значениями notificationId независимы; не отбрасывайте их, группируя по пользователю, эпизоду или eventType. Пустой ключ означает, что действительный идентификатор не может быть извлечен. SDK возвращает только вспомогательный ключ; он не сохраняет записи и не выполняет бизнес-обработку. Зафиксируйте ту же идентичность с другим телом как конфликт; не перезаписывайте обработанное тело.
Поля и пример предупреждения о ликвидации
Пример результата переноса
Обратные вызовы фондов сохраняют свои существующие типы: orderId и agentId — это числа JSON; amount и platformUserId являются строками. Не применяйте соглашение строки предупреждения agentId к обратным вызовам средств. Чтение больших целых чисел без потери точности, используя целочисленные/десятичные типы. completedAt — это UTC RFC3339; ts — это секунды Unix.
Пример результата разворота
Пример неактивного состояния заказа средств
В этих примерах показан только протокол. Для FAILED, rejectCode, rejectMessage и failReason отражают фактическое отклонение. Само по себе название мероприятия не доказывает, что средства были зачислены.