Skip to Content

Рекомендации

ЧтоПочему
Считайте коллбеки повторяемыми и дедуплицируйте по идентификатору события (id, в прежнем конверте — event_id)Одно событие может прийти несколько раз; идентификатор между попытками не меняется, номер попытки лежит отдельно
Не полагайтесь на коллбек как на единственный источник состоянияПосле седьмой неуспешной попытки доставка прекращается — дальше расписание вышло бы за минутное окно песочницы. Состояние всегда доступно опросом GET /invoices/{invoice_id}
Ветвитесь по error.code, а не по тексту messageТекст сообщения не является частью контракта и может измениться
Храните и invoice_id, и merchant_order_idПервый — ключ на стороне платформы, второй — ваш; искать инвойс можно по обоим
Держите обработчик коллбеков быстрымОтвечайте 2xx сразу, тяжёлую работу уносите в очередь: отправитель ждёт ответа ограниченное время и считает таймаут неуспехом
Закрывайте инвойс, прежде чем создавать следующий тому же клиентуПока предыдущий не закрыт, новый заказ получит 409 с id существующего в error.details.invoice_id: прочитайте его или отмените. Так ведёт себя и песочница, и бой
Проверяйте оба исхода регулярных списанийПесочные значения SuccessSequencePayment и FailedSequencePayment позволяют прогнать и отказ по контракту, не дожидаясь его в бою
Не используйте демо-доступы за пределами песочницыДемо-логин общий для всех, кто открыл эту страницу: ваши тестовые операции видны другим, а чужие — вам