Index: src/main/java/com/novaone/common/filter/PayFilter.java
===================================================================
--- src/main/java/com/novaone/common/filter/PayFilter.java	(不存在的)
+++ src/main/java/com/novaone/common/filter/PayFilter.java	(版本 31413)
@@ -0,0 +1,85 @@
+package com.novaone.common.filter;
+
+/*
+ * @program: BankEnterprise
+ * @description:
+ * @author: Ma.ChengJian
+ * @create: 2022-06-17 13:18
+ */
+
+import com.alibaba.fastjson.JSON;
+import com.novaone.entity.JsonModel;
+import com.novaone.util.CommonEnum;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Hashtable;
+import java.util.Map;
+
+@Slf4j
+@WebFilter(urlPatterns = { "/pay/*" })
+public class PayFilter implements Filter {
+
+    private final Map<String,Long> expiration = new Hashtable<>();
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {}
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+       HttpServletRequest req = (HttpServletRequest) request;
+        HttpServletResponse resp = (HttpServletResponse) response;
+        final String requestURI = req.getRequestURI();
+        log.info("接收到对接口\"{}\"的访问请求",requestURI);
+        if (requestURI.startsWith("/pay/balance/")){
+            sleep(req,resp,chain,"balance");
+        }else if (requestURI.startsWith("/pay/status")){
+            sleep(req,resp,chain,"status");
+        }else if (requestURI.startsWith("/pay/message")){
+            sleep(req,resp,chain,"message");
+        }else if (requestURI.startsWith("/pay/download/")){
+            sleep(req,resp,chain,"download");
+        } else {
+            chain.doFilter(request,response);
+        }
+    }
+
+
+    private void sleep(HttpServletRequest req,HttpServletResponse resp,FilterChain chain,String reqKey) throws ServletException, IOException {
+        final long currentTimeMillis = System.currentTimeMillis();
+        if (expiration.get(reqKey) == null || expiration.get(reqKey) < currentTimeMillis){
+            chain.doFilter(req,resp);
+            expiration.put(reqKey,System.currentTimeMillis() + 6000);
+            return;
+        }
+        resp.setContentType("application/json;charset=utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            outputStream = resp.getOutputStream();
+            outputStream.write(JSON.toJSONString(error("请求过于频繁，接口请求间隔不得小于6秒,剩余等待时间" + (expiration.get(reqKey) - currentTimeMillis) + "毫秒")).getBytes(StandardCharsets.UTF_8));
+        } finally {
+            if (outputStream != null) {
+                outputStream.flush();
+                outputStream.close();
+            }
+            log.warn("请求频繁,拒绝处理");
+        }
+    }
+
+
+
+    @Override
+    public void destroy() {}
+
+    JsonModel error(String message){
+        JsonModel resp = new JsonModel();
+        resp.setCode(CommonEnum.API_ERROR.getCode());
+        resp.setDes(CommonEnum.API_ERROR.getRes() + ":" + message);
+        return resp;
+    }
+}
