微信怎么绑定消息服务器吗,fastweixin: 极其方便的实现微信公众平台服务端开发,2行代码完成服务器绑定,3行代码实现用户消息监听...

fastweixin

作者:peiyu

ba957e3812d38374267f502c38074bf1.png

weibo-%40peiyu-red.svg

badge.svg

master.svg?style=svg

Join%20Chat.svg

license-Apache%202-4EB1BA.svg

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

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

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

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

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

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

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

官方网站下载:

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

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

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

详细文档(感谢luozhuang 的整理)

基于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.15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炒菜机器人放食材的顺序_如果给你个做饭机器人,你会让它做些什么饭菜?

我曾去过一个从事人工智能软件开发的工程师家里,进她家,从进门开锁、开灯、烧开水、泡咖啡、扫地机、蒸饭、炖汤、洗碗机等基本上实现了智能控制。我笑着说,如果再有个机器人帮你炒菜,你就实现“家务自由”了!现在唯独…

服务器中文件设置密码,共享服务器文件权限怎么设置密码

共享服务器文件权限怎么设置密码 内容精选换一换该步骤必须在root用户下执行,若以普通系统用户登录,需要执行su切换到root用户下执行后续操作。ssh-keygen -t rsa过程中需要:(可选)输入保存的文件名,默认为在/root/.ssh/id_rsa目录…

ajax定时器怎么写,js定时器怎么写?就是在特定时间执行某段程序

js定时器怎么写?就是在特定时间执行某段程序复制代码 代码如下:$(function(){var handler function(){}var timer setInterval( handler , 1000);var clear function(){clearInterval(timer);}});我要在定时里面加一个页面跳转,然后在页面load的时候加…

vue读取服务器文件跨域,新版vue-cli模板下本地开发环境使用node服务器跨域的方法...

背景我们都知道浏览器有一个既核心也最基本的安全功能,即同源策略。同源分别是:协议,域名,端口。如果浏览器访问服务器不同源的话,就会访问不到数据。那开发中常常访问的服务器不同源,那么可以借助一个服务器当做中介来…

一个账号可以登录几台机器_干货:一个PubMed账号可以有这么多用处!

且不说撰写一个综述类文章,就连平时的课题设计和汇报,都是动辄几十篇文献以上,那么,该如何管理这么多文献呢?笔者认为,一个PubMed账号足矣。我们都知道,在生物医药领域,PubMed这个文…

投票选举 算法_区块链主流共识算法一文全通

在每种伟大的加密货币背后,都有着一个伟大的共识算法。没有共识算法是完美的,但是它们各有千秋。在加密世界中,需要共识算法来防止重支付。这是迄今为止一些最流行的共识算法的简要介绍,从区块链到DAG以及介于两者之间的所有内容。…

clion 引用dll_用CLion实现本地方法并给java调用

众所周知,PHP是世界上最好的语言,java排第二,因为PHP无所不能。但是在某些场景下java还要调用本地方法来提高执行的效率,故java只能排第二。java提供了jni(Java Native Interface)来实现在java中调用本地方法。本地方法在java中用…

mysql没有创建数据库的权限设置_mysql 创建数据库,用户并给用户设置权限

mysql创建数据create database dataBaseName default charset utf8 collate utf8_general_ci; --创建数据库并设置字符集创建用户create user 用户名% identified by 密码; -- ‘%‘ 是该用户可以在任何机器上登录查询用户select user,host.password from mysql.user;给用户设置…

golang mysql封装_自己封装的golang 操作数据库方法

这个是我用Go写的第一个东东,可能还存在些BUG没有测试到。这里主要是提供一个参考。各位可以改写成自己的风格。在命令行下输入如下两条命令,进行安装go get github.com/male110/SimpleDbgo install github.com/male110/SimpleDbGo语言的数据库操作&…

mysql历史数据备份_Mysql存储过程历史表备份

原文:Mysql存储过程历史表备份应用背景SCADA采集系统需要将实时数据存入历史表。问题1:如何更简单的添加历史数据?2.海量历史数据,比如年数据,如何快速筛选 画曲线?利用mysql的事件,每小时存一次采集数据&a…

如何用js给图片重置宽_如何用js给老婆每天发情话

作者: 加百利真胖原文:https://juejin.cn/events/all一、引言最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦。工作的时候不能在家陪她,就想着写个程序,每天固定在固定时间给她发一些情话,好让她在…

世界手机号码格式_世界上手机号码最长的国家是中国,最短的是哪个国家?

现在手机普及率非常之高,基本上人手至少一个手机,那么哪个国家的手机号码最长呢?其实世界上最长的电话号码,是11位数的中国手机号码。为什么手机号码是11位呢?1、号码格式决定我们的手机号可以分为三段,都有…

dockers log查询dockers的文件_Tomcat PUT方法任意文件上传

漏洞背景:tomcat(7.0.0-7.8.1)服务器,开启了HTTP PUT请求方法,web.xml文件中的readonly值设置未false漏洞环境:使用vulhub环境,直接dockers安装安装成功:安装vulhub详见:https://vulhub.org/#/index/漏洞利…

vue替换全部符合’字符串_技术成长日记-Vim实用技巧-4.7查找替换

1. 普通查找/ 向下查找? 向上查找n 查找下一个目标字符串N 查找上一个目标字符串q/ 回溯查找历史,输入该命令后会在状态栏上方显示一个查找历史回溯窗口,如图4.1: 图4.1 回溯查找历史可以选择之前执行过的查找,也可以在最后一行回…

bex5 mysql_bex5 库存系统的增删改查等功能对MYSQL数据库的维护操作 Windows Develop 276万源代码下载- www.pudn.com...

文件名称: bex5下载 收藏√ [5 4 3 2 1 ]开发工具: Java文件大小: 99 KB上传时间: 2017-05-18下载次数: 0提 供 者: 张天详细说明:库存系统的增删改查等功能对MYSQL数据库的维护操作- U5E93 u5B58 u7CFB u7EDF文件列表(点击判断是否您需要的文件,如…

excel导入mysql 截断_解决Excel导入数据库时出现的文本截断问题

问题在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,原始的Excel数据为:忽略错误导入SQLServer2008过程中,如果源数据和目标数据类型不匹配会导入失败,所以导入数据时会忽略错误&…

mysql表添加完整性约束_SQL语句——完整性约束

1.MySQL支持的完整性约束a.主键约束特点:唯一且非空主键可以由一个字段组成,也可以由多个字段组成如果主键由一个字段组成,既可以添加到列级,也可以添加到表级。如果主键由多个字段组成,则只能添加到表级。(1)在字段的…

通信线路工程验收规范 gb51171-2016_老杨一建通信学堂通信线路工程施工技术

引言:本章节以通信线路工程施工建设为主题,涵盖通信光(电)缆施工通用技术、架空、直埋、管道还有综合布线工程施工技术,深入浅出介绍通信线路工程建设中各环节的工作内容和涉及的相关规范。知识归纳卡名 称:1L412050 章 节…

python制作测试报告_使用 python 生成 extent report 测试报告

背景一直使用 HTMLTestRunner 生成 app 自动化的测试报告内容,虽然加了截图的展示,还是感觉报告不够好看。allure 报告内容可以,但是要以 pytest 管理测试 case,且 pytest 会执行所有以 test_命名的 case,测试结果只有…

twisted mysql_在Twisted下用MySQLadbapi获取自增id

D jango的ORM有一个很便捷的功能,其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据库后,会将创建的D jango的ORM有一个很便捷的功能,其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据…