package com.foxinmy.weixin4j.model; import java.util.HashMap; import java.util.Map; import com.foxinmy.weixin4j.cache.Cacheable; /** * access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token,正常情况下access_token有效期为7200秒, * 重复获取将导致上次获取的access_token失效 * * @className Token * @author jinyu(foxinmy@gmail.com) * @date 2014年4月5日 * @since JDK 1.6 * @see <a * href="https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183&token=&lang=zh_CN">微信公众平台获取token</a> * @see <a * href="http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8">微信企业号的主动模式</a> */ public class Token implements Cacheable { private static final long serialVersionUID = -7564855472419104084L; /** * 获取到的凭证 */ private String accessToken; /** * 凭证有效时间,单位:毫秒 */ private long expires; /** * token创建的时间,单位:毫秒 */ private long createTime; /** * 扩展信息 */ private Map<String, String> extra; /** * 永不过期、创建时间为当前时间戳的token对象 * * @param accessToken * 凭证字符串 */ public Token(String accessToken) { this(accessToken, -1); } /** * 有过期时间、创建时间为当前时间戳的token对象 * * @param accessToken * 凭证字符串 * @param expires * 过期时间 单位毫秒 */ public Token(String accessToken, long expires) { this(accessToken, expires, System.currentTimeMillis()); } /** * * @param accessToken * 凭证字符串 * @param expires * 过期时间 单位毫秒 * @param createTime * 创建时间戳 单位毫秒 */ public Token(String accessToken, long expires, long createTime) { this.accessToken = accessToken; this.expires = expires; this.createTime = createTime; this.extra = new HashMap<String, String>(); } public String getAccessToken() { return accessToken; } @Override public long getExpires() { return expires; } @Override public long getCreateTime() { return createTime; } public Map<String, String> getExtra() { return extra; } public Token pushExtra(String name, String value) { this.extra.put(name, value); return this; } @Override public String toString() { return "Token [accessToken=" + accessToken + ", expires=" + expires + ", createTime=" + createTime + ", extra=" + extra + "]"; } }