Я работал над приложением, которое должно регистрировать транзакции по кредитным картам, которое зависит от использования внешнего API.В моем приложении у меня есть концепция счета-фактуры с итоговой суммой и транзакция, которая при успешной оплате кредитной картой вычитается из этой общей суммы.
Это в большей степени независимый от платформы вопрос, но я работаю с Django, Python и MySQL.
Мой вопрос в основном касается использования транзакций при работе с внешними API-интерфейсами и разработки программного обеспечения для обработки потенциальных сбоев.Как Django, так и MySQL поддерживают транзакции, так что само по себе это не проблема, но предполагается следующий сценарий:
- Кредитная карта отправлена через API оплаты
- Кредитная карта успешно обработана
- Этот ответ затем регистрируется в базе данных как платеж по этому счету
- При сохранении платежа в базу данных по той или иной причине произошла ошибка
ЧтоВы делаете это сейчас?
Если бы не было вызова API, ответ был бы ясен, откат транзакции базы данных и возникновение ошибки.Но вызов внешнего API усложняет ситуацию, потому что на самом деле это не способ отката внешнего вызова API.
Мне интересно, сталкивался ли кто-нибудь с этой проблемой (для кредитных карт или подобных типов).транзакций) и как они решали проблему, или вообще некоторые подходы к разработке программного обеспечения в этом случае.