我一直在研究需要记录依赖于使用外部API的信用卡交易的应用程序。在我的申请中,我有一个总额的发票的概念,以及一个成功的信用卡付款的交易,从这个总额中扣除。
这是一个独立于平台的问题,但我正在使用Django,Python和MySQL。
我的问题主要围绕处理外部API时的事务使用以及如何设计软件来处理潜在的故障。 Django和MySQL都支持事务,因此本身不是问题,但假设以下情况:
你现在做什么?
如果没有涉及API调用,则答案很明确,回滚数据库事务并引发错误。但是调用外部API会使问题变得复杂,因为这实际上不是回滚外部API调用的方法。
我感兴趣的是,如果有人遇到过这个问题(信用卡或类似类型的交易)以及他们如何解决这个问题,或者在这种情况下通常采用一些软件设计方法。
答案 0 :(得分:1)
在软件中管理这个很难。但是,如果您的支付网关正在调用回调以表示交易成功,则可能会在该回调未能完成时记录错误,并且您应该能够将其配置为在这种情况下提醒您,可能通过电子邮件。然后由你来手动纠正这种情况。