c 获取微信服务器消息,GitHub - chujiang/fastweixin: 极其方便的实现微信公众平台服务端开发,2行代码完成服务器绑定,3行代码实现用户消息监听...

fastweixin

作者:peiyu

QQ:125331682

技术讨论QQ群:367162748

b277a0765f497e83246e88a4d68bc1d0.png

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f776569626f2d25343070656979752d7265642e737667

68747470733a2f2f6d6176656e2d6261646765732e6865726f6b756170702e636f6d2f6d6176656e2d63656e7472616c2f636f6d2e6769746875622e7364343332343533302f6661737477656978696e2f62616467652e737667

68747470733a2f2f636972636c6563692e636f6d2f67682f7364343332343533302f6661737477656978696e2f747265652f6d61737465722e7376673f7374796c653d737667

68747470733a2f2f6261646765732e6769747465722e696d2f4a6f696e253230436861742e737667

68747470733a2f2f696d672e736869656c64732e696f2f686578706d2f6c2f706c75672e737667

#快速搭建微信公众平台服务器

简单封装了所有与微信服务器交互的消息:文本消息、图片消息、图文消息等等

提供了基于springmvc以及基于servlet框架的控制器,集成了微信服务器绑定、监听所有类型消息的方法

使用时继承,重写即可,十分方便

v1.2.0开始支持高级接口的API,https请求基于org.apache.httpcomponents 4.3.X,json解析基于fastjson 1.1.X

框架中提供MenuAPI、CustomAPI、QrcodeAPI、UserAPI、MediaAPI、OauthAPI用于实现所有高级接口功能,使用极其简单

内部实现token过期自动刷新,不用再关注token细节

v1.2.6开始支持微信消息安全模式,但由于jdk的限制,导致想使用安全模式,必须修改jdk内部的jar包

在官方网站下载:

JCE无限制权限策略文件JDK7

JCE无限制权限策略文件JDK8

下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt

如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件

如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

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 initMessageHandles() {

List handles = new ArrayList();

handles.add(new MyMessageHandle());

return handles;

}

//1.1版本新增,重写父类方法,加入自定义微信事件处理器,同上

@Override

protected List initEventHandles() {

List handles = new ArrayList();

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("服务器回复用户消息!");

}

}

web.xml配置

weixin

xxx.xxx.WeixinServlet

weixin

/weixin

##基于Jfinal框架项目的集成方法

public class MyJfinalController extends Controller {

//用户自行实现的消息处理器

private WeixinSupport support = new MyServletWeixinSupport();

public void index() {

HttpServletRequest request = getRequest();

log.debug("method:{}", request.getMethod());

//绑定微信服务器

if ("GET".equalsIgnoreCase(request.getMethod().toUpperCase())) {

support.bindServer(request, getResponse());

renderNull();

} else {

//处理消息

renderText(support.processRequest(request), "text/xml");

}

}

}

Change Log

Why Use

Maven 项目引入

com.github.sd4324530

fastweixin

1.3.3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值