微信公众号开发 ----微信获取access_token(2)

首先微信公众号配置

在这里插入图片描述
在这里插入图片描述

现在开始获取ACCESS_TOKEN

有点坑的是微信有2个ACCESS_TOKEN( 一个用code一个不要)

基础接口的token 获取接口是
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

上方法:

    /**
     * 获取当前公众号的token
     * @return
     * https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
     */
    public static String getAccessToken(String code) {
 		StringBuffer sb = new StringBuffer();
        //头
        sb.append("https://api.weixin.qq.com/cgi-bin/token?");
        //grant_type
        sb.append("grant_type=client_credential");
        //appID
        sb.append("&appid=" + wechatConfig.getAppID());
        //secret
        sb.append("&secret=" + wechatConfig.getAppsecret());
        //创建连接
        //解析微信响应回来的json字符串
        String jsonStr = HttpClientUtil.doGet(sb.toString());
        //打印一下
        System.out.println(jsonStr);
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        //取得access_token 
        access_token = jsonObject.getString("access_token");
        return access_token;
    }

用户网页授权access_token 获取接口地址是

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
1.取得code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。
scope 参数 snsapi_base 和 snsapi_userinfo
在这里插入图片描述
获取code
微信访问以下方法返回的地址

 /**
     * @param url   地址 微信重定向的地址
     * @param scope 权限
     * @param state 重定向的参数
     * @return 拼接微信获取code的地址
     */
    public static String getCode(String url, String scope, String state) {

//        https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
        StringBuffer sb = new StringBuffer();
        //头
        sb.append("https://open.weixin.qq.com/connect/oauth2/authorize?");
        //appID
        System.out.println(wechatConfig.getAppID());
        sb.append("&appid=" + wechatConfig.getAppID());
        //redirect_uri
        sb.append("&redirect_uri=" + url);
        //secret
        sb.append("&response_type=code");
        // scope
        sb.append("&scope=" + scope);
        sb.append("&state=" + state + "#wechat_redirect");
        //创建连接
        //解析微信响应回来的json字符串
        String jsonStr = sb.toString();
        return jsonStr;
    }

//取得code
  String code = request.getParameter("code");
  

通过code 换取access_token

 /**
     * 获取当前公众号的AccessCodeToken
     *
     * @param code
     * @return
     */
    public static String getAccessCodeToken(String code) {
        //如果redis中有token name就从redis中拿
        if (access_code_token != null) {
            return access_code_token;
        }
//        https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
        StringBuffer sb = new StringBuffer();
        //头
        sb.append("https://api.weixin.qq.com/sns/oauth2/access_token?");
        //appID
        sb.append("&appid=" + wechatConfig.getAppID());
        //secret
        sb.append("&secret=" + wechatConfig.getAppsecret());
        // code
        sb.append("&code=" + code);
        sb.append("&grant_type=authorization_code");
        //创建连接
        //解析微信响应回来的json字符串
        String jsonStr = HttpClientUtil.doGet(sb.toString());
        System.out.println(jsonStr);
        return jsonStr ;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值