DAILY WAGEHired TodayPaid Today

Новости

Когда система EWA должна остановить транзакцию для проверки

Система EWA должна остановить или удержать транзакцию, пока не подтверждены правильный работник, одобренная работа, актуальная сумма, проверенный счет и отсутствие дубликата. Безопасный принцип — fail-closed: при неопределенности нельзя строить догадки.

Остановка транзакции не является ошибкой

Надежная финансовая система не обязана пропускать все запросы. Остановка нужна при противоречивых или повторно не одобренных данных о работе, счете на проверке, изменившейся сумме, предыдущем ожидающем платеже, признаке дубликата, неясном ответе банка или недоступности критического источника.

Условия остановки транзакции EWA для проверки

Цель — не позволить неопределенности превратиться в реальный денежный ущерб.

Группа 1: данные о работе недостаточно надежны

Остановка требуется, если нет одобренной работы, запись изменена, источники расходятся, возможен дубликат, код учета не соответствует работнику, неясны смена или дата, либо перевод оставил назначение неопределенным. Начисленная стоимость зависит от этих данных.

Группа 2: запрошенная сумма больше не совпадает с сервером

Между просмотром и подтверждением могут измениться данные о работе, пройти другой платеж, вырасти полученная за период сумма, смениться версия политики или резерв. Сервер обязан пересчитать лимит и не использовать устаревшую сумму экрана.

Группа 3: счет получателя не соответствует требованиям

Остановить, если счет ожидает проверки, имя владельца не совпадает, счет недавно изменен, идентификация еще идет или счет больше недействителен. Исправление после отправки не исключает платеж неверному лицу.

Группа 4: предыдущая транзакция еще обрабатывается

Статус processing, pending или unknown по той же стоимости создает риск двойной выплаты. Стоимость следует заблокировать для второго потока. Контроль параллелизма и идемпотентность должны работать вместе.

Группа 5: timeout или неясный статус банка

Timeout не означает отказ: банк мог выполнить поручение, но ответ не дошел. Необходимо:

  1. оставить транзакцию в ожидании;
  2. не создавать новый код;
  3. не освобождать стоимость;
  4. провести расследование;
  5. проверить независимые доказательства;
  6. сделать вывод только при достаточных данных.

Нельзя повторно отправлять деньги просто ради проверки.

Группа 6: признаки повторной транзакции

Остановка нужна при том же request ID, том же idempotency key, необычном совпадении работника, суммы и времени, резервировании одной стоимости двумя процессами или повторной отправке уже завершенного поручения.

Дерево решения для продолжения, удержания или отклонения транзакции EWA

Признак дубликата не доказывает мошенничество, но требует проверки.

Группа 7: невозможно определить применимую версию политики

Eligibility Engine должен знать политику клиента, дату действия, лимит, резерв и право использования. Нельзя молча выбирать неподтвержденную настройку по умолчанию. Неизвестная политика — условие остановки.

Группа 8: статус работника больше не подходит

Остановить при прекращении работы, истечении назначения, незавершенном переводе, процедурной блокировке профиля или закрытии расчетного периода. Нужен статус, действующий в конкретный момент.

Группа 9: сбой критической исходной системы

Примеры: недоступны данные о работе, не отвечает Eligibility Engine, потеряна связь с Payment Orchestration, прервана проверка счета или нельзя подтвердить банковские данные. Останавливать следует только затронутую область.

Группа 10: активирована аварийная остановка

Массовый риск дубликатов, неверный получатель, широкая ошибка расчета, инцидент безопасности или невозможность определить статус могут потребовать блокировки новых поручений. Права должны быть ограничены, журналироваться, одобряться и иметь критерии повторного запуска.

Чем различаются остановка, удержание и отклонение?

РезультатКогда применятьПример
ОтклонитьТребование явно не выполненоНет подходящей одобренной работы
УдержатьДоказательств недостаточноTimeout банка
Остановить потокЕсть широкий системный рискМассовый риск дубликатов
Запросить исправлениеОшибка исходных данныхНеверный код учета
Запросить повторную проверкуНеясны личность или счетСмена счета

Нельзя называть все исходы «неудачной транзакцией».

Какое сообщение должен видеть работник?

Показывайте реальный статус, не просите немедленно повторить запрос, давайте ссылочный код и следующий шаг. Пример: «Ваш запрос проверяется. Не создавайте новый запрос на ту же сумму до получения результата».

Кто может обойти условие остановки?

Таких условий должно быть очень мало. Ручное исключение требует повышенных прав, причины, утверждающего лица, журнала, ограниченной области и последующего доказательства. Универсальный superadmin-обход опасен.

Что отслеживать на панели остановок?

Количество и причины удержаний, возраст транзакций, pending, сигналы дубликата, счета на проверке, работу после изменения, ручные исключения, аварийные остановки и время запуска. Резкий рост указывает на первопричину.

Заключение

EWA должна знать, когда нельзя продолжать. Неясные данные о работе, изменение суммы, счет на проверке, ожидающая предыдущая транзакция, признаки дубликата, неясный статус банка и системные сбои — главные условия остановки. Fail-closed разрешает движение денег только при достаточной определенности.

Автор: Do Huy Le — Tổng Giám Đốc, Nhan Kiet Manpower Supply Co., Ltd.

Консультации EWA для бизнеса: Hotline 0937.022.655 · Email info@nhankiet.vn · Узнать об EWA для бизнеса

Частые вопросы

Ухудшает ли остановка пользовательский опыт?

Она может добавить ожидание, но это лучше ошибочной или двойной выплаты. Статус надо объяснять ясно.

Считать ли timeout отказом?

Нет. Транзакцию следует удержать и проверить.

Любая ошибка API останавливает всю систему?

Нет. Следует изолировать затронутый сервис, клиента или функцию.

Кто может возобновить работу после аварийной остановки?

Только роли утвержденного процесса, с журналами и доказательствами проверки.

← Новости