package com.ynxbd.wx.wxfactory.menu; import com.fasterxml.jackson.databind.ObjectMapper; import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.wx.wxfactory.WxCacheHelper; import com.ynxbd.wx.wxfactory.menu.bean.WxMenu; import com.ynxbd.wx.wxfactory.menu.result.WxMenuResult; import lombok.extern.slf4j.Slf4j; import okhttp3.RequestBody; import java.util.Map; import static com.ynxbd.common.helper.http.OkHttpHelper.TYPE_JSON; @Slf4j public class WxService { public void createMenu(WxMenu menu) throws Exception { createMenu(menu, false); } public void createMenu(WxMenu menu, boolean condition) throws Exception { String url = (condition ? "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=" : "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=") + WxCacheHelper.getAccessToken(); try { String result = this.post(url, new ObjectMapper().writeValueAsString(menu)); System.out.println("[wx-tools]Create Menu result:" + result); } catch (Exception e) { throw new Exception("[wx-tools]createMenu failure."); } } public String deleteMenu() throws Exception { String url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + WxCacheHelper.getAccessToken(); String result = this.get(url, null); System.out.println("[wx-tools]Delete Menu result:" + result); return result; } public String deleteMenu(String menuId) throws Exception { String url = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=" + WxCacheHelper.getAccessToken(); String json = "{\"menuid\":" + menuId + "}"; String result = this.post(url, json); System.out.println("[wx-tools]Delete Conditional Menu result:" + result); return result; } public WxMenuResult getMenu() throws Exception { String url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + WxCacheHelper.getAccessToken(); try { return WxMenuResult.fromJson(get(url, null)); } catch (Exception e) { throw new Exception("[wx-tools]getMenu failure."); } } public String get(String url, Map params) throws Exception { return OkHttpHelper.get(url, (OkHttpHelper.MapParams) params); } public String post(String url, String params) throws Exception { return OkHttpHelper.post(url, RequestBody.create(TYPE_JSON, params), null); } }