您的位置:首页 > 移动开发 > 微信开发

微信开发系列(四)_获取accessToken

2016-03-08 20:20 465 查看
之前介绍的token是为了验证服务器地址的可用性(可随便填写  一次连接成功之后不再有用)

现在的accessToken是通过appId和appSecret获取的重要凭证

accesstoken:

微信公众平台开发的时候会用到access_token,如:添加自定义菜单的时候需要用到access_token。只有认证过的订阅号或者服务号才能获取access_token。

在微信公众平台接口开发中,Access Token占据了一个很重要的地位,相当于进入各种接口的钥匙,拿到这个钥匙才有调用其他各种特殊接口的权限。

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。

一:编写accessToken实体类(accessToken值和有效时间)
package com.weixin.util;

public class AccessToken {

private String access_token = null;// 获取到的凭证
private String expires_in = null;// 凭证有效时间,单位:秒

public AccessToken() {
super();
}

public AccessToken(String access_token, String expires_in) {
this.access_token = access_token;
this.expires_in = expires_in;
}

public String toString() {
return "AccessToken [access_token=" + access_token + ", expires_in="
+ expires_in + "]";
}

public String getAccess_token() {
return access_token;
}
public void setAccess_token(String access_token) {
this.access_token = access_token;
}
public String getExpires_in() {
return expires_in;
}
public void setExpires_in(String expires_in) {
this.expires_in = expires_in;
}

}<span style="font-size:18px;"><strong>
</strong></span>二:微信号的appId和appSecret放在一个类中(也可以不单独写)
package com.weixin.util;

/**
* 这是微信基础信息类,在这个类中,说明微信公众账号的相关信息。
* @author Administrator
*
*/
public class WX_Info {

public static String APPID = "wxad2552796bf88e3b";

public static String SECRET = "b6f44e78da6d8e733695edea39758646";

}
三:获取accessToken
package com.weixin.util;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import com.weixin.util.AccessToken;

import com.google.gson.Gson;

public class WX_Token {

public static AccessToken getAccessTokenByNet(){

/*返回的accessToken*/
AccessToken accessToken = null;

/*得到的网络信息*/
StringBuffer strb = new StringBuffer();

HttpURLConnection connection = null;

//这是微信得到url_AccessToken所需的url
String url_AccessToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+WX_Info.APPID+"&secret="+WX_Info.SECRET;

try {

//得到AccessToken的URL
URL url = new URL(url_AccessToken);

//打开url
connection = (HttpURLConnection)url.openConnection();

//打开连接
connection.connect();

//得到InputStream
InputStream in = connection.getInputStream();

//得到InputStreamReader
InputStreamReader reader = new InputStreamReader(in);

//得到BufferedReader
BufferedReader breader = new BufferedReader(reader);

String str = null;

/*读取网络信息*/
while(null != (str = breader.readLine())){

strb.append(str);

}

//关闭breader
breader.close();

//关闭reader
reader.close();

//关闭in
in.close();

Gson gson = new Gson();

accessToken = gson.fromJson(strb.toString(), AccessToken.class);

} catch (Exception e) {
e.printStackTrace();
}

if(null!=connection){

connection.disconnect();

}

return accessToken;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: