Java获取微信access_token(支持缓存)

微信公众号 java 文章 2021-01-24 21:13 1082 0 全屏看文

AI助手支持GPT4.0

Java获取微信access_token。

但是我偷懒,所以有的部分使用了依赖包。

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.3.1</version>
</dependency>
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.7</version>
</dependency>


之后就是代码了。

package cn.sanshu;

import com.alibaba.fastjson.JSONObject;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.sanshu.pojo.AccessToken;



public class TokenUtil {
	//从微信后台拿到APPID和APPSECRET 并封装为常量
    private static final String APPID = "您的APPID";
    private static final String APPSECRET = "您的APPSECRET";
    private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
   
    
    /**
     * 获取AccessToken
     * @return 返回拿到的access_token及有效期
     */
    public static AccessToken getAccessToken(String appid){
    	String tokenFilePath = "D:\\temp\\"+appid+"_token.json";
    	AccessToken token=null;
    	if(FileUtil.exist(tokenFilePath)) {
    		String accessTokenStr = FileUtil.readUtf8String(tokenFilePath);
    		token = JSONObject.parseObject(accessTokenStr, AccessToken.class);
    		if(token.getExpire_time()<System.currentTimeMillis()) {
    			token = null;
    		}
    	}
    	if(token ==null) {
	        String url = ACCESS_TOKEN_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET);//将URL中的两个参数替换掉
	        String tokenResp =HttpUtil.get(url);
	        if(StrUtil.isEmpty(tokenResp)) {
	        	System.err.println("获取token失败,返回为空");
	        }
	        token = JSONObject.parseObject(tokenResp, AccessToken.class);
	        long expireTime = System.currentTimeMillis()+token.getExpires_in()*1000;
	        token.setExpire_time(expireTime);
	        FileUtil.writeUtf8String(JSONObject.toJSONString(token), tokenFilePath);
    	}
        return token;
    }
}


调用方法:

public static void main(String[] args) {
	AccessToken token = getAccessToken(APPID);
	System.out.println(JSONObject.toJSONString(token));
}


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
公众号推送消息 插入超链接和插入小程序链接代码
微信公众号迁移后openid转换接口
php发送微信公众号消息时候的换行符
公众号提交小程序菜单的时候报了 no permission to use weapp in menu
微信公众号小程序如何判断一个openid是否属于某个appid
随便看看
微信公众H5,获取支付分授权,提示微信支付分逐步开放中,点击返回商户,商户页面被遮挡,无法点击, 569
实测,电脑端打开“微信开放社区”小程序用时7秒,这问题真看不到吗? 474
个人主体的小程序审核是不是优先级低? 410
当前痛点:一、文件批量上传,二、保持原文件名。求问大佬解题思路? 592
checkbox/radio的color无法改变颜色 459
普通二维码扫码获取不到参数是什么情况? 730
小程序代码分包了,但是主包代码还是没少多少?求解? 476
video组件怎么样才能读取手机本地的视频文件? 723
流量主结算问题? 474
小程序后台不能配置域名,点确定不了? 454