• 网页授权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;
            }
        }

    }

  • 相关阅读:
    js Bom Dom
    2019西安多校联训 Day1
    数论——扩展欧几里德
    MySQL InnoDB引擎行格式、数据页简析
    centos7安装ansible并简单设置k8s集群节点hosts文件
    Redis缓存穿透和雪崩
    Redis主从复制——哨兵模式
    Redis主从复制——非哨兵模式
    Redis发布订阅
    Redis持久化——RDB与AOF
  • 原文地址:https://www.cnblogs.com/xunfang123/p/4237132.html
Copyright © 2020-2023  润新知