对于一次订单支付过程,如果用户重复多次点击支付按钮,或者是网络异常导致订单已经支付成功了但没有及时反馈给用户,用户再次点击支付按钮,就可能造成重复扣款,造成严重后果。
考虑到幂等性的原理,可以给订单生成一个guid,客户端请求服务端时携带guid参数,服务端就可以验证此次请求是不是同一个订单,再判断订单是否已经支付完成。
1、生成订单时,生成guid;
2、支付时请求参数携带guid。
为了减少服务端压力,对于短时间多次重复请求,做接口过滤。
对于一次订单支付过程,如果用户重复多次点击支付按钮,或者是网络异常导致订单已经支付成功了但没有及时反馈给用户,用户再次点击支付按钮,就可能造成重复扣款,造成严重后果。
考虑到幂等性的原理,可以给订单生成一个guid,客户端请求服务端时携带guid参数,服务端就可以验证此次请求是不是同一个订单,再判断订单是否已经支付完成。
1、生成订单时,生成guid;
2、支付时请求参数携带guid。
为了减少服务端压力,对于短时间多次重复请求,做接口过滤。