Создание по двухфазной модели
Проблема
Если выплата успешно создавалась в нашей системе, но мерчант не успевал зарегистрировать её у себя (например, из-за сетевой ошибки, таймаута, дубликата запроса или падения сервиса), то операция всё равно выполнялась, а у мерчанта не было о ней данных. В итоге получается рассинхронизация состояний, сложные разборки и риск того, что клиенту мерчанта уже осуществили выплату.
Как решает это двухфазная модель
1) Создание заявки (payout)
POST /v2/merchant/transactions/payout-cardВыплата создаётся в нашей системе
Мерчант получает уникальный
idМерчант может безопасно зафиксировать операцию у себя в базе
2) Подтверждение выполнения (release)
POST /v2/merchant/transactions/{id}/releaseТолько после явного подтверждения от мерчанта выплата уходит в обработку
Это гарантирует, что обе стороны синхронизированы: у мерчанта есть запись, и он осознанно подтвердил выполнение
Last updated