微信公众号极速 SDK JFinal Weixin

Apache
Java
跨平台
2014-10-21
JFinal

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

0、Maven 坐标

<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>jfinal-weixin</artifactId>
    <version>2.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 功能:

的码云指数为
超过 的项目
加载中

评论(54)

JFinal
JFinal 软件作者

引用来自“科技范麒麟才子”的评论

支持 开发小程序吗?
支持微信小程序开发,挺好用
霸气小火
霸气小火
maven打包报错ase加密失败怎么办
二进制艺术
二进制艺术
支持 开发小程序吗?
杜福忠
杜福忠
一体式微信公众平台开发利器
JavaSon712
JavaSon712
http://git.oschina.net/jfinal/jfinal-weixin和jfinal-weixin-1.9-bin-with-src到底是用哪个???无语
a
a2006094101
jfinal好几个项目是否会导致投票分散啊,但这个的确很好用
兴仔哥
兴仔哥
已经投票
zhizaideren
zhizaideren
JFinal-weixin确实很强大,开发公众号很快哦
Undeadway
Undeadway
现在 jfinal-weixin 支不支持微信投票内容的获取?比如:https://www.oschina.net/question/98011_2266889
gitttttttt
gitttttttt
留一个阿里云免费优惠券->http://aliyun.izhuanyer.com

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

jfinal weixin 项目早在五年前就发布了第一个版本,是老牌的微信公众号开发 SDK,已稳定、可靠服役多年。因为极简设计、良好的开发体验,所以深受开发者的喜爱。 五年来 jfinal weixin 一直紧...

02/01 15:05

JFinal Weixin 2.1 发布,微信极速 SDK

JFinal Weixin 发布四年多以来,以其简单性、稳定性,获得了大量用户的喜爱,这四年多以来 JFinal Weixin 紧跟微信官方动态,不断增加、完善功能,例如跟随本次微信官方发布的 XXE 漏洞,第一...

2018/07/10 12:10

JFinal Weixin 1.9 发布,微信极速 SDK

JFinal Weixin 1.9 正式发布!离上一次 JFinal weixin 1.8 发布,已经过去 10 个月。在过去的 10 个月时间里 JFinal Weixin 紧随微信公众平台的演化,不断增加了新的 API,同时也在不断完善原...

2017/05/22 15:00

JFinal Weixin 1.8 发布,微信极速 SDK

离上一次 JFinal weixin 1.7 发布,已经过去了 6 个月。在过去的半年时间里 JFinal Weixin 紧随微信公众平台的演化,不断增加了新的 API,同时也在不断完善原有 API,力求打造一个完备的微信...

2016/07/13 10:13

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

JFinal Weixin 1.7 增加了 Wap支付功能,改进jackson,支持用户信息中含有特殊字符时的json转换,并且修复了一个支付模块中的一个 bug,建议升级。 maven 升级坐标: <dependency>   <grou...

2016/01/12 15:48

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

继昨日JFinal 2.1发布之后,再来一发JFinal Weixin 1.6,让所有JFinaler们更加Happy,本次升级主要添加了微信摇一摇周边API、高级群发API、客户账号管理API。此外还对原有依赖jar包进行了缩减...

2015/12/30 15:52

JFinal Weixin 1.5 发布,微信极速 SDK

JFinal Weixin 1.5 大幅完善了对微信公众平台API的支持,以便满足更多开发者的需求。主要添加了微信摇一摇、微信支付、素材管理MediaApi,分布式Token存储等实用功能。 本次版本所有功能来源...

2015/11/12 16:28

JFinal Weixin 1.4 发布,微信极速 SDK

JFinal weixin 是第一个微信公众平台极速SDK,基于 jfinal weixin 开发不仅可以立即拥有简单易用的API,而且将立即拥有JFinal 所有的极速化支持,让开发更加轻松自如,节省更多时间去陪家人、...

2015/07/03 14:17

JFinal Weixin 1.3 发布,微信极速 SDK

JFinal Weixin 1.3 主要是将JFinal升级到了2.0版,并对原有代码进行小幅重构,其它添加的功能如下: 1:添加 CustomMsgApi 支持多客服消息 2:添加 QrcodeApi 支持带参数的二维码生成 该版本...

2015/06/25 15:12

JFinal Weixin 1.2 发布,微信极速 SDK

JFinal Weixin 1.2 主要添加了对多公众号账户的支持,并对原有代码进行小幅重构,具体变化如下: 改进内容: 添加 ApiConfigKit,便于将 ApiConfig 对象与当前线程进行绑定,方便在各处通过 ...

2014/12/11 15:40

没有更多内容

加载失败,请刷新页面

3
回答
jfinal_weixin开发问题

@JFinal 你好,想跟你请教个问题: jfinal_weixin开发怎么在启动之后,访问http://localhost/msg报500错误,本人是新...

2016/04/20 16:35
1
回答
jfinal-weixin 启动报错-找不到或无法加载主类 com.jfinal.weixin.demo.WeixinConfig

今天想学习一下jfinal-weixin框架,下载后启动发现报错,本人的开发工具是IDEA 2018,具体错误为: 错误: 找不到或无法加载主类 com....

02/26 17:34
4
回答
JFinal Weixin怎么添加自定义菜单?

添加了出不来啊,在哪里调用那个接口 /** * 查询菜单 */ MenuApi.getMenu(); /** * 创建菜单 */ MenuApi....

2016/01/16 18:20
4
回答
JFinal Weixin怎么创建自定义菜单啊,没看懂
JFinal 的回答 2015/01/30 20:09
最佳答案
1:创建一个 MenuController,并将其路由配置为 "/api/menu" public class MenuController extends ApiController { public void create() { String menuJson = getPara("me...
3
回答
Jfinal Weixin调用接口报错

在处理菜单点击事件的方法里 WeixinMsgController.processInMenuEvent ,调用CustomServiceApi.send...

2018/09/23 20:06
3
回答
JFinal Weixin怎样接入微信?
JFinal 的回答 2015/01/14 17:26
最佳答案
接入方式极度简单: 1:在此下载整个项目并导入到 eclipse 之中:http://git.oschina.net/jfinal/jfinal-weixin,改一下 a_little_config.txt 中的token、appId、appSecret 为正确的值,token值可以自己随便取...
2
回答
在微信公众号开发中,当完成某个任务后如何推送一条消息,让用户知晓?

在微信公众号开发中,当完成某个任务后如何在聊天界面推送一条消息,让用户知晓?并在消息中嵌入某个h5页面的链接。新手求指点。。。。

2015/07/07 16:39
3
回答
【JFinal-Weixin】自定义菜单问题
小强哥unas 的回答 2014/12/18 09:16
最佳答案
location 地址位置消息,二维码扫描关注事件与扫描带参数二维码事件,也都已经支持。 服务号消息还未支持,@JFinal 计划下一版本支持 。我们的系统需要推送模板消息,也是自己扩展了一下,供参考。http://www.oschina.net/code/snippet_923337_44560

没有更多内容

加载失败,请刷新页面

微信开发之jfinal-weixin项目以jar包运行

微信开发之jfinal-weixin项目以jar包运行

2015/11/20 22:02
272
0
jfinal weixin使用

工作记录用,帮助有需要的人。

2014/10/22 11:33
703
2
spring-boot-starter-weixin v1.3.0 发布和使用

简介 spring-boot-starter-weixin 是一个方便 Spring boot 用户快速接入JFinal-weixin进行 微信和小程序开发的插件,支持Spring boot 1.x 和 Spring boot 2.x。 5月前发布创建了一个版本之后...

2018/09/08 13:18
112
0
微信公众号开发实时调试方法

微信公众平台对开发者的支持并不友好,例如没有提供开发的 SDK,开发者中心甩手一套开发文档和一个在线调试页面,但开发者最需要的是在开过程中的本地调试,设置好断点,实时地查看程序运行流...

2014/10/24 09:44
15.9K
19
使用JFinal开发的互联网金融理财产品“八戒理财”上线了

八戒理财是汇盈财富旗下移动理财品牌,专注解决流动性与高收益矛盾,主打随存随取,10天一涨息的活期理财产品。利率最高可达14%,提现最快当日到账。使用JFinal 1.9版本开发。

2015/06/24 12:15
954
1
jfinal微信开发环境搭建

本篇文章主要讲解如何使用jfinal搭建环境通过微信开发。

2015/07/16 11:03
258
0
那些年使用过的JFinal

说明 : 关于微信支付与隐藏或显示右上角按钮,都需要引用微信的JS文档。 因为本人的项目业务功能有限,所以没有涉及大量的代码操作,如果想要对于JFinal有更深入的了解,可以参看官方文档或...

05/29 10:56
3
0
jfinal框架增加微信jsapi支持

部分手机在图片上传的时候,调取不到sd卡相册或其他图片,为了解决这个兼容性问题,同一个页面使用了两种图片上传方案。 html5 :图片编码成base64 ,发送到后台,解码存储。这种方法用于解决...

2015/05/29 10:01
1K
2
Jfinal微信项目运行机理分析

Jfinal_weixin的SDK又出新版了,在这个版里面,又出了好都新功能,随着最近微信开发慢慢的火起来,越来越多的Jfinal的同学们也渐渐的开始关注这个sdk了,平时在工作中也有很多的同学再问,说...

2014/12/16 00:42
3.4K
1
学JFinal不迷路,JFinal优质资源列表(欢迎反馈更新)

学JFinal不迷路,记录一下JFinal相关的资源、产品、讲师等信息(所有信息排名不分先后)。 一、相关站点: 1、JFinal官网-问答、分享、文档、交流、俱乐部 http://www.jfinal.com 2 、JFina...

05/25 19:25
376
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部