Procházet zdrojové kódy

feat: 添加 POST /wx/createMenu 接口,用于服务器推送启用后重建自定义菜单

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline před 1 dnem
rodič
revize
d47b9c00cd

+ 31 - 1
car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WeixinMPController.java

@@ -82,7 +82,6 @@ public class WeixinMPController {
      * 导出当前公众号自定义菜单结构(调试用)
      */
     @GetMapping(value = "/exportMenu")
-    @SaIgnore
     @ResponseBody
     public R<?> exportMenu() {
         try {
@@ -94,6 +93,37 @@ public class WeixinMPController {
         }
     }
 
+    /**
+     * 通过 API 创建公众号自定义菜单(服务器推送启用后使用)
+     */
+    @PostMapping(value = "/createMenu")
+    @ResponseBody
+    public R<?> createMenu() {
+        try {
+            String menuJson = """
+                    {
+                      "button": [
+                        {
+                          "type": "view",
+                          "name": "停车减免",
+                          "url": "https://cloud.yeswash.cn/parking.html"
+                        },
+                        {
+                          "type": "view",
+                          "name": "商家入口",
+                          "url": "https://cloud.yeswash.cn/h5#/"
+                        }
+                      ]
+                    }
+                    """;
+            wxMpService.getMenuService().menuCreate(menuJson);
+            return R.success("菜单创建成功");
+        } catch (WxErrorException e) {
+            log.error("创建菜单失败", e);
+            return R.failed(-1, "创建失败: " + e.getMessage());
+        }
+    }
+
     /**
      * 手动同步公众号关注用户(一次性触发)
      */