浏览代码

fix: 防止重复支付

xdd 1 月之前
父节点
当前提交
b243e0580c

+ 7 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -413,6 +413,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             return R.error("订单状态不正确");
         }
 
+        Object isPaying = redisCache.getCacheObject("isPaying:" + param.getOrderId());
+        if(ObjectUtil.isNotNull(isPaying)) {
+            return R.error("支付中,请稍等...");
+        }
+
         FsUser user=userService.selectFsUserById(order.getUserId());
         if(user!=null&& StringUtils.isNotEmpty(user.getMaOpenId())){
             //已改价处理
@@ -498,6 +503,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 }
                 R process = payment.createOrder(processContext);
                 if("200".equals(String.valueOf(process.get("code")))){
+                    redisCache.setCacheObject("isPaying:"+param.getOrderId(),1);
+
                     return process;
                 }
             }

+ 0 - 1
fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -129,7 +129,6 @@ public class StoreOrderController extends  AppBaseController {
     @Login
     @ApiOperation("支付")
     @PostMapping("/pay")
-    @RepeatSubmit(intervalTime = 3)
     public R pay(@Validated @RequestBody FsStoreOrderPayParam param)
     {
         Long orderId = param.getOrderId();