网站建设企业公司,wordpress产品系统,郑州网站制作的公司,建信网个人证书查询一.订单提交的例子
一个订单生成并支付的过程#xff0c;大致为#xff1a;用户点击前端页面提交订单-后端根据此次提交信息生成订单-用户确认订单并进行支付操作-支付成功。
主要分为前端层面#xff0c;后端系统层面#xff0c;数据库层面。前端层面不详述…一.订单提交的例子
一个订单生成并支付的过程大致为用户点击前端页面提交订单-后端根据此次提交信息生成订单-用户确认订单并进行支付操作-支付成功。
主要分为前端层面后端系统层面数据库层面。前端层面不详述大约是防抖动处理之类的按钮几秒内禁用。
1.1 后端系统层面
1.1.1 如何保证生成唯一的订单ID。
为用户界面生成唯一的token并根据此token生成相应的订单ID。 token的获取 通过令牌桶、队列等等方式。 针对该token对应的数据操作 分布式锁、事务保证该token操作的唯一性、原子性直至生成订单行ID
1.1.2 如何保证订单支付幂等
以订单ID作为唯一标识贯穿后续操作 订单状态验证、分布式锁、事务保证订单操作的正确性、唯一性、原子性 其中状态验证主要是保证多线程的处理的时候订单流转不错乱。 分布式锁保证只有一个线程在处理该带哪个单 事务保证一个线程种订单相关操作的原子性一致性。 通过同步接口、轮询机制、重试机制进行支付结果获取 同步接口若直接返回支付成功则支付成功。 若未返回重试这里要有支付唯一标识或者轮询结果查询接口来获取支付结果更新订单状态返回给用户结果同步接口直接返回接口超时可以要求用户刷新页面等。 待补充微服务间的接口、消息幂等数据一致性等