小言_互联网的博客

不看巨亏~小老弟 通过一年多对微信应用的了解 针对系统设计出微信应用架构!!-----微信应用能力篇

318人阅读  评论(0)


管理配置篇如下 管理配置篇

微信公众号

微信公众号的用户绑定系统实现

微信公众号最重要的一个功能就是模板消息推送,但是我微信公众号有几个前置条件需要满足

  1. 有能推送模板消息的公众号
  2. 有符合合条件的模板
  3. 接收消息人的openid
    其中前两个点应该是必须要完成的流程 =,所以我们先针对第三点讨论具体的实现方式。

多种情况

我们通常会遇到如下两种情况
(1)不需要与系统用户进行绑定
(2)需要与系统已有账号进行关联绑定
第一种情况不需要我们进行特殊处理只需要根据简单的把微信用户信息进行储存即可,而第二种情况我们需要把微信openid和用户进行绑定。这里我们提供2种绑定方式。

数据库er图


简单的通过三张表即能把用户绑定起来

  1. eagle_user 用户表 主要储存用户的实体信息。
  2. eagle_user_oauth 外部用户表 主要储存第三方用户对接系统时的用户信息 包括一些配置的 其中third_id储存open_id。
  3. eagle_user_link 储存用户和用户之间的绑定关系。用户绑定的实现逻辑既是完善这种表

二维码绑定

基本思路和流程图

二维码绑定的基本逻辑思路,即当用户已经在系统登录的情况下,根据当前登录的用户信息生成关于本身用户的公众号二维码。二维码中包含着用户信息。下图为我们系统二维码绑定的逻辑

实现细节

  1. 生成二维码
    推荐使用QR_STR_SCENE为临时的字符串参数值 这个类型能生成大量的二维码 虽然不是永久有效但是缓存个一天左右的时间还是没有问题 当然了用永久二维码也是可以的但是一个公众号只有10w个.
    由于二维码中的内容有长度限制,所以尽量以固定的分隔符进行分开,按照顺序进行排列好。这样在解析的时候才好把信息解析出来 注 我是以weixin_app_id_scene_user_id 这样的字符串进行保存的
  2. 搭建接收微信消息的服务器
    通过接收到的消息经过解析之后的内容,做针对的处理
  3. 接收信息
    (1)如果用户未关注公众号
    如果用户未关注过公众号,用户扫描二维码会先去到公众号展示页,当用户点击其中“关注公众号”按钮,微信服务器会通过http请求把该用户的关注信息传递过来 需要关注 EventKey 该字段标识该次请求有场景值带过来,具体信息为qrscene_{weixin_app_id}{scene}{user_id} 可以从其中的第一参数判断用户是通过扫描二维码过来的 然后根据第三个参数来判断改二维码的具体功能。
    (2)如果用户已经关注公众号
    如果用户关注过公众号,用户扫描二维码会直接去到对话页,这时候服务器会接收到扫描二维码的消息,Event字段为SCAN EventKey为{weixin_app_id}{scene}{user_id} 这时候通过判断第二个参数来判断改二维码的具体功能
  4. 绑定用户
    然后通过FromUserName该字段获取用户的openid 然后通过该openid创建用户和用户第三方配置信息,之后再把二维码中的用户信息和该open_id创建的用户绑定起来这

账号密码绑定

基本思路和流程图

账号密码相对思路相对简单点,提供一个类似登录页面的页面,让用户在该页面输入账号密码。当通过验证之后把用户进行绑定即可。如果为我们公司的绑定流程图

实现细节

1.推送引导消息
当用户第一次关注公众号的时候可以直接给用户推送相关的绑定的用户消息,让用户直接绑定。
2.提供绑定用户的菜单项
给微信公众号的菜单里添加一项绑定用户的选项,当用户点击菜单的时候,先去腾讯请求相关的微信用户信息,然后拿掉用户的openid回跳到相关的绑定页面。
3.绑定用户
当用户通过系统的账号密码验证之后,把通过验证的用户和openid生成的用户绑定在一起

微信小程序

企业微信

企业微信下应用


转载:https://blog.csdn.net/weixin_42088262/article/details/105911425
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场