news 2026/6/9 15:06:52

java 对接微信公众号(一)获取token

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java 对接微信公众号(一)获取token

1.登录微信公众平台,在基本配置里获取AppId和AppSecret

2.获取token(token获取到存本地,后续API都要带token访问)

需要在基本配置里配置ip白名单才能获取到token

/** TokenURL */ private final static String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"; /** APP_ID */ private final static String APP_ID = "wx1234567891011121"; /** APP_SECRET */ private final static String APP_SECRET = "123qgs4vg5yt67vsf8r9bri1011j1i2b"; /** * 获取token,默认7200秒过期,所以存redis7200秒取一次 * * @return 获取用户详情 */ public String getToken() { String redisKey = "Tencent:AccessToken"; String token = (String)redisUtils.get(redisKey); if(ObjectUtils.isEmpty(token)){ token = tencentService.getToken(); //设置缓存 2小时 redisUtils.setEx(redisKey,token, 7200, TimeUnit.SECONDS); } return token; } //tencentService.getToken(); @Override public String getToken(){ try { HttpClient client = HttpClients.createDefault(); String tokenUrl = MessageFormat.format(GET_TOKEN_URL, APP_ID, APP_SECRET); HttpGet request = new HttpGet(tokenUrl); HttpResponse response = client.execute(request); JSONObject object = getResponseJson(response); if (object == null) { return null; } return ObjectUtils.isEmpty(object) ? null : object.getString("access_token"); }catch (Exception e){ log.info(e.getMessage()); } return null; } //getResponseJson(); private static JSONObject getResponseJson(HttpResponse response) throws IOException { JSONObject json = null; HttpEntity entity = response.getEntity(); if(entity!=null){ String result = EntityUtils.toString(entity,"UTF-8"); json = JSONObject.parseObject(result); } if(ObjectUtils.isEmpty(json)){ return null; } return json; }
//可能用到的包 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.MessageFormat; import java.util.Date; import java.util.Map;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 15:01:54

035、Worktree 隔离开发:EnterWorktree 和 ExitWorktree 的并行开发完整工作流

035、Worktree 隔离开发:EnterWorktree 和 ExitWorktree 的并行开发完整工作流 上周五下午四点,我正在调试一个生产环境的模型推理延迟问题。Claude Code 已经帮我生成了三版优化代码,每版都在不同的 feature 分支上。这时候运维突然喊我:“线上有个紧急热修复,五分钟内必…

作者头像 李华
网站建设 2026/6/9 14:54:53

LeagueAkari英雄联盟工具箱:智能游戏助手完整教程与实战指南

LeagueAkari英雄联盟工具箱:智能游戏助手完整教程与实战指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一款基于…

作者头像 李华
网站建设 2026/6/9 14:50:50

嵌入式MCU时钟与ADC设计实战:从数据手册到高精度低功耗系统

1. 项目概述与核心价值在嵌入式开发的江湖里,时钟系统和ADC模块就像是武林高手的内功和招式。内功不纯,招式再精妙也发不出力;招式不准,内功再深厚也打不到要害。我接触过不少项目,从简单的温湿度采集到复杂的电机伺服…

作者头像 李华