微信公众号开发

很多时候有意无意间,我们作为程序员,都会自己给自己挖坑。我也不例外,为了以后长点记性,我觉得还是记录下来比较好。俗话说:好记性不如烂笔头。现在的互联网时代,烂笔头或许被抛弃了,但是文档的存储却给了我们很大的优势。下面就来看看微信开发吧。

首先想要在微信上获取任何信息,都必须得到微信的敲门砖 code。

code 这个参数是微信传给我们的,我们要在网页里面获取code。

有了code,我们就进入了这个大门,就可以获取我们想要的openId。

下面我们来看一下代码


微信公众号开发_第1张图片
获取openId

通过code 获取openId

MyLogUtils.getInstance().log("通过code换取网页授权access_token 》》》code:"+code); //通过code换取网页授权access_tokenString  getToken ="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+Config.APPID+"&secret="+Config.APPSECRET+"&code="+code+"&grant_type=authorization_code";

String access_token =null;

try {

access_token = MyHttpUtils.getInstall().HttpPostRequest(getToken);

ObjectMapper objectMapper_access_token = new ObjectMapper();

MaptokenMap = objectMapper_access_token.readValue(access_token,new TypeReference>() {});

if(null != tokenMap.get("errmsg")){

// data.setErrMsg("授权登陆超时,请重新登陆");

return data;

}

String openid = (String) tokenMap.get("openid");

假如我们想要获取微信的用户信息,首先要获取基本支持的token 和 openId 这两个参数,因为token的失效时间是7200S,所以我们一般会选择存入数据库,2小时更新一次token。

获取基本支持的token

String url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+Config.APPID+"&secret="+Config.APPSECRET; try {

String token =  MyHttpUtils.getInstall().HttpPostRequest(url);

ObjectMapper  jbtoken= new ObjectMapper();

Map jbMap = jbtoken.readValue(token,new TypeReference>() {});

maps.put("token", jbMap.get("access_token"));

maps.put("expires_in", jbMap.get("expires_in"));

通过openId 和 基本支持的token  获取用户信息

String wxUserInfo = MyHttpUtils.getInstall().HttpPostRequest("https://api.weixin.qq.com/cgi-bin/user/info?access_token="+acctoken+"&openid="+openid+"&lang=zh_CN");

MyLogUtils.getInstance().log("获取到的微信用户信息:"+wxUserInfo);

ObjectMapper objectMapper_userInfo= new ObjectMapper();

Map userMap = objectMapper_userInfo.readValue(wxUserInfo,new TypeReference>() {});

String nickname = (String) userMap.get("nickname");

int sex = (Integer) userMap.get("sex");

String province = (String) userMap.get("province");

String city = (String) userMap.get("city");

String headimgurl = (String) userMap.get("headimgurl");等一些数据

你可能感兴趣的:(微信公众号开发)