JFinal Weixin

微信公众号极速 SDK
授权协议 Apache
开发语言 Java
所属分类 手机/移动开发、 微信开发/微信公众号开发
软件类型 开源软件
地区 国产
投 递 者 焦驰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 功能:

  • 1:微信拦截器 2:微信授权登录 在AppConst.java定义一个常量 /*微信跳转页面 的session key*/ public static final String WX_REDIRECT_URL = "wx_redirect_url"; WechatConstants.java public static final String AppId = "xxxx"; public st

  • 正准备做个微信开发平台, 然后波总发布了jfinal weixin 因为原来就使用的jfinal的系统框架 所以直接加上去。 方法如下现有平台加入的话引入 jfinal-weixin-1.0-bin.jar  jackson-core-2.4.1.jar jackson-databind-2.2.3.jar, dom4j-1.6.1.jar       /**  * 配置常量 加入url,to

  • 最近做基于微信公众号相关的项目,用到了微信的js-sdk。整合途中发现了开源框架jfinal以及基于jfinal的jfinal-weixin,并应用到项目中,在此感谢开源项目的作者以及开源的贡献者们。 微信js-sdk使用方法及步骤,传送门:点这里 jfinal 传送门:点这里 jfinal-weixin 传送门:点这里 由于我的项目不是有jfinal框架,用的是Springmvc 所以做了稍微的

  • jfinal wxing大家可能不太熟悉,他是jfinal框架(中国开源框架),用这个做微信公众号开发,非常快的,因为他已经把所有的微信的接口都集成里面了,我们主要是调用它的按口 要是你们PM要快点开发成功的话,我建议用这个框架。 框架下载地址:官网地址:http://www.jfinal.com/   开源社区 http://git.oschina.net/jfinal/jfinal-weixi

  • 参考文章Jfinal极速开发微信系列教程(一)--------------Jfinal_weixin demo的使用分析。 将http://git.oschina.net/jfinal/jfinal-weixin源码下下来,发现竟然发现以jar包的形式和war的形式都不能够正常让WeixinConfigDemo运行起来。 进过跟着发现是PathKit的问题。在DetectWebrootpath的时

  • 该博客参考于微信开放平台: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317853&token=&lang=zh_CN 第一步,获取code,上述链接中有iOS平台和Android平台获取code的示例,暂不做描述 第二步,通过cod

  • 1、ApiConfig:存放Weixin服务号需要用到的各个参数。     token\appId\appSecret\encodingAesKey\messageEncrypt\构造方法+get+set 2、ApiConfigKit:将ApiConfig绑定到ThreadLocal的工具类,方便在当前线程的各个地方获取ApiConfig对象。 3、抽象类InMsg:接收消息     接收公共属性

  •   最近研究微信服务号开发,发现jfinal家封装的SDK还是不错的,于是就定下来用它了。     那么问题来了:git上有demo,那么如何集成到自己的项目中呢?研究研究呗。我们框架使用的是springmvc,下面记录一下整合方法,以及遇到的一些问题: 1.自己项目中首先需要引用jfinal微信需要的jar包以及jfinal的sdk包,这个是必须的。 2.web.xml中配置,启动jfinal相

  • JFinal Weixin 是基于 JFinal 的微信公众号极速开发 SDK,只需浏览 Demo 代码即可进行极速开发,自 JFinal Weixin 1.2 版本开始已添加对多公众号支持。 1、WeixinConfig配置 详情请见:JFinal weixin中的WeixinConfig配置 2、WeixinMsgController public class WeixinMsgControl

  • 1. 添加logback需要的jar包 log4j-api , log4j-core , logback-classic , logback-core , slf4j-api. 2.classpath下添加logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存

  • private static final String appid = PropKit.get("appid"); //应用ID private static final String mch_id = PropKit.get("mch_id"); //商户号 private static final String paternerKey = PropKit.get("paternerkey");

  • 微信小程序用JFinal搭建简易登录 微信小程序 使用官方demo做演示 修改app.js,在登录部分作出扩充。 代码如下: // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId if (res.code) { c

  • 问题描述: jfinal-weixin2.5提供了WxaSubscribeMsgApi可以很方便的发送订阅消息 笔者调用该方法报invalid_template_id,检查template_id无误后,打印出post请求的data时发现是json转换的问题 笔者自定义实现了一个jsonFactory将下划线转换为驼峰 导致在请求微信的订阅消息api时template_id变成了templateId

 相关资料
  • 方案1:将公众号授权给智齿 接入效果 授权过程 授权微信公众号给智齿需要智齿客服管理员和微信公众号管理员共同参与,具体步骤如下: 第一步:智齿客服管理员进入智齿管理后台「设置-支持渠道-微信」,点击「绑定公众号」进入授权页,可见微信授权二维码 ​ <微信公众号授权扫码页-电脑端> 第二步:由企业微信公众号管理员在微信端扫码、确认勾选授权哪些权限集给智齿并点击确认授权,完成授权后即算部署完成 ​ <

  • 微信公众号 微信公众号扫码授权以后,用户发往公众号的消息会转发给机器人,机器人会自动回复消息给公众号用户,同一个微信公众号同时只能绑定一个机器人,如果绑定了新的机器人,之前绑定的机器人会解除绑定。 注:微信公众号渠道接入后,仅支持微信文字,语音两种方式问答,用户在微信聊天框输入语音后,客服系统自动识别语音成文字进行答复。 只需三步接入微信公众号,自动回答公众号上的用户问题 1. 创建机器人 注册登

  • 本SDK支持微信公众号以及企业号的上行消息及OAuth接口。本文档及SDK假设使用者已经具备微信公众号开发的基础知识,及有能力通过微信公众号、企业号的文档来查找相关的接口详情。 1. 安装 pip install wechat 源码安装 git clone git@github.com:jeffkit/wechat.gitcd wechatpython setup.py install 对于微信用

  • 本章将介绍如何在您认证的微信公众号、订阅号中集成小能在线咨询功能 微信对接准备 微信对接模式介绍 微信授权模式 微信极速模式 微信开发模式-真Token方案 微信开发模式-假Token方案

  • 配置微信公众号有什么用? 便于通过微信接收平台的消息,并且可以在用户中心自定义接收事件类型,方便即时接收消息 配置说明 1.登录基本配置" target="_blank">https://mp.weixin.qq.com/,开发->基本配置 2.配置文件 [app.cfg] ; ;[wechat] ; ;app_id: 微信公众号的应用ID ; ;access_token: 微信公众号的应用acc

  • 第一步 登录Niushop开源商城系统后台,小程序-->微信公众号-->微信公众号设置,对公众号进行配置。 注意:微信公众号必须是在 微信公众平台 已经申请认证完成的服务号,需花费300元认证费用。 第二步 设置微信公众号的APPID和APP密钥。 登录微信公众平台,点击 开发->基本配置,可以看到公众号开发信息,开发者ID(AppID)和开发者密码(AppSecret)就是我们要找的微信公众号的

  • 微信公众号配置 具体配置参考微信公众号配置

  • 微信公众号接入