删除AbstractTokenCreator,引入CacheCreator<T>类
This commit is contained in:
parent
eb54ea9079
commit
f6c12e07f3
504
CHANGE.md
504
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**: <font color="red">DepartApi命名为[PartyApi](./weixin4j-qy/weixin4j-qy-api/src/main/java/com/foxinmy/weixin4j/qy/api/PartyApi.java)</font>
|
||||
|
||||
|
||||
* 2015-04-04
|
||||
|
||||
+ **weixin4j-qy**: [MediaApi](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/MediaApi.java)新增批量上传成员和部门接口
|
||||
|
||||
|
||||
+ <font color="red">released 1.3</font>
|
||||
|
||||
|
||||
* 2015-04-09
|
||||
|
||||
+ **weixin4j-qy**: [AgentApi](./weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/AgentApi.java)新增获取应用列表概况接口
|
||||
|
||||
|
||||
* 2015-04-13
|
||||
|
||||
+ **weixin4j-base**: <font color="red">删除WeixinTokenCreator与WeixinJSTicketCreator类</font>
|
||||
|
||||
|
||||
+ **weixin4j-mp**: 新增WeixinTokenCreator与WeixinJSTicketCreator类
|
||||
|
||||
|
||||
+ **weixin4j-mp**: 新增用户分组批量移动、删除组别接口
|
||||
|
||||
|
||||
+ **weixin4j-qy**: 新增WeixinTokenCreator与WeixinJSTicketCreator类
|
||||
|
||||
|
||||
* 2015-04-16
|
||||
|
||||
+ **weixin4j-mp**: <font color="red">调整[二维码参数](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/QRParameter.java)类</font>
|
||||
|
||||
|
||||
+ **weixin4j-mp**: 新增获取[自定义菜单配置、自动回复配置](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/HelperApi.java)接口
|
||||
|
||||
|
||||
* 2015-04-18
|
||||
|
||||
+ **weixin4j-mp**: <font color="red">调整[客服接口](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/CustomApi.java)类的方法名</font>
|
||||
|
||||
|
||||
+ **weixin4j-mp**: <font color="red">在[二维码接口](./weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/QRApi.java)类新增获取二维码url方法</font>
|
||||
|
||||
|
||||
|
||||
|
||||
* 2015-04-19
|
||||
|
||||
+ <font color="red">调整聚合方式,去除原先的weixin4j-mp和weixin4j-qy模块,相应的api模块直接继承weixin4j父模块</font>
|
||||
|
||||
|
||||
+ **weixin4j-base**: <font color="red">删除ActionMapping相关类</font>
|
||||
|
||||
|
||||
* 2015-04-29
|
||||
|
||||
+ <font color="red">released 1.4</font>
|
||||
|
||||
|
||||
* 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支持
|
||||
+ weixin4j-base:添加MemcacheTokenStorager支持
|
||||
|
||||
* 2016-05-24
|
||||
|
||||
+ weixin4j-mp:优化OauthApi授权
|
||||
|
||||
+ openid 修正为 openId
|
||||
|
||||
+ 修改@author注释为jinyu(foxinmy@gmail.com)
|
||||
|
||||
+ weixin4j-base:删除AbstractTokenCreator,引入CacheCreator<T>类
|
||||
|
||||
+ weixin4j-base:修改Memcached-Java-Client的依赖
|
||||
@ -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();
|
||||
}
|
||||
@ -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<T> {
|
||||
/**
|
||||
* CacheKey
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String key();
|
||||
|
||||
/**
|
||||
* 创建Cache
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public T create() throws WeixinException;
|
||||
}
|
||||
@ -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<T> {
|
||||
/**
|
||||
* 查找缓存中的对象
|
||||
*
|
||||
* @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;
|
||||
|
||||
/**
|
||||
* 清除所有缓存对象(<font color="red">请慎重</font>)
|
||||
|
||||
@ -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<Token> {
|
||||
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();
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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日
|
||||
|
||||
@ -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</a>
|
||||
*/
|
||||
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();
|
||||
|
||||
@ -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说明</a>
|
||||
* @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);
|
||||
|
||||
@ -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"));
|
||||
|
||||
@ -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;
|
||||
* 获取应用套件预授权码</a>
|
||||
* @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));
|
||||
|
||||
@ -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">获取应用套件凭证</a>
|
||||
* @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());
|
||||
|
||||
@ -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</a>
|
||||
* @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());
|
||||
|
||||
@ -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;
|
||||
* 获取应用提供商凭证</a>
|
||||
* @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);
|
||||
|
||||
@ -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</a>
|
||||
*/
|
||||
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
|
||||
|
||||
@ -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说明</a>
|
||||
* @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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user