首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >REST支付平台事务处理

REST支付平台事务处理
EN

Stack Overflow用户
提问于 2015-10-12 10:05:15
回答 1查看 1.2K关注 0票数 0

以下是为组织开发支付平台(显示为第三方)而设计的体系结构。每个实体都有一组REST。现在,假设我正在开发类似Paypal的东西。

我已经用垂直线(红色,蓝色)清楚地标记了边界。涉及到三个方面。支付门户,银行和第三方。

  1. 客户可以通过登录到支付门户来启动交易。支付门户将调用银行的API。请求流显示在图片中。
  2. 每个请求和响应都将通过ESB并被记录下来。如果事务成功,ESB将更新第三方数据库并同时通知支付门户。
  3. 支付门户将启动对ESB的另一个API调用,以确保第三方数据库被正确更新(图中未显示)。
  4. 最后,支付门户网站将向银行发送确认交易已完成整个周期(未在图中显示)。这是另一个API调用。

问题是,如果双方之间存在网络问题,并且无法完成截断周期,情况会怎样?应如何处理这一问题?

假设一旦支付门户启动请求,支付门户和第三方之间的网络就会丢失。即使交易在银行的末端成功,支付门户也无法得到响应。一旦网上银行上网,该如何处理?

我读过下面的文章。

Transactions in REST?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 11:51:05

首先,您应该忘记同步处理事务。

在第一个场景中,您将使用代码初始化一个事务和事务数据--带有它的状态200 OK数据。在开始时,状态可以是启动的。然后,您重复发送一个GET请求,以获取所有事务数据,并在其状态更改为例如已完成时显示适当的信息。在这种情况下,如果客户机和服务器之间的连接中断了,那么没有什么不好的事情发生--所有的数据都保存在服务器端,客户机作为观察者运行。总结起来,200 OK代码与事务状态一起使用。

在第二个场景中,HTTP状态代码指示事务是否完成。如果事务启动/提交,则响应包含事务数据,并将其标记为202 Accepted。没有内部状态字段。然后,您应该反复查询端点,直到返回200 OK204 No Content (如果答案正确)或在发生任何故障时返回4XX (5XX)。

这两种方法仅在表明事务是否已完成时才不同:通过资源、内部字段或HTTP状态代码。

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

https://stackoverflow.com/questions/33078426

复制
相关文章

相似问题

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