All Projects → 151376liujie → wechat-core

151376liujie / wechat-core

Licence: Apache-2.0 License
基于Java的轻量级微信公众号消息处理框架,使业务代码与微信消息处理框架代码解耦,并采用注解来简化开发!!!也算是本项目的一个小亮点吧!!

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to wechat-core

Awesome-Miniprogram
收藏可供借鉴的开源小程序项目
Stars: ✭ 43 (-58.65%)
Mutual labels:  weixin-mp
discord-message-handler
Message and command handler for discord.js bots and applications
Stars: ✭ 19 (-81.73%)
Mutual labels:  message-handler
wechat mp
微信公众号后台还是有很多好玩的API的, 例如搜索某个公众号的所有历史图文,或者根据关键词搜索原创的推文。
Stars: ✭ 37 (-64.42%)
Mutual labels:  wechat-mp
wechatdemo
WeChat public platform demo (微信公众号开发示例)
Stars: ✭ 46 (-55.77%)
Mutual labels:  wechat-framework
wech
通过Object.defineProperty,让小程序支持通过data/methods/events/watch开发模块化的组件。(玩儿的项目,不维护)
Stars: ✭ 15 (-85.58%)
Mutual labels:  wechat-framework
CHCharts-wechat
📈A charts component for WeChat mini-app development(一款用于微信小程序开发中的图表组件,使用者可以快速添加并集成到微信小程序开发中).
Stars: ✭ 71 (-31.73%)
Mutual labels:  wechat-framework
weixin.next
.Net 下的微信公众号/微信支付库
Stars: ✭ 28 (-73.08%)
Mutual labels:  weixin-mp
wechat-framework
基于Java的微信公众平台开发框架,包括基础消息收发核心框架,基础API框架,以及应用层的web框架
Stars: ✭ 38 (-63.46%)
Mutual labels:  wechat-framework
blaster
Web hooks for message queues
Stars: ✭ 14 (-86.54%)
Mutual labels:  message-handler
Wechat Api
🗯 wechat-api by java7.
Stars: ✭ 1,813 (+1643.27%)
Mutual labels:  wechat-framework
Werobot
WeRoBot 是一个微信公众号开发框架
Stars: ✭ 3,973 (+3720.19%)
Mutual labels:  wechat-framework
Shoryuken
A super efficient Amazon SQS thread based message processor for Ruby
Stars: ✭ 1,837 (+1666.35%)
Mutual labels:  message-processor

wechat-core

一款轻量级的微信消息处理框架,可以让业务代码与微信微信处理框架代码解耦,并且你根本不需要关心消息是如何发送的,你只需要关注你的业务即可.

项目介绍

  1. 封装了微信消息接收与发送,可以使用注解驱动开发,方便的进行业务开发而不需要再关注消息接收和消息发送的细节。

  2. 内部封装了消息处理器抽象类,该类提供处理消息前的消息过滤、默认行为日志等功能,用户可继承该类实现自己的业务。

  3. 只需加入注解就可将处理各个类型的消息处理器分开了,更支持将不同事件类型的消息处理器分开,避免了在处理业务逻辑的代码中使用大段的if elseif elseif 来判断消息得类型的方式。每个接口职责清晰明了,实现更解耦;

注意事项

  • 很多人问我项目的代码是不是不全啊?为什么clone下来的代码都是报错的? 因为我在项目中使用了lombok插件,如果IDE(idea,eclipse)没装这个插件的话可能会报错。所以需要提前安装并配置该插件。

所用技术介绍

  1. 使用jdk 1.8,lombok插件,集成了springMVC 和maven 3.0+,使用了少量的lambda表达式,没有使用什么高大上得技术,代码中的注释也很详细,相信读者朋友能很容易看得懂。

项目架构剖析

微信消息接收与响应示意图

快速入门(不含微信公众平台申请及接口url、token等配置步骤)

  1. 在classpath根路径下创建wechat.properties属性文件,配置wechat.appId、wechat.appsecret、wechat.token、wechat.encodingAESKey(名字必须跟这个一样), 示例如下图:wechat.properties配置文件示例

  2. 编写消息处理器类,继承AbstractMessageHandler抽象类,实现doHandleMessage方法,在该类上加上@MessageProcessor的注解,并指明要处理的消息类型,属性messageType指明要处理得消息类型,eventType指明要处理得事件类型。当消息类型是普通消息时,eventType属性可不用指定(即使指定也无效) 示例代码如下:

    • 基本消息类型的处理(文本消息处理器)
    @Component
    @MessageProcessor(messageType = MessageType.TEXT_MESSAGE)    
    public class TextMessageHandlerExample extends AbstractMessageHandler {    
        private static final Logger LOGGER = LoggerFactory.getLogger(TextMessageHandlerExample.class);    
    
        public BaseResponseMessage doHandleMessage(BaseRequestMessage requestMessage) {    
                //在这里实现你自己的业务逻辑    
            TextRequestMessage textRequestMessage = (TextRequestMessage) baseRequestMessage;
            return MessageUtils.buildTextResponseMessage(baseRequestMessage, textRequestMessage.getContent());     
        }    
    }    
    • 关注事件类型的消息处理
    @Component
    @MessageProcessor(messageType = MessageType.EVENT,eventType = EventType.EVENT_SUBSCRIBE)    
    public class SubscribeEventMessageHandlerExample extends AbstractMessageHandler {    
    
        private static final Logger LOGGER = LoggerFactory.getLogger(SubscribeEventMessageHandlerExample.class);
           
        @Override
        public BaseResponseMessage doHandleMessage(BaseRequestMessage baseRequestMessage) {
            SubOrUnSubEventRequestMessage subOrUnSubEventRequestMessage = (SubOrUnSubEventRequestMessage) baseRequestMessage;
         //在这里实现你自己的业务逻辑
        }
    }
  3. just run your application !! have fun...

示例代码

各种消息类型的接收与回复的示例代码链接如下,供读者朋友们参考

效果演示

扫描下方二维码关注公众号即可体验功能

扫描下方二维码关注公众号即可体验功能

已实现的功能列表

  1. 对基本消息类型(文本、图片、音频、视频、位置、短视频、链接消息)和事件消息(关注、取消关注、上传地理位置、扫描二维码和自定义菜单事件消息)的接收和响应的封装。
  2. 对access_token的封装,请参考AccessTokenService
  3. 整个用户接口API的封装,请参考WechatUserService

联系作者

邮箱:[email protected] ,欢迎提bug和建议。

求职

在线简历:https://151376liujie.github.io/resume/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].