想问大家个问题,一个ajax请求发送给后台了,后台开始处理了但是给前端返回值的过程中断网了,前端肯定会得到timeout,但是后台已经处理了这个请求,这种情况咋办?
我觉得后台不应该处理才对,如果支付宝或者微信支付遇到这样的情况他们肯定不可能说把钱扣了然后前端给出一个断网的提示吧?
求知道怎么处理的同行给个策略,谢谢!!
后台返回值意味着后台已经处理完毕了,这时断网就是说客户端的网络断了,和服务器没关系了,至于处理,只能呢个等客户端重新联网以后发送请求查询再把处理完毕的结果给拿回来
提交请求告诉用户已提交(在处理中),请求成功后再告诉用户付款成功
正常第三方调用支付不是会跳到等待页面吗?里面有一个已经支付的按钮和其他按钮,我觉得就是以防万一没接收到回调,用户可以自己按“已经支付”按钮
你需要设计幂等接口。也就是说,一个接口请求一次与请求多次(或短时间内请求多次)效果是一样的。这样倘若客户断网了也没关系,重新请求就好了。
如果按照这种说法,你是不是还要考虑客户电脑突然蓝屏了呢,突然死机了呢。这样算的话这种意外情况就太多了。
而且你很难判断客户的情况的