微信门户开发框架-使用指导说明书
微信门户应用管理系统,采用基于 mvc + bootstrap + ajax + enterprise library的技术路线,界面层采用boostrap + metronic组合的前端框架,数据访问层支持oracle、sqlserver、mysql、postgresql等数据库。框架以mvc5,c#4.5作为开发基础,能够部署在任何.net服务器上,建议部署到阿里云服务器。
1、环境准备
本框架采用c#开发,web管理端采用基于 mvc + bootstrap + ajax + enterprise library的技术路线的架构,需要使用vs2017/2019进行开发,默认数据库采用sql server,可以安装sql server 2008r2及以上。
微信公众号开发,一般需要进行相关的网页页面调试,请下载微信提供的《微信开发者工具》,下载地址为:。
框架开发一般还需要使用到代码生成工具,工具可以从我公司的官网上下载(http://www.iqidi.com/download/database2sharpsetup.rar)。
2、模块说明
整个框架项目包含了微信公众号、企业微信、小程序三个部分内容,其中三者之间有一些相同的部分抽象出来放在一个公共的项目里面,然后公众号、企业微信、小程序共享一个后台管理系统,这个后台系统主要就是实现账号信息的配置、和微信后台事件的对接、以及权限和系统数据的管理维护等功能。
使用vs打开项目源码后,解决方案的工程如下所示。
下面是对上面项目工程进行说明,方便理解其中各个模块的意义。
编号 |
名称 |
说明 |
01_framework 目录里面的项目,是框架的基础内容,包括权限、字典、附件模块的管理。 |
||
1 |
security |
权限管理模块业务层。 |
2 |
dictionary |
字典管理模块业务层。 |
3 |
attachment |
附件管理模块业务层 |
4 |
other |
其他系统内容,如图标、产品、测试用户等基础信息 |
02_common目录里面的项目,是公众号/企业微信/小程序公用的部分,如账号配置、基础消息对象类,也可以是web后台管理所需的模块内容。 |
||
1 |
whc.common.api |
提供一些第三方模块的封装,如邮件处理、短信处理以及一些第三方的应用扩展模块等。 |
2 |
whc.common.cache |
基于cachemanager的接口处理的缓存接口,可以实现systemruntimecache、redis等缓存的整合。 |
3 |
whc.common.data |
提供常用模块,需要对数据库处理的模块的封装,包括一些如账号、菜单、事件、消息内容等公用的数据存储。 |
4 |
whc.common.entity |
提供常用模块里面设计到的实体类信息。包括公众号和企业微信都共同用到的对象类。 |
5 |
whc.common.handler |
多个ioc方式的模块,可以在所需系统注册使用。 自定义接口包含有测试处理接口、企业微信消息推送接口、设备信息二维码扫码接口、短信和邮件发送接口。 外部的插件业务接口包括:百度的地理位置解析接口、电影院信息查询、天气信息查询、交通信息查询、旅游信息查询等。 |
03_weixin 目录里面的项目,是微信公众号api相关的内容。 |
||
1 |
testweixin |
是对公众号的api封装的项目模块进行测试。 |
2 |
whc.weixin.api |
针对微信公众号api的单独封装。 |
3 |
whc.weixin.data |
结合数据库存储内容,对微信公众号模块的管理。这个模块包含对whc.weixin.api的使用。 |
04_corp目录里面的项目,是对企业微信api的封装和对数据库管理模块的封装。 |
||
1 |
testcorp |
是对企业微信的api封装的项目模块进行测试。 |
2 |
whc.corp.api |
针对微信企业微信api的单独封装。 |
3 |
whc.corp.data |
结合数据库存储内容,对企业微信模块的管理。这个模块包含对whc.corp.api的使用。 |
05_smallapp目录里面的项目,是对小程序api的封装和对数据库管理模块的封装。 |
||
1 |
testsmallapp |
是对小程序的api封装的项目模块进行测试。 |
2 |
whc.smallapp.api |
针对小程序api的单独封装。 |
3 |
whc.smallapp.data |
结合数据库存储内容,对小程序模块的管理。这个模块包含对whc. smallapp.api的使用。 |
06_ui 是微信后台管理系统部分内容,包括后台管理系统及企业微信的管理客户端程序。 |
||
1 |
whc.weixin.bootstrapui |
微信管理后台,包括对公众号和企业微信的统一管理,实现各个模块数据的同步和查看管理操作。 |
2 |
corpmanagement |
基于c/s的winform企业微信管理客户端,可以方便管理企业微信的通讯录的组织机构、标签、人员信息,以及文本、图片、语音、视频等消息的发送功能。 |
07_his 是扩展的项目部分 |
||
1 |
whc.his.data |
包含对医疗设备维修项目、处方审核项目等扩展项目的模块管理。 |
|
||
其他模块 |
||
1 |
公用类库 whc.framework.commons whc.framework.controlutil |
提供日常各种开发操作的辅助类库。 whc.framework.commons项目是对常规.net共用类库的封装使用,已达到统一、高效、方便的目的。 whc.framework.controlutil项目是对第三方组件的封装使用,以及对整个框架各层抽象类的定义和封装。 |
2 |
分页类 whc.pager.entity |
这个是独立定义的一个分页参数对象,方便框架里面对数据进行分页处理。 |
4 |
参数配置管理 settingsprovider.net |
提供了一个第三方的配置信息的管理类。这个是在github上的一款参数配置组件,能够基于普通配置文件、programdata目录文件、独立存储区文件等方式的配置文件存储,它主要是基于json格式进行的配置保存,因此我们还可以把它存储到数据库 |
3、模块关系
开发模块划分包括:微信公众号、企业微信、小程序几个部分
这几个部分又有一些基础一样的内容,抽取出来作为公共的项目。公众号、企业微信、小程序公共部分内容如下所示。
公众号、企业微信、小程序几个分类,它们包含了数据存储的模块内容,也包括了对应分类的微信api操作部分。数据管理模块和api模块调用关系如下所示。
微信界面项目,同样是这几个部分的组合。微信界面部分是前面模块组件的综合使用,在微信应用里面,一般需要使用80端口和微信服务器做交互,而这个同时往往也是我们项目的端口地址。
另外,微信框架还包括基础类库支持部分内容,包括权限管理、字典管理、附件管理等基础内容。
微信开发,我们首先需要利用我们的语言(这里是利用c#语言),为所有用到的api接口实现进一步的封装,方便使用,微信api模块包含的内容很多,其中公众号接口封装包括内容如下所示。
企业微信的api接口包含内容如下所示。
我们在whc.weixin.data模块里面,定义了包含公众号的消息分派处理接口,这个分派接口是对接收来自微信服务器的各种消息事件进行响应;另外该模块还包含一些常规的数据存储,如关注用户、菜单、文章内容等方面数据的存储,如下所示。
同样我们参考微信公众号的做法,也是建立一个数据存储管理的项目,作为微信消息事件的处理入口,同时也管理存储一些必须的数据,包括需要同步的用户、标签、部门等数据。
4、微信公众号配置
不管是微信公众号,还是企业微信,都需要申请账号才能使用,并且最好通过认证,这样才能具有更多的接口权限使用。
微信公众号的注册申请参考文章:。
输入账号密码,登录微信公众号后台,然后扫码确认登陆,在左侧【开发】【基本配置】中获取对应的账号配置参数。
在【修改配置】中进行修改内容,如下界面所示。
然后启动微信管理后台系统(一般启动,本地地址为http://localhost:32973/login/index),如果部署在服务器后,请通过域名进行访问即可。
登陆后台系统后,在【微信管理】【微信账号配置】管理界面里面进行维护对应账号信息,如下界面所示。
修改或者增加相关的公众号账号信息。(根据微信公众号参数,录入红色方框的内容)
再次回到刚才后台的界面,修改对应的url,提交参数,如提示【提交成功】即可正确完成配置。
5、企业微信配置
微信企业微信的注册申请参考文章:。
企业微信后台登录地址为: ,扫码登录进行获取对应的参数,找到【我的企业】【企业信息】界面,如下界面所示。
然后滚动到底部,找到对应的企业id,如下界面所示,这个就是后面填写需要用到的corpid。
再次切换到【应用管理】【应用】选项卡里面。
在应用底部,找到【创建应用】按钮,创建一个新的应用;或者单击进入现有的应用进行查看参数。
查看创建了的应用信息,如下界面所示。
记录下前面的corpid、corpsecret、加密token、加密秘钥等参数。
然后启动web管理后台,登录后台系统后,在【微信管理】【微信账号配置】管理界面里面进行维护对应账号信息,如下界面所示。
在账号管理界面里面,选择企业微信,修改或者增加相关的账号信息。
再次回到企业微信后台,录入上面获得的接收url,然后保存成功即可,如下界面所示。