package com.wanhua.weixin.model;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.wanhua.weixin.util.WXConst;
import com.wanhua.weixin.util.WXHttpUtil;
/**
* 网页授权token
*
* @author enway
*
*/
public class OauthToken {
// 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
public String access_token;
// 凭证有效时间,单位:秒
public long expires_in;
// 用户刷新access_token
public String refresh_token;
// 用户唯一标识
public String openid;
// 用户授权的作用域,使用逗号(,)分隔
public String scope;
public int errcode;
public String errmsg;
/**
* 获取网页授权接口的凭证
*
* @param code
* @return
* @throws Exception
*/
public static OauthToken getOauthToken(String code) throws Exception {
// 请求的url
String urlStr = String.format(WXConst.URL_GET_OAUTH_TOKEN, code);
// 请求的结果
String result = WXHttpUtil.MsgHttpsRequest(urlStr, "POST", null);
// 网页授权token
OauthToken oauthToken = JSON.parseObject(result, OauthToken.class);
if (oauthToken.errcode != 0) {
throw new Exception("获取凭证失败");
}
return oauthToken;
}
/**
* 检验授权凭证(access_token)是否有效
*
* @param access_token
* @param openid
* @return
*/
public static boolean verifyOauthToken(String access_token, String openid) {
// 请求的url
String urlStr = String.format(WXConst.URL_VERIFY_OAUTH_TOKEN, access_token, openid);
try {
// 请求的结果
String result = WXHttpUtil.MsgHttpsRequest(urlStr, "POST", null);
System.out.println("verify Oauth Token==>" + result);
// 将请求结果转换成json格式数据
JSONObject jsonObject = JSON.parseObject(result);
// 请求结果的状态码
int code = jsonObject.getInteger("errcode");
// 请求成功
if (code == 0) {
return true;
} else {
// 请求失败
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}