JFinal Weixin 1.2 发布,微信极速 SDK

JFinal
 JFinal
发布于 2014年12月11日
收藏 66

JFinal Weixin 1.2 主要添加了对多公众号账户的支持,并对原有代码进行小幅重构,具体变化如下:

改进内容:

  1. 添加 ApiConfigKit,便于将 ApiConfig 对象与当前线程进行绑定,方便在各处通过 ApiConfigKit.getApiConfig() 进行获取

  2. 原有 ApiCofig 对象中的所有属性与方法去掉 static 关键字

  3. WeixinController 更名为 MsgController,WeixinInterceptor 更名为 MsgInterceptor

  4. 添加 ApiController、ApiInterceptor

  5. 所有对 ApiConfig 静态方法有依赖的地方改为:ApiConfigKit.getApiConfig() 获取对象后再获取属性值,以便支持多公众号账户

  6. demo重构:DemoController 更名为 WeixinMsgController,ApiController更名为WeixinApiController

  7. WeixinConfig 中的路由配置 "/weixin" 改为 "/msg"

升级步骤:

  1. 引入新版本 jar 包 jfinal-weixin-1.2-bin-with-src.jar

  2. 原来继承自 WeixinController 的类改为继承 MsgController

  3. 需要使用 ApiConfig 的自定义 controller 需要继承自 ApiController

  4. 去掉YourJFinalConfig 中原来对 ApiConfig 的配置,改而实现控制中的 getApiConfig() 方法

  5. 原来对 ApiConfig 静态方法的依赖改为通过 ApiConfigKit.getApiConfig() 获取对象后再获取相关属性

  6. 使用 ApiConfigKit.setDevMode(true) 输出消息交互时的xml与json

多公众号支持的建议方案:

  1. 创建数据库表 api_config(weixinId, token, appId, appSecret, encodingAesKey, messageEncrypt)

  2. 多公众号的微信服务器 url 格式设置为:http://域名/msg?weixinId=123,其中 weixinId 对应 api_config 数据库表中的 weixinId

  3. 在 MsgController 继承类中的 getApiConfig() 中动态获取并返回相应的 ApiConfig 对象

    public ApiConfig getApiConfig() { 
        Record r = Db.findFrist("select * from api_config where weixinId=? limit 1", 
            getPara("weixinId")); 
        return new ApiConfig(r.get("token"), r.get("appId"), 
            r.get("appSecret"), r.get("encodingAesKey"), 
            r.get("messageEncrypt")); 
    }

One More Thing,JFinal 官方微信又一大波美女来袭,扫描下方二维码可立即查看,我们只看美女 ^_^

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:JFinal Weixin 1.2 发布,微信极速 SDK
加载中

最新评论(61

JFinal
JFinal

引用来自“小强哥unas”的评论

我们使用JFinal和JFinal_Weixin项目开发的移动端理财产品“八戒理财”6月初已经上线了。

上线3周,已经有4万+注册用户,2万+投资用户了,投资金额总额200万+。

系统使用JFinal 1.9版本开发,数据库MySQL 5.6,Memcached缓存,Freemarker模板。

详情见:http://my.oschina.net/u/923337/blog/470119
感谢支持 JFinal 发展,下午想弄一下 jfinal weixin 升级 jfinal 到 2.0,有什么重要功能需要添加的吗?
小强哥unas
小强哥unas
我们使用JFinal和JFinal_Weixin项目开发的移动端理财产品“八戒理财”6月初已经上线了。

上线3周,已经有4万+注册用户,2万+投资用户了,投资金额总额200万+。

系统使用JFinal 1.9版本开发,数据库MySQL 5.6,Memcached缓存,Freemarker模板。

详情见:http://my.oschina.net/u/923337/blog/470119
JFinal
JFinal

引用来自“Chocolee”的评论

针对多公众号账户获取accessToken时是不是每次都要调用refreshAccessToken,直接获取的话有可能得到的是其他账户的accessToken吧

引用来自“JFinal”的评论

不需要,并且这个 refreshAccessToken() 一直都不需要自行调用,因为 new ApiResult(jsonStr) 时, jfinal weixin 会自动对返回的 json 数据中有关 accessToken 是否失效进行判断,如果失效,当时就自动 refresh 了,全自动的

引用来自“Chocolee”的评论

多公众号账户时 accessToken 不会串了吗?
看一下 com.jfinal.weixin.sdk.api.AccessTokenApi.java 这个源码,其中的 getAccessToken(),不同的公众号与其 apiId有映射关系,所以使用不同的公众号取出来的 AccessToken 对象是彼此独有的
Chocolee
Chocolee

引用来自“Chocolee”的评论

针对多公众号账户获取accessToken时是不是每次都要调用refreshAccessToken,直接获取的话有可能得到的是其他账户的accessToken吧

引用来自“JFinal”的评论

不需要,并且这个 refreshAccessToken() 一直都不需要自行调用,因为 new ApiResult(jsonStr) 时, jfinal weixin 会自动对返回的 json 数据中有关 accessToken 是否失效进行判断,如果失效,当时就自动 refresh 了,全自动的
多公众号账户时 accessToken 不会串了吗?
JFinal
JFinal

引用来自“Chocolee”的评论

针对多公众号账户获取accessToken时是不是每次都要调用refreshAccessToken,直接获取的话有可能得到的是其他账户的accessToken吧
不需要,并且这个 refreshAccessToken() 一直都不需要自行调用,因为 new ApiResult(jsonStr) 时, jfinal weixin 会自动对返回的 json 数据中有关 accessToken 是否失效进行判断,如果失效,当时就自动 refresh 了,全自动的
Chocolee
Chocolee
针对多公众号账户获取accessToken时是不是每次都要调用refreshAccessToken,直接获取的话有可能得到的是其他账户的accessToken吧
大海无边
大海无边
dddd
JFinal
JFinal

引用来自“愚_者”的评论

微信公众平台消息加密的部分,密钥要求32位,解决方案是修改jdk里的内容,只能这样吗?感觉非常蛋疼啊

引用来自“JFinal”的评论

微信官方提供的方法是替换 jar 包

引用来自“愚_者”的评论

嗯啊,但是这个办法很不舒服啊。难道没有任何一个第三方的jar可以解决这个问题吗

引用来自“JFinal”的评论

应该有办法,没研究过,换 jdk 1.8 试试

引用来自“愚_者”的评论

想用官方给的C++实现,然后通过JNI实现加解密,但是,我大windows上安装openssl神马的太蛋疼,准备换乌班图虚拟机继续搞,这个思路是否可行呢?
没必要整这么麻烦,JNI 如果写得不好容易将 JVM 搞挂掉
修改登录密码
修改登录密码
很漂亮~~简洁大方
愚_者
愚_者

引用来自“愚_者”的评论

微信公众平台消息加密的部分,密钥要求32位,解决方案是修改jdk里的内容,只能这样吗?感觉非常蛋疼啊

引用来自“JFinal”的评论

微信官方提供的方法是替换 jar 包

引用来自“愚_者”的评论

嗯啊,但是这个办法很不舒服啊。难道没有任何一个第三方的jar可以解决这个问题吗

引用来自“JFinal”的评论

应该有办法,没研究过,换 jdk 1.8 试试
想用官方给的C++实现,然后通过JNI实现加解密,但是,我大windows上安装openssl神马的太蛋疼,准备换乌班图虚拟机继续搞,这个思路是否可行呢?
返回顶部
顶部