微信应用架构
一、我们要实现什么
清晰明了的实现微信应用的管理
本次博客主要讨论如下4种的微信应用的架构和管理建议 注意本文可能讲的很细,大佬绕道!
- 微信公众号 微信公众号介绍链接.
- 微信小程序 微信小程序介绍链接.
- 企业微信 企业微信介绍链接.
- 企业微信下自建应用 企业微信自建应用介绍链接.
给系统提供结构化的微信应用能力
本次博客主要讨论如下微信应用的实现能力
- 微信公众号应用管理
- 微信公众号消息模板消息推送
- 微信公众号应用oauth鉴权登录管理
- 微信公众号的用户绑定系统实现
- 微信公众号的消息通信设计
- 小程序应用管理
- 小程序模板消息推送
- 小程序登录系统搭建维护
- 小程序外部消息传递建议
- 小程序登录并发优化
- 企业微信应用管理
- 企业微信下应用管理
- 企业微信下应用消息推送
- 企业微信下应用oauth鉴权登录管理
- 微信应用账号管理
- 微信鉴权验证相关建议
提出标准化的微信应用的实现逻辑
本次博客主要讨论如何针对线上线下微信应用的管理及测试方案进行讨论
(1)微信公众号测试管理
(2)企业微信下应用的测试管理
(3)测试环境线上环境accesstoken维护
二、我们怎么干
清晰明了的实现微信应用的管理
面对的端
本次管理主要针对微信公众号、微信小程序、企业微信、企业微信下应用。
端之间的关系
- 微信公众号和微信小程序可以通过微信开放平台连接在一起,进行相互的跳转,和互相的引流,并且小程序的模板消息也只能通过绑定的公众号进行跳转。
- 企业微信和企业微信下应用之间本身就是包含关系,但是我们要进行更灵活的配置我们把企业微信下应用的等级提升到跟企业微信一样的等级。
- 小程序可以通过公众平台授权在企业微信里使用,但是登录方式和微信里的登录方式不太一样,并且由于本人暂时还没有针对企业微信进行过处理所以暂时不做讨论。
- 建议系统提供 系统模板和企业微信下应用程序给微信公众号和企业微信进行绑定,用户不能自定义模板和企业微信下应用程序。这样保证系统出的消息和应用都是自己能控制的。
数据库er图设计
通过如下的3个表就能简单并且完美的实现,上述的微信应用的几个功能点
关键字段解析
- app_name app_name字段全局唯一 为啥要命名改字段那 主要为了多系统之间数据同步,比如线上,测试环境的accesstoken同步问题,多个部署环境accesstoken同步的问题,当然了唯一索引既能保证数据的唯一性还能加快查询速度
- app_type app_type字段为标识四种类型的微信 其中 1公众号 2小程序 3企业微信 4企业微信下应用
- auth_id auth_id字段主要为了解决,如果拿不到微信公众号全部权利的时候(比如上报服务器,不能填写自己公司的地址),这个时候用户的绑定只能通过一次简单的方式实现了
- app_config app_config字段主要为了储存各个类型的应用的相关配置文件
微信公众号主要储存
weixin_id 主要为了当消息回执过来时区分应用使用的
Token 主要为了通过微信的服务器消息检验的
EncodingAESKey 主要为了解密微信推送服务器相关消息的
微信小程序主要储存
page 主要为储存微信小程序消息跳转使用的 (后续会具体解释改选项的作用)微信应用篇中的外部消息管理
企业微信主要储存
login_type 该字段主要用在企业微信的oauth登录系统,并且把企业微信的UserId和系统的账号进行一个绑定联系
企业微信下应用主要储存
url 该字段主要储存应用的首页的地址,主要用未登录状态的情况下,通过oauth登录之后回调的页面地址
5. eagle_weixin_app_link eagle_weixin_app_link 主要为配置相关应用的绑定信息和相关配置 主要储存微信公众号和消息模板的绑定关系,微信公众号和微信小程序的绑定关系,企业微信和企业微信下应用的绑定关系。
6. content 该字段主要为相关绑定的配置信息
微信公众号和消息模板配置为
weixin_template_id 改字段主要储存微信消息模板和微信公众号绑定之后生成的唯一的id 在发送模板消息的时候会使用到。
微信公众号和微信小程序的配置为
空 微信公众号和小程序绑定主要为了推送消息时确定使用什么公众号进行消息推送 并不需要特殊的配置
企业微信和企业微信下应用配置为 这两个字段主要为了oauth认证时使用
agent_id 该字段为在企业微信下创建应用是系统分配的id
work_app_secret 该字段为在企业微信下创建应用时系统分配的应用密匙
7. eagle_weixin_template 主要提供微信模板消息储存模板使用
8. weixin_template_id在微信模板消息的模板库中获取的模板id
9. mini_program_flag 该模板是否是小程序消息模板
10. detail 微信模板详情json结构 需要从微信模板库处获取
配置相关应用
在上一步数据的设计就可以看出我们针对各个应用需要不同的配置信息,所有在创建和更新应用的时候要根据相关的配置文件进行不同应用类型的配置。在更新的时候要针对绑定的配置相关字段进行相关的配置的完善
给系统提供结构化的微信应用能力
为了减少篇幅的大小在这里另起一个博客进行相关微信应用的能力的描述
提出标准化的微信应用的实现逻辑
为了减少篇幅的大小在这里另起一个博客进行相关微信应用的测试和搭配建议