JAVA----公众号获取AccessToken

公众号获取AccessToken

以 AppId, AppSecret 获取AccessToken

如果使用缓存token 时,缓存过期时间最好小于公众号返回的过期时间

使用的接口地址:
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=?&secret=?"

public static AjaxResult getAccessToken(BasePubTokenEntity entity) {
        String method = "[获取公众号微信AccessToken] ";
        Object cacheAccessToken = CacheUtils.get(CacheConstant.WE_CHAT_ACCESS_TOKEN + entity.getAppId());

        if (StringUtils.isNotNull(cacheAccessToken)) {
            log.info(method + "从缓存中获取");
            return AjaxResult.success("", cacheAccessToken);
        }

        try {
            String url = "https://api.weixin.qq.com/cgi-bin/token";
            entity.setGrantType("client_credential");

            url += "?" + UrlUtils.getUrlParamsByMap(getTokenParams(entity));

            String body = OkHttpUtils.getInstance().get(url).body().string();
            log.debug(method + "返回信息:{}", body);
            AjaxResult result = getAccessTokenResult(body);

            if (result.isError() || StringUtils.isNull(result.getData())) {
                log.error(method + ",返回信息{}", result);
                return AjaxResult.error(result.getCode(), result.getMsg());
            }

            JSONObject data = JSONObject.parseObject(result.getData() + "");

            CacheUtils.set(CacheConstant.WE_CHAT_ACCESS_TOKEN + entity.getAppId(),
                    data.getString("access_token"), (data.getInteger("expires_in") - 20));

            return AjaxResult.success("", data.get("access_token"));

        } catch (Exception e) {
            e.printStackTrace();
            log.error(method + e.getMessage());
        }

        return AjaxResult.error(-9, "获取Access Token 失败");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值