001package io.jboot.components.cache.support;
002
003import com.jfinal.weixin.sdk.cache.IAccessTokenCache;
004import io.jboot.Jboot;
005import io.jboot.components.cache.JbootCacheManager;
006
007public class WechatAccessTokenCache implements IAccessTokenCache {
008
009    static final String CACHE_NAME = "wechat_access_tokens";
010
011    public WechatAccessTokenCache() {
012        JbootCacheManager.me().getCache()
013                .addThreadCacheNamePrefixIngore(CACHE_NAME);
014    }
015
016
017    @Override
018    public String get(String key) {
019        return Jboot.getCache().get(CACHE_NAME, key);
020    }
021
022
023    @Override
024    public void set(String key, String value) {
025        // 微信相关 token 的有效期之多 2 个小时
026        // 如果设置为 7200,则有一定几率出现如下错误
027        // {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest rid: **"}
028        Jboot.getCache().put(CACHE_NAME, key, value,7000);
029    }
030
031
032    @Override
033    public void remove(String key) {
034        Jboot.getCache().remove(CACHE_NAME, key);
035    }
036}