微信官方文档接口调用凭证接口getAccessToken
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html
AccessTokenUtil .java
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class AccessTokenUtil {
@Autowired
private RedisTemplate redisTemplate;
// 小程序唯一凭证,即 AppID
public static final String appId = "xxx";
// 小程序唯一凭证密钥,即 AppSecret
public static final String secret = "xxx";
/**
* 接口调用凭证 access_token
*
* @return
*/
public String getAccessToken(){
// 从缓存中获取
ValueOperations valueOperations = redisTemplate.opsForValue();
String accessToken = String.valueOf(valueOperations.get("access_token"));
if (!StringUtils.isEmpty(accessToken) && !"null".equals(accessToken)) {
return accessToken;
}
String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+secret;
String result = HttpClientUtil.doGet(accessTokenUrl);
JSONObject json = JSONUtil.parseObj(result);
String access_token = String.valueOf(json.get("access_token"));
Long expires_in = Long.valueOf(String.valueOf(json.get("expires_in")));
if(StringUtils.isEmpty(access_token)){
access_token="";
}
System.out.println("json:"+json.toString());
// 存redis, 过期时间为7200秒
valueOperations.set("access_token",access_token,expires_in, TimeUnit.SECONDS);
return access_token;
}
}
输出:
json:{"access_token":"58_izt-9LP7oQRDzUrIKItfmZ-t99kYTeJ8TQ5yr3zzofl3LdkH0IR_4R_x9UFqYmgK_K7xVVXLwyDzAH9UlHw89H0guqQU2eV7WD2Fvub63a-t2KjkdRbxG6MmbEFLfM2NFmweeH-SFAF2faO3VAXjAEACHE","expires_in":7200}
redis: