是否应该在 HTTP 同步请求中交换自生成的事务 ID

Should self generated transaction ids be exchanged in HTTP synchronous requests

我是 HTTP 世界的新手。如果问题太琐碎,我深表歉意。

我创建了一个将 SOAP 消息发送到第 3 方服务器的 HTTP 客户端。我的客户端发送同步请求,超时值为 15 秒。 API是用来更新用户余额的,所以非常关键。我在 SOAP 请求中发送 userId,并且从用户余额到服务器的金额为 added/deducted。服务器响应状态为 0=SUCCESS 或 1=FAILURE

现在考虑到服务器可能发生多次故障,我可能一天内为同一个用户多次访问服务器,是否应该在消息部分添加一个交易ID。如果是,它的用例是什么。按照我的理解,客户端总是会知道它发起了哪笔交易,所以它可以自己做交易记账。我还需要每天协调与服务器的交易(这可能会使用 userId)。

注意:服务器 API 正在开发中,现在可以更改。

TCP 将提供底层的可靠连接,因此您认为每个客户端 SOAP 请求不需要额外的机制来跟踪来自服务器的响应是正确的。但是,话虽如此,附加的消息级别 GUID 有助于故障排除。如果您遇到问题,它将允许您稍后跟踪和追踪到服务器的确切客户端消息。

首先,对于任何敏感内容,请使用 HTTPS 而不是 HTTP。

接下来,听起来您的客户端是持久的(即不是浏览器)。在这种情况下,return 来自客户端可以存储的服务器的事务 ID 会很有用,正如您所说,这有助于日常审计。这可能很有用,因为对于审计请求,服务器可以 return 一组您可以检查的事务 ID,以及其他数据。