首先我们要先看一下文档 https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
重点的话就是这里的授权页面的参数,文档的话希望自己去看和理解,比较这个方面的话,前辈已经写了很多了,我只是想把我自己的写出来提供参考。
首先肯定的配置微信公众号里面的内容,这里就不多说了也就是域名,js域名,token,这方面的东西,都好之后我这里是从菜单说去,应该挺详细的。
创建微信的一二级菜单,具体的话可能要自己去找资料了。这里只有一级菜单。
接下来我就来解释一下就是通过url得到code,通过code得到openid 然后得到用户信息这样一个思路.
当我们点击,每个人都有的按钮 通过url 后面的域名 redirect_uri=http://www.vicp.com/task/technician/check
进入我们的 task/technician/check 这个方法传一个code值过去,同时参数appid是填写自己公众号的,其它的基本可以默认,就行.
//授权页面
buttonBuys.put("url", "https://open.weixin.qq.com/connect/oauth2/authorize?"+ "appid="+appid+"&redirect_uri="
+ "http://www.vicp.com/task/technician/check&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");
/**
* 创建自定义菜单
*/
public static void createMenu() throws Exception {
String appid = WxConfig.APPID;
JSONObject buttonBuys = new JSONObject();
buttonBuys.put("type", "view");
buttonBuys.put("name", "每个人都有");
//授权页面
buttonBuys.put("url", "https://open.weixin.qq.com/connect/oauth2/authorize?"
+ "appid="+appid+"&redirect_uri="
+ "http://www.vicp.com/task/technician/check&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");
// menuKnow 一级菜单
JSONObject menuKnow = new JSONObject();
menuKnow.put("type", "view");
menuKnow.put("name", "我要发布任务");
//授权页面
menuKnow.put("url", "https://open.weixin.qq.com/connect/oauth2/authorize?"
+ "appid="+appid+"&redirect_uri="
+ "http://www.vicp.com/task/employer/check&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");
JSONArray buttonsAll = new JSONArray();
buttonsAll.add(buttonBuys);
buttonsAll.add(menuKnow);
JSONObject menu = new JSONObject();
menu.put("button", buttonsAll);
menu.toString();
MpApi.menuCreate(menu.toString());
MpApi.menuQuery();
}
MpApi.menuCreate(menu.toString()); //这里是调用微信的创建接口 需要自己 post 或者 get 到微信就行了
private static final String CreateMenuUrl =https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
MpApi.menuQuery(); //这里是调用微信的查询接口
需要自己 post 或者 get 到微信就行了
private static final String QueryMenuUrl =https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN
MpApi.GetPageAccessTokenUrl //这里接口在下面
去掉 mpapi 调用接口就行了
如上说的,我们通过url进入了我们方法得到code,接下来就是得到code了,如果url通过了我们可以直接得到code值
</