几年前无意间接触了微信公众平台开发,这个在当时还是一个新鲜的事物,但现在已经很流行了,发展的类型也特别的多,比如订阅号、服务号、小程序、微信企业号等,这些产品在人们日常的生活与开发中,都是非常常见的。

当时的博主也顺应时代的变化,去尝试着开发公众平台,到目前为止也算得上是得心应手了吧,但平时我不会去开发这种东西,因为我的本职是做Android开发的,所以我会选择在下班或休息时间去专研一下,当然付出是肯定的,目的不是收获,而是积累更多的新知识。最近博主总结了前面做过的微信公众号开发、微信企业号开发的一些思绪,为大家谋了一些福利吧,就是之前写的一些资源需要CSDN下载积分,或者视频教学需要钱,但这次博主抽出时间,把企业号开发相关的接口全部整合优化了一遍,也就是WeChatEnterprise框架了。

回首前面几年我的成果,博主并不觉得自己是什么大神,是跟你们一样的菜鸟,打工仔一枚,只是平时喜欢专研一些技术相关的东西罢了。

最初的源码资源成果,从最初的三次下载量,达到了2450多次,好评率80%以上,但是博主后面发现这个资源莫名其妙的从下载5积分涨到了30积分,还有就是文件有时候下载下来是个rar不带任何后缀,这个是CSDN的问题,绝对不是博主的问题,毕竟30积分对不常玩CSDN的人来说,还是有点高的。

跟CSDN合作的企业号开发视频教学也收获了22740多学员,这也是让我感到很欣慰的,但是出于博主个人的原因,这个视频博主个人觉得是不合格的,因为声音常小而且还带着腼腆,感觉很对不起付费的学员,所以现在准备做一些东西来弥补这个问题,那就是这个懒人式的部署开发框架WeChatEnterprise。

后面博主不推荐大家再去购买这个课程,主要是音质真的不好,加上博主初次做视频,效果真的非常不好,所以不推荐大家再去学习视频,直接使用懒人框架开发学习完全够用了,良心推荐这个懒人式的部署开发框架WeChatEnterprise。

就连博主新出版的书也是用这个懒人式的部署开发框架WeChatEnterprise开发的,里面几乎覆盖了95%以上的开发接口,以及它们的调用、使用。

新书发布地址:https://blog.csdn.net/jspping/article/details/82766456

随便举个栗(例)子,如OAuth2授权、二次验证等。

首先看OAuth2授权,这个也全部都封装好了,可以直接使用。

授权结果:

再来看二次验证:

二次验证的结果:

当然这些只是其中的一部分,其他的接口都是已经封装好的,只需要替换对应的参数即可直接拿来使用。

接下来回到正题,介绍懒人式的部署开发框架WeChatEnterprise的正确使用:

①首先要确保你的服务器已经搭建好,然后替换微信官方提供解决java.security.InvalidKeyException:illegal Key Size异常的jar包。

jar下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html,下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。
如果安装了JRE,将两个jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件。如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。

②从博主的GitHub上clone或下载框架代码,导入到开发工具,找到wx.api.WXApi类,将其中的Token、EncodingAesKey、CorpId、Secret参数全部填上自己实际开发的参数然后保存,注意Token、EncodingAesKey参数可到企业号后台随机生成也可自定义,但必须要两端参数完全一致。

GitHub WeChatEnterprise 框架下载或clone地址:https://github.com/Mr-Jiang/WeChatEnterprise

开发工具下载地址:http://www.engineer-jsp.cn/download/tools/tools.rar

③在开发工具中编译之前导入修改参数后的WeChatEnterprise 框架源码,并部署到你的服务器。随后进入到微信企业后台,单击“应用与小程序”选项,进入页面后,单击左侧“应用”选项,找到“自建”选项,单击你要开启API接收的自建应用,单击要开启API接收的自建应用后,进入到自建应用的详细页面,找到“接收消息”选项,单击“设置API接收”选项,进入到API接收消息页面,将随机生成或自定义的Token、EncodingAesKey一并填写在开启API接收消息的web页面内对应的方框。注意,此时填写的Token、EncodingAesKey必须要与WeChatEnterprise 框架源代码下wx.api.WXApi类的Token、EncodingAesKey完全保持一致,否则会一直验证失败。接下来在给大家介绍URL参数填写,这里默认填写http://你的服务器地址或域名地址/WeChatEnterprise/coreServlet,如果需要修改地址的组成,可以修改服务器的项目root目录,也就是你服务器默认访问的那个项目的首页面,servlet名称可修改WeChatEnterprise 框架源码下的WebRoot/WEB-INF/web.xml里servlet-mapping节点的子节点url-pattern,反正最终这个路径一定是外网下可以被访问到的,否则也是会一直提示验证失败。

④完成以上步骤之后,你离成功部署项目只差一步之遥了,在单击“保存”按钮之前,默认不勾选上报地理位置、上报进入应用事件,博主也不建议勾选,因为勾选后每次进入应用都要提示,很烦人,确认是否勾选之后单击“保存”按钮即可完成开启API接收,进行后续的消息收发、自定义菜单等接口的操作,部署项目至此就成功了。

接下来继续给大家介绍WeChatEnterprise 框架的使用以及核心类的解读。

wx.servlet.WXCoreServlet核心类,WeChatEnterprise框架的消息出入口

再部署成功之后,所有的消息请求与收发都在wx.servlet.WXCoreServlet类,这个类将收到的消息进行校验,校验成功之后在解密,解密成功后将协议进行层级分发。该类也是消息的出口,对发送和响应出去的消息进行加密发送。

wx.protocol.WXProtocolManager核心类,WeChatEnterprise框架的消息解析、管理、分发等

在成功收到消息之后,wx.protocol.WXProtocolManager类首先对消息进行解析,数据无误之后将会对协议进行分发,依据消息类型将协议划分为WXTextProtocol、WXImageProtocol、WXVoiceProtocol、WXVideoProtocol、WXLocationProtocol、WXLinkProtocol、WXEventProtocol七大协议场景,即文本协议、图片协议、语音协议、视频协议、位置协议、链接协议、事件协议,其中事件协议WXEventProtocol下又进行了多层级的事件分发。七大协议场景继承自WeChatEnterprise框架的wx.protocol.WXBaseProtocol基础协议,也最终将响应的消息交由wx.protocol.WXBaseProtocol基础协议通过wx.protocol.WXProtocolManager类响应给wx.servlet.WXCoreServlet核心类,wx.servlet.WXCoreServlet核心类再将响应的消息进行加密并发送出去。

在wx.protocol.WXProtocolManager类协议分发的7大场景下,当某个场景所执行的流程全部完成后,由wx.protocol.WXBaseProtocol基础协议类releasProtocol方法将该场景释放,标志下一场景的开始。

上述都是WeChatEnterprise框架最最核心的部分,其他部分都是独立开来的,是开发者主动调用并发送消息给关注者。

接下来具体介绍WeChatEnterprise框架各个包的具体功能:

package wx.api

------ 定义了框架的全局常量、全局变量 :请求地址、Token、EncodingAesKey、CorpId、Secret、获取凭证、封装code请求地址等

package wx.app

------ 应用管理 :获取应用、设置应用、获取应用列表

package wx.contact

------ 通讯录管理 :成员管理、部门管理、标签管理

1.成员管理 :创建成员、读取(获取)成员、更新成员、删除成员、批量删除成员、获取部门成员、获取部门成员详情、userid to openid、openid to userid、二次验证、邀请成员、获取外部联系人详情

2.部门管理 :创建部门、更新部门、删除部门、获取部门列表

3.标签管理 :创建标签、更新标签名字、删除标签、获取标签成员、增加标签成员、删除标签成员、获取标签列表

package wx.encryption

------ 消息的加解密校验、请求校验

package wx.media

------ 素材管理 : 上传临时素材、获取临时素材、上传图片

package wx.menu

------ 自定义菜单 ------ 创建菜单、获取菜单、删除菜单

package wx.msg

------ 基础消息单元类 :文件、照片、MpNews、News、Text、TextCard、Video、Voice

package wx.msg.chat.group

------ 群聊 :创建群聊、修改群聊、获取群聊会话

package wx.msg.push

------- 消息推送:推送文本消息、推送图片消息、推送语音消息、推送视频消息、推送文件消息、推送文本卡片消息、推送news图文消息、推送mpnews消息

package wx.msg.req

------ 发送(请求)消息:发送文本消息、发送图片消息、发送语音消息、发送视频消息、发送文件消息、发送文本卡片消息、发送news图文消息、发送mpnews消息

package wx.msg.resp

------ 被动响应(response) :响应文本消息、响应音乐消息、响应图片消息、响应音频消息、响应视频消息、响应图文消息

package wx.oauth2

------ 授权:code换取成员信息、user_ticket换取用户信息

package wx.protocol

------ 协议核心 :协议解析、协议管理、协议分发、协议划分为7大场景、协议层级下发等

package wx.servlet

------ 请求响应入口 : 消息的请求与响应、二次验证、授权登陆、重定向等

package wx.util

------ 工具包 : IO异步与同步阻塞网络请求、核心消息工具类、线程池管理等

如果你觉得博主写的代码框架不错并且对你的开发有帮助,请在GitHub的WeChatEnterprise仓库页面的右上角点击“Star”,对我的技术分享进行支持,将是我最大的动力,博主会继续分享更多优质的资源给大家。

微信企业号开发源码Java编写,懒人开发一键式部署项目,WeChatEnterprise框架你值得拥有相关推荐

  1. 分享一套开源微信后台开发源码,简单配置就能使用(附源码)!

    项目源码 推荐 7 个牛哄哄 Spring Cloud 实战项目 推荐一个非常火爆的电商开源项目! 推荐两个项目! 重磅推荐:一套开源的网校系统,无论是自建网校还是接副业都很方便 推荐几个支付项目! ...

  2. java短信接口源码_java免费短信接口开发源码

    java免费短信接口开发源码 更多 作者:捷信通来源:www.jiexintong.cn日期:2014-07-30 17:08:51 微宏捷信通短信接口提供适应C#.Java..NET等多种主流开发语 ...

  3. 基于Java毕业设计晨光文具店进销存系统设计与开发源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计晨光文具店进销存系统设计与开发源码+系统+mysql+lw文档+部署软件 基于Java毕业设计晨光文具店进销存系统设计与开发源码+系统+mysql+lw文档+部署软件 本源码技术栈 ...

  4. java计算机毕业设计医疗机构药房管理系统软件开发源码+数据库+系统+lw文档+部署

    java计算机毕业设计医疗机构药房管理系统软件开发源码+数据库+系统+lw文档+部署 java计算机毕业设计医疗机构药房管理系统软件开发源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...

  5. 微信weixin小程序开发源码资源学习教程汇总

    微信weixin小程序开发源码资源学习教程汇总 目录 官方文档 工具 插件 教程 视频教程 文章 组件 Demo 置顶 WePY:组件化的小程序开发框架 ? WePY 开发资源汇总 ? 官方文档 小程 ...

  6. Java窗体小游戏开发飞机大作战Java小游戏开发源码

    Java窗体小游戏开发飞机大作战Java小游戏开发源码

  7. 生鲜配送小程序源码_生鲜果蔬配送小程序开发源码

    生鲜蔬菜配送系统开发(谭可)生鲜蔬菜配送系统软件开发,生鲜蔬菜配送模式开发,生鲜蔬菜配送app开发,生鲜蔬菜配送系统平台开发,生鲜蔬菜配送app开发,生鲜蔬菜配送分销系统开发. 搭建一个生鲜蔬菜配送系 ...

  8. 《飞机大战》安卓游戏开发源码(三)

    为什么80%的码农都做不了架构师?>>>    本文章属于原创性文章,珍惜他人劳动成果,转载请注明出处:http://www.pm-road.com/index.php/2014/1 ...

  9. 优秀Android开发源码合集(附解析)程序员进阶宝典

    源码就像乐高积木,如果你想了解它们是怎么组装在一起的,你需要和它交互,有时甚至要把它拆开. 阅读源码的过程对于Android开发者大有裨益, 优秀的源码都极具营养,不仅蕴含大神的思维模式,还有很多值得 ...

  10. 《Android开发源码精编解析》最新PDF版开源,安卓工程师进阶实战

    对于程序员而言,提高源码的阅读与理解能力是提升自我技术水平和编程功力的捷径. 阅读优秀的Android源码.熟悉源码框架对我们日常的开发工作有诸多好处: 有助于我们学习其中的设计模式.思想.架构: 有 ...

最新文章

  1. java 复制excel jxl_java中使用jxl的jar包处理excel的复制,更新等问题。
  2. centos 6.5配置samba
  3. Tomcat源码解读系列(二)——Tomcat的核心组成和启动过程
  4. echarts的x轴数量固定_联轴器 多节膜片式夹紧螺丝固定型 DAAPC(对应LK5CWP)
  5. 从官网下载jdk1.6 1.7
  6. 【题解】PTA-Python题库 浙大版《Python 程序设计》题目集题解索引
  7. MATLAB简单解决输出某个数(组)内自然数的阶乘和问题
  8. 【AutoSec 汽车安全直播课】:整车网络安全威胁分析与风险评估(TARA)方法与实践
  9. 神来之笔之傅里叶变换(频谱)
  10. C++基础知识(常函数)
  11. Wireshark之攻击流量分析
  12. Zookeeper主要应用场景
  13. 剑灵在该服务器上未获取到角色信息,白青FAQ!常见问题一网打尽
  14. HP打印机M329dw纸盘关闭卡、涩问题解决
  15. python tensorflow学习笔记(五)矩阵乘法运算
  16. 2.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出来。 图 12.5 类结构 类 base char name[8]; 含
  17. Windows无法格式化改卷,改卷已脱机, 请尝试首先向改卷分配驱动器号或路径使其联机
  18. 对于云计算的行业发展,有哪些好的建议?
  19. 变频器必须设置的5大参数
  20. iOS开发Xcode7免费真机调试教程

热门文章

  1. 【雷达与对抗】【2015】【部分源码】用于雷达成像与信道探测的FMCW信号
  2. vnc远程 jetson nano 分辨率问题
  3. 电脑如何远程控制挂机宝?影云挂机宝
  4. spyder数据分析
  5. Unity il2cpp LinuxInterop_dlopen Error
  6. 中国大学最卷的专业,让我读上了
  7. 达梦DCA学习笔记202004
  8. devcpp的简单使用
  9. animator时长缩放是什么_TCP 窗口缩放、时间戳和 SACK(1) | Linux 中国
  10. VAM语料库--学习笔记