以下是为组织开发支付平台(显示为第三方)而设计的体系结构。每个实体都有一组REST。现在,假设我正在开发类似Paypal的东西。
我已经用垂直线(红色,蓝色)清楚地标记了边界。涉及到三个方面。支付门户,银行和第三方。
问题是,如果双方之间存在网络问题,并且无法完成截断周期,情况会怎样?应如何处理这一问题?
假设一旦支付门户启动请求,支付门户和第三方之间的网络就会丢失。即使交易在银行的末端成功,支付门户也无法得到响应。一旦网上银行上网,该如何处理?
我读过下面的文章。
发布于 2015-10-13 11:51:05
首先,您应该忘记同步处理事务。
在第一个场景中,您将使用代码初始化一个事务和事务数据--带有它的状态的200 OK
数据。在开始时,状态可以是启动的。然后,您重复发送一个GET
请求,以获取所有事务数据,并在其状态更改为例如已完成时显示适当的信息。在这种情况下,如果客户机和服务器之间的连接中断了,那么没有什么不好的事情发生--所有的数据都保存在服务器端,客户机作为观察者运行。总结起来,200 OK
代码与事务状态一起使用。
在第二个场景中,HTTP状态代码指示事务是否完成。如果事务启动/提交,则响应包含事务数据,并将其标记为202 Accepted
。没有内部状态字段。然后,您应该反复查询端点,直到返回200 OK
或204 No Content
(如果答案正确)或在发生任何故障时返回4XX
(5XX
)。
这两种方法仅在表明事务是否已完成时才不同:通过资源、内部字段或HTTP状态代码。
https://stackoverflow.com/questions/33078426
复制相似问题