转载

fastweixin v1.3.0 发布,极速微信公众号开发框架

开源中国的 IT 公司开源软件整理计划介绍

fastweixin 发布 1.3.0 版本,微信消息处理器重构,非常感谢 @Nottyjay 贡献的代码,版本更新内容:

1.修复JS-SDK中token过期不刷新的BUG

2.修复网页授权接口返回值中缺失的unionid字段

3.修复文件名获取的bug

4.增加菜单点击事件(二维码扫描与照片发送)对应处理

5.新增消息群发接口

6.修复获取分组信息的方法,现在可以获取多个分组了

7.修复当一级菜单不存在二级时,获取菜单异常的情况

9.增加批量移动用户分组接口,增加删除分组接口

10.增加上传、删除永久素材的对应方法

11.重构WeixinSupport类,可以支持扩展到更多框架

v1.3.0重构了微信消息接收控制器,将WeixinSupport类完全独立抽象出来,不再依赖web框架

所以WeixinServletSupport类不再兼容之前的版本,具体使用方法如下:

基于springmvc项目的集成方法

@RestController @RequestMapping("/weixin") public class WeixinController extends WeixinControllerSupport {   private static final Logger log = LoggerFactory.getLogger(WeixinController.class);   private static final String TOKEN = "myToken";   //设置TOKEN,用于绑定微信服务器   @Override   protected String getToken() {    return TOKEN;   }   //使用安全模式时设置:APPID   @Override   protected String getAppId() {    return null;   }   //使用安全模式时设置:密钥   @Override   protected String getAESKey() {    return null;   }   //重写父类方法,处理对应的微信消息   @Override   protected BaseMsg handleTextMsg(TextReqMsg msg) {    String content = msg.getContent();    log.debug("用户发送到服务器的内容:{}", content);    return new TextMsg("服务器回复用户消息!");   }   /*1.1版本新增,重写父类方法,加入自定义微信消息处理器    *不是必须的,上面的方法是统一处理所有的文本消息,如果业务觉复杂,上面的会显得比较乱    *这个机制就是为了应对这种情况,每个MessageHandle就是一个业务,只处理指定的那部分消息    */   @Override   protected List<MessageHandle> initMessageHandles() {     List<MessageHandle> handles = new ArrayList<MessageHandle>();     handles.add(new MyMessageHandle());     return handles;   }   //1.1版本新增,重写父类方法,加入自定义微信事件处理器,同上   @Override   protected List<EventHandle> initEventHandles() {     List<EventHandle> handles = new ArrayList<EventHandle>();     handles.add(new MyEventHandle());     return handles;   } } 

基于servlet项目的集成方法

public class WeixinServlet extends WeixinServletSupport {   @Override   protected WeixinSupport getWeixinSupport() {     return new MyServletWeixinSupport();   } } //用户自行实现的微信消息收发处理器 public class MyServletWeixinSupport extends WeixinSupport {  private static final Logger log = LoggerFactory.getLogger(MyServletWeixinSupport.class);  @Override  protected String getToken() {   return "myToken";  }  @Override  protected BaseMsg handleTextMsg(TextReqMsg msg) {   String content = msg.getContent();   log.debug("用户发送到服务器的内容:{}", content);   return new TextMsg("服务器回复用户消息!");  } } 

基于Jfinal框架的集成方法

public class MyJfinalController extends Controller {  //用户自行实现的消息处理器  private WeixinSupport support = new MyServletWeixinSupport();  //绑定微信服务器  @Before(GET.class)  public void bind() {   support.bindServer(getRequest(), getResponse());  }  //处理消息  @Before(POST.class)  public void messageHandler() {   support.processRequest(getRequest());  } } 
正文到此结束
Loading...