Как сопоставлять платежи с заказами по явным правилам

Основное сопоставление выполняется по ID заказа с дополнительной проверкой суммы, валюты и статуса платежа. Одинаковой суммы недостаточно: без надёжного ключа запись остаётся неразобранной.

Короткий ответ

Что ответить на собеседовании

Основное сопоставление выполняется по ID заказа с дополнительной проверкой суммы, валюты и статуса платежа. Одинаковой суммы недостаточно: без надёжного ключа запись остаётся неразобранной.

Подробный разбор

Ответ с пояснениями

Условие

В системе есть заказы с ID, суммой в копейках и валютой и входящие записи провайдера с payment_id и order_id. Предложите правило сопоставления. Что делать, если совпала сумма, но нет надёжного ID заказа?

Ответ

Основное сопоставление выполняется по ID заказа с дополнительной проверкой суммы, валюты и статуса платежа. Одинаковой суммы недостаточно: без надёжного ключа запись остаётся неразобранной.

Алгоритм:

  1. Проверить подлинность источника и уникальность payment_id.
  2. Найти заказ по переданному order_id и убедиться, что он относится к нужному магазину.
  3. Сопоставить валюту и точную целочисленную сумму с сохранёнными условиями заказа.
  4. Применить допустимый переход состояния только по подтверждённому статусу провайдера.

Если заказ не найден, значения расходятся или несколько записей претендуют на одно соответствие, нужна сверка, а не угадывание. Имя клиента и близкое время могут помогать оператору, но не являются достаточным доказательством. Повторный webhook с тем же payment_id должен давать тот же результат без повторного начисления. Возвраты и частичные платежи требуют отдельных правил.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее