/** * Copyright (c) 2011-2014, James Zhan 詹波 (jfinal@126.com). * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.jfinal.weixin.sdk.api; import com.jfinal.kit.PropKit; import com.jfinal.weixin.sdk.utils.HttpUtils; import com.jfinal.weixin.sdk.utils.JsonUtils; import java.util.HashMap; import java.util.Map; /** * menu api */ public class MenuApi { private static String getMenu = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token="; private static String createMenu = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="; /** * 查询自定义菜单 * @return {ApiResult} */ public static ApiResult getMenu() { String jsonResult = HttpUtils.get(getMenu + AccessTokenApi.getAccessTokenStr()); return new ApiResult(jsonResult); } /** * 创建自定义菜单 * @param jsonStr json字符串 * @return {ApiResult} */ public static ApiResult createMenu(String jsonStr) { String jsonResult = HttpUtils.post(createMenu + AccessTokenApi.getAccessTokenStr(), jsonStr); return new ApiResult(jsonResult); } private static String deleteMenuUrl = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token="; /** * 自定义菜单删除接口 * @return ApiResult */ public static ApiResult deleteMenu() { String jsonResult = HttpUtils.get(deleteMenuUrl + AccessTokenApi.getAccessTokenStr()); return new ApiResult(jsonResult); } private static String addConditionalUrl = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token="; /** * 创建个性化菜单 * @param jsonStr json字符串 * @return {ApiResult} */ public static ApiResult addConditional(String jsonStr) { String jsonResult = HttpUtils.post(addConditionalUrl + AccessTokenApi.getAccessTokenStr(), jsonStr); return new ApiResult(jsonResult); } private static String delConditionalUrl = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token="; /** * 删除个性化菜单 * @param menuid menuid为菜单id,可以通过自定义菜单查询接口获取。 * @return ApiResult */ public static ApiResult delConditional(String menuid) { Map params = new HashMap(); params.put("menuid", menuid); String url = delConditionalUrl + AccessTokenApi.getAccessTokenStr(); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(params)); return new ApiResult(jsonResult); } private static String tryMatchUrl = "https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token="; /** * 测试个性化菜单匹配结果 * @param userId user_id可以是粉丝的OpenID,也可以是粉丝的微信号。 * @return ApiResult */ public static ApiResult tryMatch(String userId) { Map params = new HashMap(); params.put("user_id", userId); String url = tryMatchUrl + AccessTokenApi.getAccessTokenStr(); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(params)); return new ApiResult(jsonResult); } private static String getCurrentSelfMenuInfoUrl = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token="; /** * 获取自定义菜单配置接口 * @return {ApiResult} */ public static ApiResult getCurrentSelfMenuInfo() { String jsonResult = HttpUtils.get(getCurrentSelfMenuInfoUrl + AccessTokenApi.getAccessTokenStr()); return new ApiResult(jsonResult); } public static void main(String[] args) { PropKit.use("a_little_config.txt"); ApiConfig apiConfig = new ApiConfig(); apiConfig.setAppId(PropKit.get("appId")); apiConfig.setAppSecret(PropKit.get("appSecret")); ApiConfigKit.putApiConfig(apiConfig); //String accessToken = AccessTokenApi.getAccessTokenStr(); //System.out.println(accessToken); String json ="{"+ "\"button\":["+ "{"+ "\"type\":\"view\","+ "\"name\":\"支付\","+ "\"url\":\"http://atao.s1.natapp.cc/pay/selectCarView\""+ "},"+ "{"+ "\"type\":\"view\","+ "\"name\":\"月卡\","+ "\"url\":\"http://atao.s1.natapp.cc/park/parkListView\""+ "},"+ "{"+ "\"name\":\"关于我们\","+ "\"sub_button\":["+ "{"+ "\"type\":\"click\","+ "\"name\":\"最新咨询\","+ "\"key\":\"V1001_GOOD\""+ "},"+ "{"+ "\"type\":\"view\","+ "\"name\":\"欢迎下载\","+ "\"url\":\"http://fir.im/rntaz\""+ "},"+ "{"+ "\"type\":\"click\","+ "\"name\":\"热线电话\","+ "\"key\":\"V1002_GOOD\""+ "},{"+ "\"type\":\"click\","+ "\"name\":\"公司简介\","+ "\"key\":\"V1003_GOOD\""+ "}]"+ "}]"+ "}"; ApiResult result = MenuApi.deleteMenu(); System.out.println(result); ApiResult createResult = MenuApi.createMenu(json); System.out.println(createResult); } }