今天,我想到一个简化的方案如下:
我有自己的支付系统,当用户来省钱时,我使用表单来保存我自己的DB中的事务数据。在保存自己的记录之前,我需要调用银行支付系统,它有一个Webservice API,如
public boolean pay(userInfo userInfo, float money)。
根据返回的结果,我确定是否保存自己的数据。
我的问题是,如果在调用银行支付API之后,我自己的网络关闭了,并且没有结果返回。如何确定是否需要保存自己的表单记录。也许银行支付系统已经处理了这笔交易?如何使两部分数据同步?
我们不能改变银行支付API,因为银行规范是固定的。Webservice API是SOAP或Restful。
发布于 2017-02-04 00:19:41
您的实现可能如下所示:
pay方法。pay方法结果,选择更改/不更改事务的状态。工作人员可以通过预定的进程(每XX秒/分钟/等)或某些服务不断地查询未处理的事务(可能在循环之间有一些延迟)。
因此,在银行支付系统“无结果”的情况下,交易状态不会改变,“支付”方法将在下一个工作人员运行时重新尝试。
https://stackoverflow.com/questions/42029710
复制相似问题