券系统设计及券和订单号使用重复下单问题汇总

券系统设计及券和订单号使用重复下单问题汇总

1.根据订单号+券号来唯一标识一次请求,但是请求端每次请求都会重新生成一个新的订单号,导致每次都是一次新的请求。造成重复下单。 >> 需要调整服务端逻辑:只认券号,而不是券号和订单号的组合。
2.服务端在免登陆的接口,不能直接返回整个页面出现报错信息。这样用户不能进入到“我的个人中心查看订单列表”。
如果报错信息是弹框,客户可以关闭弹框,这样他仍然可以继续下单,这样下单的接口仍然需要拦截。
问题点在:第一道免登陆拦截,还是在第二道下单拦截。

方案:
1.增加回调通知节点,下单,取消,结算。这样客户端在下单成功之后,就知道该订单号是否下单成功。可以控制下次进来券号和订单号是同一个。这样判断券号已下单,直接进入订单详情页面。
2.服务端在免登陆接口拦截,一个券号只允许一个订单号,存在订单号则跳转到“订单详情”,否则允许下单。
3.服务端在订单提交接口拦截。 只认券号来关联订单号返回提交订单的报错信息,阻止重复下单。

券系统设计
1.发券接口
发券流水号 唯一
发券数量
发券类型
发券的有效起止时间
券的其他属性字段

发券表:重要字段:券ID 唯一,券请求id,券库存数量,券关联的订单号(重要)。

2.券查询接口
重要字段:发券流水号 唯一

3.券撤销接口
重要字段:券ID 唯一(支持列表批量撤销)

4.免登录接口
请求方参数:重要字段:手机号,下单订单号,券ID,券类型,组成JSON字符串,AES加密,url编码请求(可以考虑POST方式请求到后端,先url解码,然后AES解密操作)。
返回:登录用户的TOKEN,券类型,跳转页面类型等,跳过登录页面,直接到下单页面 OR 订单详情页面。

5.提交订单接口
重要字段:外部订单号,服务端订单号,渠道source

6.订单列表接口
重要字段:渠道source

7.订单详情接口
重要字段:外部订单号,服务端订单号

8.订单取消接口
重要字段:外部订单号,服务端订单号

posted on 2024-05-22 06:36  oktokeep  阅读(2)  评论(0编辑  收藏  举报