第三方平臺微信接口請求代碼

請求微信服務器獲取用戶數據工具類

使用http請求,使用fastjson將jsonString轉成object
public class WeiXinUtil {

	/**
	 * 獲取access_token
	 * @param code url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ";
	 * */
	public static OAuthInfo getAccess_token(String code){
		String authUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ";
		authUrl= authUrl.replace("APPID", Param.APPID);
		authUrl = authUrl.replace("SECRET", Param.SECRET);
		authUrl = authUrl.replace("CODE", code);
		String jsonString = HTTPRequestUtil.sendPost(authUrl,"");
		OAuthInfo auth = null;
		try {
			auth = (OAuthInfo) FastJson.getObjectJson(OAuthInfo.class, jsonString);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return auth;
	}
	

	/**
	 * 獲取全局access_token,也就是token,
	 * @return 請確保在服務上線前一定全局緩存access_token和jsapi_ticket,兩者有效期均爲7200秒,否則一旦上線觸發頻率限制,服務將不再可用
	 * */
	public static Token getToken(){
		String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
		tokenUrl = tokenUrl.replace("SECRET", Param.SECRET);
		tokenUrl = tokenUrl.replace("APPID", Param.APPID);
		String tokenjson = HTTPRequestUtil.sendPost(tokenUrl, "");
		Token token = null;
		try {
			token = (Token) FastJson.getObjectJson(Token.class, tokenjson);
		} catch (Exception e) {
			return null;
		}
		return token;
	}
	
	/**
	 * 獲取userinfo
	 * @param access_token 不彈授權則使用全局token
	 * @param openid 用戶的openid
	 * @param isOpen 是否彈出授權
	 * @param isOpen false:不彈授權請求 url="https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ";
	 * @param isOpen true:彈授權請求url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ";
	 * **/
	public static User getUser(String access_token,String openid,boolean isOpen){ 
		String userUrl="";
		if(isOpen){
			userUrl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ";
		}else{
			userUrl =  "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ";
		}
		userUrl = userUrl.replace("ACCESS_TOKEN", access_token);
		userUrl = userUrl.replace("OPENID", openid);
		String jsonUser = HTTPRequestUtil.sendPost(userUrl, "");
		User user = null;
		try {
			user = (User) FastJson.getObjectJson(User.class, jsonUser);
		} catch (Exception e) {
			return null;
		}
		return user;
	}
	/**
	 * @param token 全局token
	 * 獲取config的ticket;
	 * 
	 * */
	public static String getConfig(){
		String ticketUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
		ticketUrl = ticketUrl.replace("ACCESS_TOKEN", Param.TOKEN.getAccess_token());
		String ticketJson = HTTPRequestUtil.sendPost(ticketUrl, "");
		JSONObject ticket = JSON.parseObject(ticketJson);
		return ticket.get("ticket").toString();
	}
}

用到的類
<pre name="code" class="java">public class OAuthInfo {

	private String access_token;
	private String expires_in;
	private String refresh_token;
	private String openid;
	private String scope;
	private String unionid;
	
}

public class Token {
	private String access_token;
	private long expires_in;
	private long endTime;
	

	
}

public class User {

	private	int id;
	private	String subscribe;
	private	String nickname;
	private	String sex;
	private	String language;
	private	String city;
	private	String province;
	private String country;
	private	String headimgurl;
	private	String openid;
	private	String subscribe_time;
	private int number;
	private Gift gift;
	
	
}

public class Param {
<span style="white-space:pre">	</span>public static String APPID = "88888888";
<span style="white-space:pre">	</span>public static String SECRET = "88888888";
<span style="white-space:pre">	</span>public static String TICKET;
<span style="white-space:pre">	</span>public static Token TOKEN;
}

set/get方法都沒放上來,http請求和fastjson網上可以找到


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章