所以我有票务系统。
我有关于API的机票预订请求,在我的应用程序中我们称为付款服务。
如果第一次尝试失败,我们将在队列中添加消息以供稍后处理。然后继续向客户发行票证。
从队列中,如果没有成功,我们将在10分钟内重试10次使用付款API的付款,我们会在该票务预订记录中添加一些状态,并通过离线方式从客户那里获取资金。
问题:由于欺诈,我们收到了很多此类预订。
解决方案:
我有一个解决方案,在付款失败时我不会继续发行票证,相反,我想向客户端返回其他HTTP代码。就像其他一切一样,除了付款就是成功。
在处理10次尝试后如果队列中的消息失败时,我想通知客户端此事务失败。
如果通过了,请让客户知道继续发行票证
问题:此解决方案是否具有技术可行性?
答案 0 :(得分:0)
如果付款失败,我将不会继续发行票证,而是 想要向客户端返回不同的HTTP代码。喜欢 除了付款,其他一切都是成功。
如果付款已添加到队列中,我将返回202。
202已接受:请求已被接受处理,但处理已完成 尚未完成。该请求最终可能会执行,也可能不会执行 ,因为实际上进行处理时可能不允许这样做。 没有用于从异步状态重新发送状态代码的工具 这样的操作。
否则,如果成功则为200或201。
在处理来自队列的消息时,如果消息在10点后失败 我想通知客户此交易失败的尝试。
一种常见的通知机制是通过HTTP在某些客户端指定的端点上传递消息。