diff --git a/CHANGE.md b/CHANGE.md
index 39236993..f0893bc0 100644
--- a/CHANGE.md
+++ b/CHANGE.md
@@ -1,41 +1,41 @@
* 2014-10-27
-
+
+ maven多模块分离
-
+
+ **weixin4j-mp**: 用netty构建http服务器并支持消息分发
-
+
* 2014-10-28
-
+
+ **weixin4j-mp**: 调整`ActionMapping`抽象化
* 2014-10-31
+ **weixin4j-mp**: `weixin.properties`切分为API调用地址和公众号信息两部分
-
+
+ **weixin4j-base**: `TokenApi`重命名为`TokenHolder`
-
+
+ **weixin4j-base**:新增`WeixinConfig`等类
* 2014-11-03
+ **weixin4j-mp**: 分离为`weixin-mp-api`和`weixin-mp-server`两个工程
-
+
+ **weixin4j-mp**: 加入支付模块
-
+
* 2014-11-05
+ 优化了代码
* 2014-11-06
-
+
+ **weixin4j-base**: 删除`WeixinConfig`类只保留`WeixinAccount`类
-
+
+ **weixin4j-mp**: 新增V3版本`退款接口`
* 2014-11-08
-
+
+ **weixin4j-mp**: 新增V2版本`退款申请`、`退款查询`、`对账单下载`三个接口
-
+
+ **weixin4j-mp**: 新增一个简单的`语义理解`接口
* 2014-11-11
@@ -45,276 +45,276 @@
* 2014-11-15
+ **weixin4j-base**: 新增aes加密解密函数
-
+
+ **weixin4j-mp**: 新增获取`微信服务器IP地址`接口
-
+
+ **weixin4j-mp**: 解决`server工程`打包后不能运行问题(`ClassUtil`无法获取jar包里面的类)
-
+
+ **weixin4j-mp**: 新增被动消息的`加密`以及回复消息的`解密`
-
+
* 2014-11-16
+ **weixin4j-mp**: 新增`多客服`接口
-
+
* 2014-11-17
+ **weixin4j-mp**: 新增`冲正`和`被扫支付`接口
-
+
* 2014-11-19
+ **weixin4j-base**: 新增`WeixinQyAccount`企业号账号信息类
-
+
+ **weixin4j-qy**: 得到`weixin4j-qy`和`weixin4j-qy-server`工程
-
+
+ **weixin4j-qy**: 新增`部门管理`接口
-
+
+ **weixin4j-qy**: 新增`用户管理`接口
-
+
+ **weixin4j-qy**: 新增`标签管理`接口
* 2014-11-23
+ **weixin4j-base**: 新增企业号消息体以及用`Responseable`,`Notifyable`,`Massable`三个接口标记不同的可接受的消息类型
-
+
+ **weixin4j-mp**: 重新定义(手贱)了「被动消息」「客服消息」「群发消息」的传输实体
-
+
+ **weixin4j-mp**: `WeixinServerBootstrap`重命名为`WeixinMpServerBootstrap`
-
+
+ **weixin4j-qy**: 新增`多媒体管理`接口
-
+
+ **weixin4j-qy**: 新增`发送消息`接口
-
+
+ **weixin4j-qy**: 新增`菜单管理`接口
-
+
* 2014-11-24
+ **weixin4j-base**: 将Action跟Mapping基础类并入到项目
-
+
+ **weixin4j-qy**: 新增netty服务与消息分发
-
+
* 2014-11-27
+ **weixin-base**: 将BaseApi移入
-
+
* 2014-11-29
+ 重构了POM
-
+
* 2014-12-12
+ **weixin4j-mp**: 新增设置`模板消息所处行业`、`获取模板消息ID`接口
-
+
* 2014-12-15
+ **weixin4j-mp**: 修改某些函数在注释上的参数描述错误
-
+
+ **weixin4j-mp**: 调整PayUtil类中`createPayJsRequestJsonV3`的形参位置,`notify_url`与`spbill_create_ip`对换与V2保持一致
-
+
+ **weixin4j-mp**: 在PayUtil类中新增paySign重载版本函数,避免在某些地方产生歧义造成签名错误(appid,appKey)
-
+
+ **weixin4j-mp**: 修正V3版本JSAPI接口支付签名错误bug(坑)
-
+
* 2014-12-16
+ **weixin4j-mp**: 调整方法上@see注解的文档说明接口url
-
+
+ **weixin4j-mp**: 新增群发消息预览、状态查询接口
-
+
+ **weixin4j-mp**: 新增多客服添加账号、更新账号、上传头像、删除账号接口
* 2014-12-18
-
+
+ clear code with findbugs plugin
-
+
+ change the version to 1.1
-
+
* 2014-12-28
+ **weixin4j-qy**: 增加用户进入应用的callback事件
- + **weixin4j-qy**: 增加批量获取用户详情的接口
-
+ + **weixin4j-qy**: 增加批量获取用户详情的接口
+
+ **weixin4j-qy**: 新增获取微信服务器IP接口
-
+
+ **weixin4j-qy**: 调整回调模式下的首次验证的签名方式
* 2015-01-04
+ **weixin4j-base**: 新增获取classpath目录下的资源路径的方法
-
+
+ **weixin4j-mp**: 支付模块拆分为V2跟V3,新增WeixinPayProxy类
-
+
+ **weixin4j-mp**: 退款相关类拆分V2跟V3
-
+
+ **weixin4j-mp**: 新增接口上报接口
-
+
+ **weixin4j-qy**: 新增批量删除员工接口
-
+
* 2015-01-10
+ **weixin4j-base**: 重构token实现机制
-
+
+ **weixin4j-base**: 新增JSTICKET支持
-
+
* 2015-01-15
-
+
+ **weixin4j-qy**: 新增邀请成员关注接口
-
+
* 2015-01-22
-
+
+ **weixin4j-base**: 升级fastjson到1.2.3
-
+
+ **weixin4j-mp**:调整部分实体类(*paypackage)中没有按照骆驼命名规则的属性名
-
+
* 2015-01-31
-
+
+ **weixin4j-mp**: 新增数据分析接口
-
+
* 2015-02-05
+ release 1.2
-
+
* 2015-03-06
-
+
+ **weixin4j-mp**: 新增oauth授权接口
-
+
* 2015-03-08
-
+
+ **weixin4j-qy**: 新增根据code获取成员信息接口
-
+
* 2015-03-17
-
+
+ **weixin4j-qy**: 新增企业应用设置接口
-
+
* 2015-03-21
+ **weixin4j-mp**: 新增群发消息给所有人接口
-
+
+ **weixin4j-mp**: 新增素材管理多个接口
-
+
+ **weixin4j-mp**: 新增多客服会话管理多个接口
-
+
* 2015-03-25
+ **weixin4j-mp**: 根据《微信商户平台文档》修缮[Pay3Api](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/Pay3Api.java)类
-
+
+ **weixin4j-mp**: 新增客服创建、关闭、转接会话事件
-
+
+ **weixin4j-mp**: 新增deploy.xml远程部署ant脚本
-
+
+ **weixin4j-qy**: 新增deploy.xml远程部署ant脚本
-
+
* 2015-03-29
+ **weixin4j-base**: 单行注释调整为多行文档注释
-
+
+ **weixin4j-mp**: 单行注释调整为多行文档注释
-
+
+ **weixin4j-mp**: 新增[CouponApi](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/CouponApi.java)代金券接口
-
+
+ **weixin4j-qy**: 单行注释调整为多行文档注释
-
+
* 2015-04-01
+ **weixin4j-mp**: 新增[CashApi](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/CashApi.java)发红包、企业付款接口
-
+
+ **weixin4j-qy**: 新增[BatchApi](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/BatchApi.java)批量异步执行任务接口
-
+
+ **weixin4j-qy**: DepartApi命名为[PartyApi](./weixin4j-qy/weixin4j-qy-api/src/main/java/com/foxinmy/weixin4j/qy/api/PartyApi.java)
-
+
* 2015-04-04
+ **weixin4j-qy**: [MediaApi](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java)新增批量上传成员和部门接口
-
+
+ released 1.3
-
+
* 2015-04-09
+ **weixin4j-qy**: [AgentApi](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/AgentApi.java)新增获取应用列表概况接口
-
+
* 2015-04-13
+ **weixin4j-base**: 删除WeixinTokenCreator与WeixinJSTicketCreator类
-
+
+ **weixin4j-mp**: 新增WeixinTokenCreator与WeixinJSTicketCreator类
-
+
+ **weixin4j-mp**: 新增用户分组批量移动、删除组别接口
-
+
+ **weixin4j-qy**: 新增WeixinTokenCreator与WeixinJSTicketCreator类
-
+
* 2015-04-16
+ **weixin4j-mp**: 调整[二维码参数](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/QRParameter.java)类
-
+
+ **weixin4j-mp**: 新增获取[自定义菜单配置、自动回复配置](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/HelperApi.java)接口
-
+
* 2015-04-18
+ **weixin4j-mp**: 调整[客服接口](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/CustomApi.java)类的方法名
-
+
+ **weixin4j-mp**: 在[二维码接口](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/QRApi.java)类新增获取二维码url方法
-
-
+
+
* 2015-04-19
+ 调整聚合方式,去除原先的weixin4j-mp和weixin4j-qy模块,相应的api模块直接继承weixin4j父模块
-
+
+ **weixin4j-base**: 删除ActionMapping相关类
-
+
* 2015-04-29
+ released 1.4
-
+
* 2015-04-30
+ **weixin4j-mp**: 新增`media_id`和`view_limited`两种菜单类型
-
+
* 2015-05-07
+ **weixin4j-server**: 完成基本骨架
-
+
* 2015-05-08
+ **weixin4j-server**: 完成消息分发器、消息处理器、消息拦截器的骨架
-
+
* 2015-05-13
+ **weixin4j-server**: 新增了许多被动消息类型
-
+
* 2015-05-15
+ **weixin4j-server**: 消息拦截器和处理器支持泛型
-
+
* 2015-05-16
+ **weixin4j-server**: 实现消息处理器的泛型自动匹配
-
+
+ **weixin4j-server**: 去掉SLF4J-API依赖
-
+
+ **weixin4j-server**: released 1.0.0!
-
+
* 2015-05-18
+ **weixin4j-server**: 新增WeixinMessageKeyDefiner类
-
+
* 2015-05-20
+ **weixin4j-server**: released 1.0.1
-
+
* 2015-05-30
+ **去掉httpclient依赖**
-
+
+ **去掉redis依赖**
-
+
* 2015-06-03
+ **去掉xstream依赖**
-
+
* 2015-06-04
+ **weixin4j-mp**: 新增查询红包接口
-
+
* 2015-06-08
+ **weixin4j-base**: 新增群发卡券消息类型
@@ -324,367 +324,379 @@
+ **weixin4j-server**: released 1.0.2
+ weixin.properties重命名为weixin4j.properties
-
+
+ released 1.5.0!
-
+
* 2015-06-12
+ 修缮token实现机制
-
+
+ **weixin4j-qy**: 新增企业号[登陆授权](weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/OauthApi.java)API
-
+
* 2015-06-21
+ 新增了默认常量对象在BaseApi.java类
-
+
+ **weixin4j-qy**: 新增企业号[第三方应用API](weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite)。
* 2015-06-22
+ **weixin4j-qy**: 新增企业号[第三方应用代理](weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinSuiteProxy.java)。
-
+
* 2015-06-23
+ **weixin4j-mp**: 新增企业付款查询接口
-
+
+ **weixin4j-server**: 对多个公众号的接入支持
-
+
* 2015-06-24
+ **weixin4j-qy**: 新增userid与openid互换接口
-
+
* 2015-06-26
+ 将微信支付模块移到base工程
-
+
+ **weixin4j-qy**: 管理成员新增头像参数
-
+
* 2015-06-27
+ 媒体接口(MediaApi)中上传方法中的File类型调整为InputStream
-
+
* 2015-07-04
+ **weixin4j-qy**: 新增[媒体素材接口](weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java)
-
+
+ released 1.5.1
-
+
* 2015-07-22
+ **weixin4j-qy**: 创建标签时可以指定ID
-
+
* 2015-07-23
+ 微信支付新增授权码查询OPENID接口
-
+
* 2015-07-25
+ 精简函数上的@link注释
-
+
+ 新增媒体文件上传、下载结果类([MediaUploadResult.java](./weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/MediaUploadResult.java),[MediaDownloadResult.java](./weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/MediaDownloadResult.java))
-
+
* 2015-07-29
+ 精简WeixinAccount类及其配置文件
-
+
+ **weixin4j-mp**: 新增二维码结果类[QRResult.java](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/QRResult.java)并将二维码接口[QRApi.java](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/QrApi.java)名称变更为createQR和createQRFile
-
+
+ **weixin4j-mp**: [Oauth授权](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/OauthApi.java)跳转的uri在配置文件的属性名改为`oauth_redirect_uri`
-
+
* 2015-07-30
-
+
+ **weixin4j-qy**: 调整[WeixinSuiteProxy](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinSuiteProxy.java)对多个套件的支持
* 2015-07-31
+ **weixin4j-server**:`WeixinServerBootstrap` 构造函数支持多个公众号
-
+
+ **weixin4j-server**:`MessageHandlerAdapter` 声明时限定泛型为`WeixinMessage`的子类
-
+
+ **weixin4j-mp**: 新增图文消息中上传图片接口
-
+
* 2015-08-01
+ **weixin4j-base**: 整理了Tuple消息元件
-
+
+ **weixin4j-mp**: 新增了群发消息中的上传视频接口
-
+
+ **weixin4j-mp**: 调整群发消息接口返回类型为字符串数组[{msg_id,msg_data_id}]
-
+
+ **weixin4j-qy**: 新增聊天服务接口[ChatApi](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/ChatApi.java)
-
+
+ **weixin4j-server**: 新增企业号消息服务相关类
-
+
* 2015-08-03
+ **weixin4j-server**: 新增base64解编码类(来自apache)
-
+
+ 在WeixinProxy类新增VERSION字段
-
+
* 2015-08-06
+ **weixin4j-server**: 调整`LocationEventMessage`类中的经纬度字段类型为double
-
+
* 2015-08-07
-
+
+ 主要去掉了实体类中的字段上@JSONFiled上的deserialize=false属性和不合理的format方法
-
+
* 2015-08-09
-
+
+ **weixin4j-qy**: 会话API暴露到WeixinProxy类
-
+
+ **weixin4j-qy**: 重命名NotifyApi#sendNotify为sendNotifyMessage
-
+
+ `release`: weixin4j-[mp|qy] upgrade to 1.5.2,weixin4j-server upgrade to 1.0.4
-
+
* 2015-08-10
+ **weixin4j-qy**: 新增了会话API测试类
-
+
* 2015-08-13
-
+
+ `release`: weixin4j-[mp|qy] upgrade to 1.5.3,weixin4j-server upgrade to 1.0.5
-
+
+ **weixin4j-[mp|qy]**: 媒体接口类(MediaApi)查询素材接口调整:去掉offset,count替换为Pageable类
-
+
* 2015-08-18
-
+
+ 比较大的改动:重构了HttpClient部分
-
+
* 2015-09-08
-
+
+ weixin4j-mp:新增批量获取用户信息接口
* 2015-09-10
-
+
+ 对Netty-Http-Client的支持
-
+
* 2015-09-11
+ weixin4j-[mp|qy]:version upgrade to 1.6.0
-
+
+ weixin4j-server:version upgrade to 1.1.0
-
+
* 2015-09-16
+ weixin4j-[mp|qy]:version upgrade to 1.6.1
-
+
+ weixin4j-server:version upgrade to 1.1.1
-
+
* 2015-09-21
+ 重要:工程运行环境由jdk1.7调整为jdk1.6
-
+
+ weixin4j-[mp|qy]:version upgrade to 1.6.2
-
+
+ weixin4j-server:version upgrade to 1.1.2
-
+
* 2015-09-27
+ weixin4j-base:新增手动刷新token方法
-
+
* 2015-10-25
+ weixin4j-server:新增认证通知事件
-
+
* 2015-11-09
-
+
+ weixin4j-[mp|qy]:version upgrade to 1.6.3
-
+
+ weixin4j-server:version upgrade to 1.1.3
-
+
* 2015-11-20
+ weixin4j-qy:新增客服消息
-
+
* 2015-11-23
+ weixin4j-base:PayException重命名为WeixinPayException
-
+
+ weixin4j-base:调整PayPackageV2构造函数:从主到次
-
+
+ weixin4j-base:调整PayUtil2#createPayJsRequestJsonV2参数位置:从主到次
-
+
+ weixin4j-base:调整MicroPayPackage构造函数:从主到次
-
+
+ weixin4j-base:调整MicroPayPackage构造函数:从主到次
-
+
+ weixin4j-base:调整PayUtil#createPayJsRequestJson参数位置:从主到次
-
+
+ weixin4j-base:调整PayUtil#createNativePayRequestURL参数位置:从主到次
-
+
* 2015-12-04
+ weixin4j-base:【重要】修改PayUtil中的createPayJsRequest方法的返回值为MchPayRequest,便于二次发起支付。
-
+
+ weixin4j-base:【重要】添加MchPayRequest的构造函数,便于二次发起支付。
-
+
+ weixin4j-qy:【重要】第三方应用授权时获取永久授权码覆盖问题。
-
+
* 2015-12-08
-
+
+ weixin4j-[mp|qy]:version upgrade to 1.6.4
-
+
+ weixin4j-server:version upgrade to 1.1.4
-
+
+ weixin4j-base:新增RegexUtil类
-
+
+ weixin4j-base:调整Pay3Api退款方法名为 refundApply
-
+
+ weixin4j-base:调整Pay3Api#refundApply参数个数
-
+
* 2015-12-10
+ 添加可选[RedisTokenStorager](weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenStorager.java)
-
+
+ 添加缓存token时的前缀`wx`
-
+
+ 【特大注意】weixin4j.properties全部的属性名添加`weixin4j`前缀,并用`.`代替原来的`_`
-
+
* 2015-12-15
-
+
+ weixin4j-[mp|qy]:version upgrade to 1.6.5
-
+
* 2015-12-18
+ weixin4j-mp:新增个性化菜单接口
-
+
+ weixin4j-mp:WeixinProxy.getCustomRecord 参数变更为 Date startTime, Date endTime, Pageable pageable
-
+
* 2015-12-19
+ weixin4j-base:删除PayUtil类,接口转移到PayApi类
-
+
* 2015-12-21
-
+
+ weixin4j-server:WeixinMessageHanlder中新增weight接口
-
+
* 2015-12-25
-
+
+ weixin4j-base:WeixinPayProxy类新增获取支付信息#getWeixinAccount方法
-
+
+ weixin4j-base:新增JSSDK的config生成类
-
+
+ weixin4j-base:JSSDKHelper 重命名为 JSSDKConfigurator
-
+
+ weixin4j-base:重构了token类
-
+
+ weixin4j-mp:WeixinProxy新增获取appid(getAppId)方法
-
+
+ weixin4j-mp:WeixinProxy新增获取jsticket(getJSTicketHolder)方法
-
+
+ weixin4j-mp:私有化WeixinProxy(TokenHolder)构造器
-
+
+ weixin4j-mp:调整WeixinTicketCreator类
-
+
+ weixin4j-qy:WeixinProxy新增获取corpid(getCorpId)方法
-
+
+ weixin4j-qy:WeixinProxy新增获取jsticket(getJSTicketHolder)方法
-
+
+ weixin4j-qy:私有化WeixinProxy(TokenHolder)构造器
-
+
+ weixin4j-qy:SuiteApi新增获取Weixinproxy对象(getWeixinProxy)方法
-
+
+ weixin4j-qy:删除WeixinJSTicketCreator类
-
+
+ weixin4j-qy:新增企业号联系人筛选配置类(JSSDKContactConfigurator)
-
+
+ weixin4j-server:DigestUtil 重命名为 DigestUtils
-
+
* 2015-12-26
-
+
+ weixin4j-base:MchPayRequest抽象化
-
+
+ weixin4j-server:WeixinMessageInterceptor加入weight权重接口
-
+
+ weixin4j-server:移入weixin4j下模块化
-
+
+ weixin4j-server:删除无用的工具类并重新整理
-
+
* 2015-12-30
+ weixin4j-qy:新增服务商接口(ProviderApi)
-
+
* 2015-12-31
+ weixin4j-[mp|qy]:version upgrade to 1.6.6
-
+
+ weixin4j-server:version upgrade to 1.1.5
-
+
* 2016-01-20
+ weixin4j-mp:新增获取模板和删除模板接口
-
+
+ weixin4j-mp:新增自定义个性化菜单语言信息匹配项
-
+
* 2016-01-23
+ weixin4j-qy:新增获取客服列表接口
-
+
* 2016-01-24
+ weixin4j-base:新增MemoryTokenStorager(内存保存token)类
-
+
+ weixin4j-base:TokenStorager类新增evict和clear接口
-
+
* 2016-01-26
+ weixin4j-qy:新增上传图文消息内的图片接口
-
+
* 2016-01-29
+ 新增Weixin4jSettings配置类
-
+
* 2016-02-06
+ weixin4j-[mp|qy]:version upgrade to 1.6.7
-
+
+ weixin4j-server:version upgrade to 1.1.6
-
+
+ happy new year(:
-
+
* 2016-03-22
+ weixin4j-base:企业付款相关类更名
-
+
* 2016-03-25
+ weixin4j-base:v2和v3支付改名
-
+
+ weixin4j-base:支持服务商版支付
-
+
+ weixin4j-base:签名类接口化
-
+
+ weixin4j-base:新增查询结算金额接口
-
+
+ weixin4j-base:新增查询汇率接口
-
+
* 2016-03-27
+ weixin4j-base:删除Mciro支付接口,新增MCIROPayRequest对象
-
+
+ weixin4j-base:支付对象优化
-
+
+ weixin4j-base:新增海关接口
-
+
+ weixin4j-base:添加日志支持
-
+
* 2016-03-28
-
+
+ weixin4j-mp:新增邀请绑定客服帐号接口以及客服接口命名调整
-
+
* 2016-04-02
+ version upgrade to 1.6.8 & 1.1.7
-
+
* 2016-04-29
+ weixin4j-mp:新增标签管理API
-
+
* 2016-05-07
+ version upgrade to 1.6.9
-
+
* 2016-05-12
- + 添加MemcacheTokenStorager支持
\ No newline at end of file
+ + weixin4j-base:添加MemcacheTokenStorager支持
+
+* 2016-05-24
+
+ + weixin4j-mp:优化OauthApi授权
+
+ + openid 修正为 openId
+
+ + 修改@author注释为jinyu(foxinmy@gmail.com)
+
+ + weixin4j-base:删除AbstractTokenCreator,引入CacheCreator类
+
+ + weixin4j-base:修改Memcached-Java-Client的依赖
\ No newline at end of file
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenCreator.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenCreator.java
deleted file mode 100644
index 9aa39bb2..00000000
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenCreator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.foxinmy.weixin4j.token;
-
-import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
-
-/**
- *
- * @className: AbstractTokenCreator
- * @author jinyu
- * @date 2016年4月21日
- * @since JDK 1.6
- * @see
- */
-public abstract class AbstractTokenCreator implements TokenCreator {
-
- protected final WeixinRequestExecutor weixinExecutor;
-
- public AbstractTokenCreator() {
- this.weixinExecutor = new WeixinRequestExecutor();
- }
-
- /**
- * 缓存key:附加weixin4j_前缀
- *
- * @return
- */
- public String getCacheKey() {
- return String.format("weixin4j_%s", getCacheKey0());
- }
-
- /**
- * 返回缓存KEY的名称:建议接口类型命名 如 mp_token_{appid}
- *
- * @return
- */
- public abstract String getCacheKey0();
-}
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheCreator.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheCreator.java
new file mode 100644
index 00000000..7ea2e6a1
--- /dev/null
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheCreator.java
@@ -0,0 +1,28 @@
+package com.foxinmy.weixin4j.token;
+
+import com.foxinmy.weixin4j.exception.WeixinException;
+
+/**
+ * Cache的创建
+ *
+ * @className CacheCreator
+ * @author jinyu(foxinmy@gmail.com)
+ * @date 2016年5月24日
+ * @since JDK 1.6
+ * @see
+ */
+public interface CacheCreator {
+ /**
+ * CacheKey
+ *
+ * @return
+ */
+ public String key();
+
+ /**
+ * 创建Cache
+ *
+ * @return
+ */
+ public T create() throws WeixinException;
+}
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheStorager.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheStorager.java
index 5cb9bf87..0af84f02 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheStorager.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/CacheStorager.java
@@ -3,8 +3,8 @@ package com.foxinmy.weixin4j.token;
import com.foxinmy.weixin4j.exception.WeixinException;
/**
- * cache存储
- *
+ * Cache的存储
+ *
* @className CacheStorager
* @author jinyu(foxinmy@gmail.com)
* @date 2015年6月22日
@@ -14,34 +14,34 @@ import com.foxinmy.weixin4j.exception.WeixinException;
public interface CacheStorager {
/**
* 查找缓存中的对象
- *
- * @param cacheKey
+ *
+ * @param key
* 缓存key
* @return 缓存对象
* @throws WeixinException
*/
- T lookup(String cacheKey) throws WeixinException;
+ T lookup(String key) throws WeixinException;
/**
* 缓存新的对象
- *
- * @param cacheKey
+ *
+ * @param key
* 缓存key
- *
- * @param t
+ *
+ * @param cache
* 将要缓存的对象
* @throws WeixinException
*/
- void caching(String cacheKey, T t) throws WeixinException;
+ void caching(String key, T cache) throws WeixinException;
/**
* 移除缓存对象
- *
- * @param cacheKey
+ *
+ * @param key
* 缓存key
* @return 移除的对象
*/
- T evict(String cacheKey) throws WeixinException;
+ T evict(String key) throws WeixinException;
/**
* 清除所有缓存对象(请慎重)
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenCreator.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenCreator.java
index cbaebba8..e604b0b9 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenCreator.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenCreator.java
@@ -1,30 +1,38 @@
package com.foxinmy.weixin4j.token;
-import com.foxinmy.weixin4j.exception.WeixinException;
+import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.model.Token;
/**
- * TOKEN创建者
- *
+ * Token的创建
+ *
* @className TokenCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年1月10日
* @since JDK 1.6
* @see
*/
-public interface TokenCreator {
- /**
- * 返回缓存KEY的名称
- *
- * @return
- */
- public String getCacheKey();
+public abstract class TokenCreator implements CacheCreator {
+ protected final WeixinRequestExecutor weixinExecutor;
+
+ public TokenCreator() {
+ this.weixinExecutor = new WeixinRequestExecutor();
+ }
/**
- * 创建token
- *
+ * 缓存key:附加weixin4j_前缀
+ *
* @return
- * @throws WeixinException
*/
- public Token createToken() throws WeixinException;
+ @Override
+ public String key() {
+ return String.format("weixin4j_%s", key0());
+ }
+
+ /**
+ * 返回缓存KEY的名称:建议接口类型命名 如 mp_token_{appid}
+ *
+ * @return
+ */
+ public abstract String key0();
}
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenHolder.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenHolder.java
index c7f66920..587d3043 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenHolder.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenHolder.java
@@ -5,7 +5,7 @@ import com.foxinmy.weixin4j.model.Token;
/**
* 对token的缓存获取
- *
+ *
* @className TokenHolder
* @author jinyu(foxinmy@gmail.com)
* @date 2015年6月12日
@@ -25,7 +25,7 @@ public class TokenHolder {
private final TokenStorager tokenStorager;
/**
- *
+ *
* @param tokenCreator
* token创建器
* @param tokenStorager
@@ -38,15 +38,15 @@ public class TokenHolder {
/**
* 获取token对象
- *
+ *
* @return
* @throws WeixinException
*/
public Token getToken() throws WeixinException {
- String cacheKey = tokenCreator.getCacheKey();
+ String cacheKey = tokenCreator.key();
Token token = tokenStorager.lookup(cacheKey);
if (token == null) {
- token = tokenCreator.createToken();
+ token = tokenCreator.create();
tokenStorager.caching(cacheKey, token);
}
return token;
@@ -54,7 +54,7 @@ public class TokenHolder {
/**
* 获取token字符串
- *
+ *
* @return
* @throws WeixinException
*/
@@ -64,25 +64,25 @@ public class TokenHolder {
/**
* 手动刷新token
- *
+ *
* @return 刷新后的token
* @throws WeixinException
*/
public Token refreshToken() throws WeixinException {
- String cacheKey = tokenCreator.getCacheKey();
- Token token = tokenCreator.createToken();
+ String cacheKey = tokenCreator.key();
+ Token token = tokenCreator.create();
tokenStorager.caching(cacheKey, token);
return token;
}
/**
* 手动移除token
- *
+ *
* @return 被移除的token
* @throws WeixinException
*/
public Token evictToken() throws WeixinException {
- String cacheKey = tokenCreator.getCacheKey();
+ String cacheKey = tokenCreator.key();
return tokenStorager.evict(cacheKey);
}
}
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenStorager.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenStorager.java
index bfa46c7a..e03cc00f 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenStorager.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/TokenStorager.java
@@ -3,8 +3,8 @@ package com.foxinmy.weixin4j.token;
import com.foxinmy.weixin4j.model.Token;
/**
- * token的存储
- *
+ * Token的存储
+ *
* @className TokenStorager
* @author jinyu(foxinmy@gmail.com)
* @date 2014年9月27日
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java
index efbffdc4..e17fecd8 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTicketCreator.java
@@ -5,13 +5,13 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.mp.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.type.TicketType;
/**
* 微信公众平台TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建
- *
+ *
* @className WeixinJSTicketCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年1月10日
@@ -20,7 +20,7 @@ import com.foxinmy.weixin4j.type.TicketType;
* "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN">
* JS TICKET
*/
-public class WeixinTicketCreator extends AbstractTokenCreator {
+public class WeixinTicketCreator extends TokenCreator {
private final String appid;
private final TicketType ticketType;
@@ -28,7 +28,7 @@ public class WeixinTicketCreator extends AbstractTokenCreator {
/**
* jssdk
- *
+ *
* @param appid
* 公众号的appid
* @param ticketType
@@ -43,12 +43,12 @@ public class WeixinTicketCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("mp_ticket_%s_%s", ticketType.name(), appid);
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
WeixinResponse response = weixinExecutor.get(
String.format(URLConsts.JS_TICKET_URL, weixinTokenHolder.getToken().getAccessToken(), ticketType.name()));
JSONObject result = response.getAsJson();
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java
index db44513f..4f4e8af8 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/token/WeixinTokenCreator.java
@@ -5,11 +5,11 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.mp.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
/**
* 微信公众平台TOKEN创建者
- *
+ *
* @className WeixinTokenCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年1月10日
@@ -18,13 +18,13 @@ import com.foxinmy.weixin4j.token.AbstractTokenCreator;
* href="https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183&token=&lang=zh_CN">微信公众平台获取token说明
* @see com.foxinmy.weixin4j.model.Token
*/
-public class WeixinTokenCreator extends AbstractTokenCreator {
+public class WeixinTokenCreator extends TokenCreator {
private final String appid;
private final String secret;
/**
- *
+ *
* @param appid
* 公众号ID
* @param secret
@@ -36,12 +36,12 @@ public class WeixinTokenCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("mp_token_%s", appid);
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
String tokenUrl = String.format(URLConsts.ASSESS_TOKEN_URL, appid,
secret);
WeixinResponse response = weixinExecutor.get(tokenUrl);
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java
index faca5a01..74e5e0f2 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java
@@ -168,7 +168,7 @@ public class SuiteApi extends QyApi {
Token token = new Token(obj.getString("access_token"));
token.setExpiresIn(obj.getIntValue("expires_in"));
suiteTicketHolder.getTokenStorager().caching(
- tokenCreator.getCacheKey(), token);
+ tokenCreator.key(), token);
// 缓存微信企业号永久授权码
suitePerCodeHolder
.cachingPermanentCode(obj.getString("permanent_code"));
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java
index 064ee0c8..7efb2958 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuitePreCodeCreator.java
@@ -5,12 +5,12 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
import com.foxinmy.weixin4j.token.TokenHolder;
/**
* 微信企业号应用套件预授权码创建
- *
+ *
* @className WeixinSuitePreCodeCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年6月17日
@@ -20,13 +20,13 @@ import com.foxinmy.weixin4j.token.TokenHolder;
* 获取应用套件预授权码
* @see com.foxinmy.weixin4j.model.Token
*/
-public class WeixinSuitePreCodeCreator extends AbstractTokenCreator {
+public class WeixinSuitePreCodeCreator extends TokenCreator {
private final TokenHolder suiteTokenHolder;
private final String suiteId;
/**
- *
+ *
* @param suiteTokenHolder
* 应用套件的token
* @param suiteId
@@ -38,12 +38,12 @@ public class WeixinSuitePreCodeCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("qy_suite_precode_%s", suiteId);
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
WeixinResponse response = weixinExecutor.post(
String.format(URLConsts.SUITE_PRE_CODE_URL, suiteTokenHolder.getAccessToken()),
String.format("{\"suite_id\":\"%s\"}", suiteId));
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java
index 5e39578a..6a8629f6 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java
@@ -5,11 +5,11 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
/**
* 微信企业号应用套件凭证创建
- *
+ *
* @className WeixinSuiteTokenCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年6月17日
@@ -18,12 +18,12 @@ import com.foxinmy.weixin4j.token.AbstractTokenCreator;
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E#.E8.8E.B7.E5.8F.96.E5.BA.94.E7.94.A8.E5.A5.97.E4.BB.B6.E4.BB.A4.E7.89.8C">获取应用套件凭证
* @see com.foxinmy.weixin4j.model.Token
*/
-public class WeixinSuiteTokenCreator extends AbstractTokenCreator {
+public class WeixinSuiteTokenCreator extends TokenCreator {
private final SuiteTicketHolder ticketHolder;
/**
- *
+ *
* @param stringStorager
* 套件ticket存取器
*/
@@ -32,12 +32,12 @@ public class WeixinSuiteTokenCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("qy_suite_token_%s", ticketHolder.getSuiteId());
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", ticketHolder.getSuiteId());
obj.put("suite_secret", ticketHolder.getSuiteSecret());
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java
index 880f5afa..99881671 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java
@@ -5,12 +5,12 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
import com.foxinmy.weixin4j.token.TokenHolder;
/**
* 微信企业号token创建(永久授权码)
- *
+ *
* @className WeixinTokenSuiteCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年6月17日
@@ -20,13 +20,13 @@ import com.foxinmy.weixin4j.token.TokenHolder;
* 获取企业号access_token
* @see com.foxinmy.weixin4j.model.Token
*/
-public class WeixinTokenSuiteCreator extends AbstractTokenCreator {
+public class WeixinTokenSuiteCreator extends TokenCreator {
private final SuitePerCodeHolder perCodeHolder;
private final TokenHolder suiteTokenHolder;
/**
- *
+ *
* @param perCodeHolder
* 第三方套件永久授权码
* @param suiteTokenHolder
@@ -38,12 +38,12 @@ public class WeixinTokenSuiteCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("qy_token_suite_%s_%s", perCodeHolder.getSuiteId(), perCodeHolder.getAuthCorpId());
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", perCodeHolder.getSuiteId());
obj.put("auth_corpid", perCodeHolder.getAuthCorpId());
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java
index 2e293c36..9cf6ac51 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinProviderTokenCreator.java
@@ -5,11 +5,11 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
/**
* 微信企业号应用提供商凭证创建
- *
+ *
* @className WeixinTokenCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年1月10日
@@ -19,13 +19,13 @@ import com.foxinmy.weixin4j.token.AbstractTokenCreator;
* 获取应用提供商凭证
* @see com.foxinmy.weixin4j.model.Token
*/
-public class WeixinProviderTokenCreator extends AbstractTokenCreator {
+public class WeixinProviderTokenCreator extends TokenCreator {
private final String corpid;
private final String providersecret;
/**
- *
+ *
* @param corpid
* 企业号ID
* @param providersecret
@@ -37,12 +37,12 @@ public class WeixinProviderTokenCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("qy_provider_token_%s", corpid);
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("corpid", corpid);
obj.put("provider_secret", providersecret);
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java
index b8887ca6..d8550de9 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTicketCreator.java
@@ -5,13 +5,13 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.type.TicketType;
/**
* 微信企业号TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建
- *
+ *
* @className WeixinTicketCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年12月25日
@@ -19,7 +19,7 @@ import com.foxinmy.weixin4j.type.TicketType;
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3#.E9.99.84.E5.BD.951-JS-SDK.E4.BD.BF.E7.94.A8.E6.9D.83.E9.99.90.E7.AD.BE.E5.90.8D.E7.AE.97.E6.B3.95"
* >JSTICKET
*/
-public class WeixinTicketCreator extends AbstractTokenCreator {
+public class WeixinTicketCreator extends TokenCreator {
private final String corpid;
private final TicketType ticketType;
@@ -40,12 +40,12 @@ public class WeixinTicketCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("qy_ticket_%s_%s", ticketType.name(), corpid);
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
WeixinResponse response = null;
if (ticketType == TicketType.jsapi) {
response = weixinExecutor
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java
index cc98639b..2a1d131f 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/token/WeixinTokenCreator.java
@@ -5,11 +5,11 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
-import com.foxinmy.weixin4j.token.AbstractTokenCreator;
+import com.foxinmy.weixin4j.token.TokenCreator;
/**
* 微信企业号TOKEN创建
- *
+ *
* @className WeixinTokenCreator
* @author jinyu(foxinmy@gmail.com)
* @date 2015年1月10日
@@ -19,13 +19,13 @@ import com.foxinmy.weixin4j.token.AbstractTokenCreator;
* 微信企业号获取token说明
* @see com.foxinmy.weixin4j.model.Token
*/
-public class WeixinTokenCreator extends AbstractTokenCreator {
+public class WeixinTokenCreator extends TokenCreator {
private final String corpid;
private final String corpsecret;
/**
- *
+ *
* @param corpid
* 企业号ID
* @param corpsecret
@@ -37,12 +37,12 @@ public class WeixinTokenCreator extends AbstractTokenCreator {
}
@Override
- public String getCacheKey0() {
+ public String key0() {
return String.format("qy_token_%s", corpid);
}
@Override
- public Token createToken() throws WeixinException {
+ public Token create() throws WeixinException {
String tokenUrl = String.format(URLConsts.ASSESS_TOKEN_URL, corpid,
corpsecret);
WeixinResponse response = weixinExecutor.get(tokenUrl);