JFinal Weixin 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
JFinal Weixin 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
JFinal Weixin 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 JFinal
适用人群 未知
收录时间 2014-10-21

软件简介

JFinal Weixin 是基于 JFinal 的微信公众号极速 SDK,只需参考 Demo 代码即可进行极速开发。自 JFinal Weixin 1.2 版本开始已添加对多公众号支持

0、Maven 坐标

<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>jfinal-weixin</artifactId>
    <version>3.4</version>
</dependency>

1、WeixinConfig

public class WeixinConfig extends JFinalConfig {
  public void configConstant(Constants me) {
    loadPropertyFile("a_little_config.txt");
    me.setDevMode(getPropertyToBoolean("devMode", false));
		
    // ApiConfigKit 设为开发模式可以在开发阶段输出请求交互的 xml 与 json 数据
    ApiConfigKit.setDevMode(me.getDevMode());
  }
	
  public void configRoute(Routes me) {
    // 从 jfinal 3.6 版本开始,需设置 setMappingSuperClass(true) 才能支持 jfinal weixin
    me.setMappingSuperClass(true);
    me.add("/msg", WeixinMsgController.class);
    me.add("/api", WeixinApiController.class, "/api");
  }
	
  public void configPlugin(Plugins me) {}
  public void configInterceptor(Interceptors me) {}
  public void configHandler(Handlers me) {}
}

以上通过 configRoute 方法配置了访问路由 "/msg" 与 "/api"。项目启动后,在微信服以务器上配置 url:http://域名/msg

重要:后续新版本的配置方式有所改进,详情见官方文档:https://gitee.com/jfinal/jfinal-weixin/wikis/JFinal-weixin%E4%B8%AD%E7%9A%84WeixinConfig%E9%85%8D%E7%BD%AE

2、WeixinMsgController

public class WeixinMsgController extends MsgController {
  protected void processInTextMsg(InTextMsg inTextMsg) {
   String msgContent = inTextMsg.getContent().trim();
   // 帮助提示
   if ("help".equalsIgnoreCase(msgContent)) {
     OutTextMsg outMsg = new OutTextMsg(inTextMsg);
     outMsg.setContent(helpStr);
     render(outMsg);
   }	
   else if ("美女".equalsIgnoreCase(msgContent)) {
     OutNewsMsg outMsg = new OutNewsMsg(inTextMsg);
     outMsg.addNews("秀色可餐", "JFinal Weixin 极速开发就是这么爽,有木有 ^_^", "http://mmbiz.qpic.cn/mmbiz/zz3Q6WSrzq2GJLC60ECD7rE7n1cvKWRNFvOyib4KGdic3N5APUWf4ia3LLPxJrtyIYRx93aPNkDtib3ADvdaBXmZJg/0", "http://mp.weixin.qq.com/s?__biz=MjM5ODAwOTU3Mg==&mid=200987822&idx=1&sn=7eb2918275fb0fa7b520768854fb7b80#rd");
     render(outMsg);
   }
   // 其它文本消息直接返回原值 + 帮助提示
   else {
     OutTextMsg outMsg = new OutTextMsg(inTextMsg);
     outMsg.setContent("\t文本消息已成功接收,内容为: " + inTextMsg.getContent() + "\n\n" + helpStr);
     render(outMsg);
   }
  }

  protected void processInImageMsg(InImageMsg inImageMsg) {
    OutImageMsg outMsg = new OutImageMsg(inImageMsg);
    // 将刚发过来的图片再发回去
    outMsg.setMediaId(inImageMsg.getMediaId());
    render(outMsg);
  }
  

  /**
   * 如果要支持多公众账号,只需要在此返回各个公众号对应的  ApiConfig 对象即可
   * 可以通过在请求 url 中挂参数来动态从数据库中获取 ApiConfig 属性值
   *
   * 注意:后续新版本改进了配置方式,下面的配置不再需要,详情见下面的官方文档:
   *      https://gitee.com/jfinal/jfinal-weixin/wikis/Home
   */
  public ApiConfig getApiConfig() {
    return new ApiConfig(...);
  }

  // 其她自动接收并解析消息的便利方法省略
}

WeixinMsgController 通过继承自 MsgController 便拥有了接收消息和发送消息的便利方法。

3、WeixinApiController

public class WeixinApiController extends ApiController {
  public void index() {
    render("/api/index.html");
  }
	
  /**
  * 获取公众号菜单
  */
  public void getMenu() {
    ApiResult apiResult = MenuApi.getMenu();
    if (apiResult.isSucceed())
      renderText(apiResult.getJson());
    else
      renderText(apiResult.getErrorMsg());
    }
	
    /**
    * 获取公众号关注用户
    */
    public void getFollowers() {
      ApiResult apiResult = UserApi.getFollows();
      renderText(apiResult.getJson());
    }

  /**
   * 如果要支持多公众账号,只需要在此返回各个公众号对应的  ApiConfig 对象即可
   * 可以通过在请求 url 中挂参数来动态从数据库中获取 ApiConfig 属性值
   * 
   * 注意:后续新版本改进了配置方式,下面的配置不再需要,详情见下面的官方文档:
   *      https://gitee.com/jfinal/jfinal-weixin/wikis/Home
   */
  public ApiConfig getApiConfig() {
    return new ApiConfig(...);
  }
}

通过调用 MenuApi、UserApi 等 Api 的相关方法即可获取封装成 ApiResult 对象的结果,使用 render 系列方法即可快捷输出结果。

4、更多支持

JFinal Weixin 官方文档: https://gitee.com/jfinal/jfinal-weixin/wikis/Home

关注官方微信号马上体验 demo 功能:

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(55) 发布并加入讨论🔥
发表了资讯
2020/10/13 17:04

JFinal weixin 2.8 发布,爽爽这六年

jfinal weixin 是一个很老牌的 weixin 开发工具包。虽然很老牌,但一点也不过时。采用 jfinal 极简设计,用起来的学习成本极低,每个 API 都是直接上手调用,简单粗爆,没有中间环节,爽爽的。 微信开发包这种东西,很少有变动,可靠、稳定很重要,开源 6 年来已用于大量的项目之中,良好的口碑,稳定的用户,回头客相当多。maven 中心库以及 jfinal 社区统计下载量每个月上万,不可思议,微信开发的需求真是猛。 很多次新版本发...

9
12
发表于大前端专区
2019/02/01 15:05

JFinal Weixin 2.3 发布,支持微信小程序开发

jfinal weixin 项目早在五年前就发布了第一个版本,是老牌的微信公众号开发 SDK,已稳定、可靠服役多年。因为极简设计、良好的开发体验,所以深受开发者的喜爱。 五年来 jfinal weixin 一直紧跟微信公众平台的动向,不断跟随添加新的功能,大大方便了用户开发微信公众平台项目。但是鲜有人知道的是 JFinal Weixin 很早就支持小程序开发了,只是一直没顾上发布新闻告知大家。 本次 jfinal weixin 2.3 由 @卢春梦 及其小伙伴贡献,...

6
28
发表于开发技能专区
2018/07/10 12:10

JFinal Weixin 2.1 发布,微信极速 SDK

JFinal Weixin 发布四年多以来,以其简单性、稳定性,获得了大量用户的喜爱,这四年多以来 JFinal Weixin 紧跟微信官方动态,不断增加、完善功能,例如跟随本次微信官方发布的 XXE 漏洞,第一时间进行了版本更新。 在微信官方通知 XXE 的第一时间,JFinal Weixin 向 maven 中心库发布了 jfinal-weixin 2.0, 但是在 2.0 版本即将发布新闻之时,微信官方再次通知 XXE 解决方案,得知上一次解决方案是有问题的。 本次 jfinal wei...

23
18
发表了资讯
2017/05/22 15:03

JFinal Weixin 1.9 发布,微信极速 SDK

JFinal Weixin 1.9 正式发布!离上一次 JFinal weixin 1.8 发布,已经过去 10 个月。在过去的 10 个月时间里 JFinal Weixin 紧随微信公众平台的演化,不断增加了新的 API,同时也在不断完善原有 API,力求打造一个完备的微信公众平台 SDK,让开发更快速、更开心! JFinal Weixin 1.9 共有 18 项新增与改进,新增功能主要有:小程序接口、微信智能硬件接口、门店接口、黑名单接口、上传图文消息素材接口、模板管理接口、高清语音...

54
96
发表了资讯
2016/07/13 00:00

JFinal Weixin 1.8 发布,微信极速 SDK

离上一次 JFinal weixin 1.7 发布,已经过去了 6 个月。在过去的半年时间里 JFinal Weixin 紧随微信公众平台的演化,不断增加了新的 API,同时也在不断完善原有 API,力求打造一个完备的微信公众平台 SDK,让开发更快速、更开心! JFinal Weixin 1.8 共有 27 项新增与改进,新增功能主要有:微信红包接口、微信支付对账单接口、消息转发到指定客服、微信连WIFI联网后下发消息事件、卡券相关事件消息、用户Tag接口、个性化菜单接...

96
134
发表了资讯
2016/01/12 00:00

JFinal Weixin 1.7发布,用 JFinal 开发,就这么定了

JFinal Weixin 1.7 增加了 Wap支付功能,改进jackson,支持用户信息中含有特殊字符时的json转换,并且修复了一个支付模块中的一个 bug,建议升级。 maven 升级坐标: <dependency>   <groupId>com.jfinal</groupId>   <artifactId>jfinal-weixin</artifactId>   <version>1.7</version> </dependency> 最新的 jar 包已经在 jfinal 官网可下载到:http://www.jfinal.com 以下是春梦分享的更多优秀资源: 1:JFinal Weixin...

35
75
发表了资讯
2015/12/30 00:00

JFinal Weixin 1.6,用 JFinal 开发,就这么定了

继昨日JFinal 2.1发布之后,再来一发JFinal Weixin 1.6,让所有JFinaler们更加Happy,本次升级主要添加了微信摇一摇周边API、高级群发API、客户账号管理API。此外还对原有依赖jar包进行了缩减,更加轻量化、极速化。 JFinal Weixin不断朝着越来越完备的方向迈进,力求成为最完善、可靠、简洁的微信极速开发工具,依然感谢 @孤独的3 以及他们的小伙伴们坚持卓越的工作! 以下是春梦分享的更多优秀资源: 1:JFinal Weixin wiki ...

34
88
发表了资讯
2015/11/12 00:00

JFinal Weixin 1.5 发布,微信极速 SDK

JFinal Weixin 1.5 大幅完善了对微信公众平台API的支持,以便满足更多开发者的需求。主要添加了微信摇一摇、微信支付、素材管理MediaApi,分布式Token存储等实用功能。 本次版本所有功能来源于@卢春梦 和他的小伙伴们的贡献,在此特别表示感谢。春梦大牛@孤独的3 不仅对 jfinal weixin 项目有很多的贡献,而且对 jfinal 的发展也做出了很多的贡献,以下是春梦分享的更多优秀资源: 1:JFinal Weixin wiki 优秀的微信开发资源:h...

136
209
发表了资讯
2015/07/03 00:00

JFinal Weixin 1.4 发布,微信极速 SDK

JFinal weixin 是第一个微信公众平台极速SDK,基于 jfinal weixin 开发不仅可以立即拥有简单易用的API,而且将立即拥有JFinal 所有的极速化支持,让开发更加轻松自如,节省更多时间去陪家人、恋人和朋友 :) 做为一款微信公众号项目开发利器,除了简单易用以外,功能的全面性至关重要,jfinal weixin 项目正在此方向持续加大力度,全功能覆盖的微信平台SDK正逐步形成,本次升代码来自weixin团队的 @小强哥unas 贡献,基于团队的开...

70
89
发表了资讯
2015/06/25 00:00

JFinal Weixin 1.3 发布,微信极速 SDK

JFinal Weixin 1.3 主要是将JFinal升级到了2.0版,并对原有代码进行小幅重构,其它添加的功能如下: 1:添加 CustomMsgApi 支持多客服消息 2:添加 QrcodeApi 支持带参数的二维码生成 该版本最大的变化是引入了团队开发,此版本的CustomMsgApi、QrcodeApi 由 @小强哥unas 所贡献(http://my.oschina.net/u/923337/blog/470119)。此后 jfinal weixin 项目将引入更多的开发者,共同打造一个极度完善的微信开发 SDK,造福所有jfina...

47
92
发表了资讯
2014/12/11 00:00

JFinal Weixin 1.2 发布,微信极速 SDK

JFinal Weixin 1.2 主要添加了对多公众号账户的支持,并对原有代码进行小幅重构,具体变化如下: 改进内容: 添加 ApiConfigKit,便于将 ApiConfig 对象与当前线程进行绑定,方便在各处通过 ApiConfigKit.getApiConfig() 进行获取 原有 ApiCofig 对象中的所有属性与方法去掉 static 关键字 WeixinController 更名为 MsgController,WeixinInterceptor 更名为 MsgInterceptor 添加 ApiController、ApiInterceptor 所有对 ApiCon...

61
65
发表了资讯
2014/12/04 00:00

JFinal Weixin 1.1 发布,微信极速 SDK

JFinal Weixin 1.1 主要添加了消息加密功能,以及对 access token 意外失效问题做出了处理。 access token 通常会因为外部原因而意外失效: 1:项目中 AccessTokenApi 在获取到 access token 之后,在微信公众平台利用在线调试工具再次获取了该公众号的 access token 2:项目中 AccessTokenApi 在获取到 access token 之后,其它程序包括正在开发中的程序再次获取了该公众号的 access token 3:微信服务器未知原因导致当前 acce...

17
73
发表了资讯
2014/10/21 00:00

JFinal Weixin 极速 SDK 1.0 正式发布

JFinal Weixin 是基于 JFinal 的微信公众号极速 SDK,只需参考 Demo 代码即可进行极速开发。 1、WeixinConfig public class WeixinConfig extends JFinalConfig {   public void configConstant(Constants me) {     loadPropertyFile("a_little_config.txt");     me.setDevMode(getPropertyToBoolean("devMode", false));          // 配置微信 API 相关常量     ApiConfig.setDevMode(me.getDe...

86
179
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
55 评论
738 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部