不管是在商城,还是各种关于充值的问题,都应该对订单号做一个校验,防止用户,拿着同一个订单号反复请求接口:
@RequestMapping("/checkNum")
@ResponseBody
@Transactional(rollbackFor = MyException.class)
public R checkTranNum(String token,String uid,String tranNum,String amount)throws MyException{
List<A> a=aService.getTranRecord(tranNum);
if(tranRecord==null){
throw new MyException("订单号不存在");
}
if(tranRecord.get(0).getTranstatus()==2){
return R.error("订单号已经失效");
}
try {//将当下请求的订单号,设为自定义的失效的状态,在同一个订单在请求的时候就会return 订单号失效
aRecordService.updateTranStatus(tranNum,"2");
}catch (Exception e){
throw new MyException("更新流水号状态异常");
}
/*可以添加一些自己需要的逻辑*/
Map<String,Object> map=new HashMap<>();
// map.put("memberExpirationTime",memberExpirationTime.getTime());
return R.success("订单号验证成功",1,map);
}
这是目前自己写的会员充值之后订单号的校验,可能还是会有纰漏。