首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在调用API时处理网络故障

如何在调用API时处理网络故障
EN

Stack Overflow用户
提问于 2017-02-03 17:23:03
回答 1查看 45关注 0票数 1

今天,我想到一个简化的方案如下:

我有自己的支付系统,当用户来省钱时,我使用表单来保存我自己的DB中的事务数据。在保存自己的记录之前,我需要调用银行支付系统,它有一个Webservice API,如

public boolean pay(userInfo userInfo, float money)

根据返回的结果,我确定是否保存自己的数据。

我的问题是,如果在调用银行支付API之后,我自己的网络关闭了,并且没有结果返回。如何确定是否需要保存自己的表单记录。也许银行支付系统已经处理了这笔交易?如何使两部分数据同步?

我们不能改变银行支付API,因为银行规范是固定的。Webservice API是SOAP或Restful。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-04 00:19:41

您的实现可能如下所示:

  • 始终将事务数据保存到数据库中,并将其标记为“未处理”。
  • 使用单独的"worker“进程,从数据库中获取所有未处理的事务,并调用银行支付系统的pay方法。
  • 因此,对于pay方法结果,选择更改/不更改事务的状态。

工作人员可以通过预定的进程(每XX秒/分钟/等)或某些服务不断地查询未处理的事务(可能在循环之间有一些延迟)。

因此,在银行支付系统“无结果”的情况下,交易状态不会改变,“支付”方法将在下一个工作人员运行时重新尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42029710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档