| | |
| | | import com.jilongda.applet.wx.body.resp.AccessTokenRespBody; |
| | | import com.jilongda.applet.wx.body.resp.Code2SessionRespBody; |
| | | import com.jilongda.applet.wx.body.resq.Code2SessionResqBody; |
| | | import com.jilongda.common.redis.RedisAutoTemplate; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.data.redis.cache.RedisCache; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | |
| | | public static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"; |
| | | private WeixinProperties wxConfig; |
| | | private RestTemplate wxRestTemplate; |
| | | private WxCacheTemplate<String> wxCacheTemplate; |
| | | private RedisAutoTemplate redisAutoTemplate; |
| | | |
| | | public WxAppletTools(RestTemplate wxRestTemplate, WeixinProperties wxConfig, WxCaffineCache wxCacheTemplate) { |
| | | public WxAppletTools(RestTemplate wxRestTemplate, WeixinProperties wxConfig, RedisAutoTemplate redisAutoTemplate) { |
| | | this.wxRestTemplate = wxRestTemplate; |
| | | this.wxCacheTemplate = wxCacheTemplate; |
| | | this.wxConfig = wxConfig; |
| | | this.redisAutoTemplate = redisAutoTemplate; |
| | | } |
| | | |
| | | public WxAppletTools(RestTemplate wxRestTemplate, WeixinProperties wxConfig) { |
| | |
| | | * @return |
| | | */ |
| | | public String getAccessToken() { |
| | | String accessToken = wxCacheTemplate.getKey(ACCESSTOKEN_CACHE_KEY); |
| | | String accessToken = redisAutoTemplate.getStr(ACCESSTOKEN_CACHE_KEY); |
| | | if (StringUtils.hasLength(accessToken)) { |
| | | return accessToken; |
| | | } |
| | |
| | | // 抛出错误 |
| | | throw new WxException(accessTokenRespBody.getErrorCode() + ":" + accessTokenRespBody.getErrorMsg()); |
| | | } |
| | | wxCacheTemplate.setKey(ACCESSTOKEN_CACHE_KEY, accessTokenRespBody.getAccessToken()); |
| | | redisAutoTemplate.setStr(ACCESSTOKEN_CACHE_KEY, accessTokenRespBody.getAccessToken()); |
| | | return accessTokenRespBody.getAccessToken(); |
| | | } |
| | | |