网页授权token

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;
        }
    }

}

原文地址:https://www.cnblogs.com/xunfang123/p/4237132.html