微信消息通知产品实现方案

市面上的常用的通知媒介从最原始的「短信」、「Email」、「站内信」,发展到现在的「微信」,他们有各自的优点和不足:
![](http://7xl53s.com1.z0.glb.clouddn.com/image/2016/10/weixin-medium.png)

按照接收群体的数量可以分为两类,单播和组播。

## 单播
发给单个的人,使用场景形如:张三购买一个商品,在付款的时刻微信通知他「付款成功」。这类场景产品实现起来相对比较简单,只需要通过账户的用户名找到绑定的微信号,场景触发之时发送消息即可,就不做过多地阐述。

## 组播
批量发给多个人,使用场景形如:问答区新增一个问题,微信通知给所有的老师。组播的流程相对于单播要复杂很多,需要解决如下几个问题:
1)如何新增订阅者;
2)如何只给指定组发消息。

![](http://7xl53s.com1.z0.glb.clouddn.com/image/2016/10/weixin-group.png)

上面的流程图是订阅者的生命周期,主要分成如下几步:

### 第一步:生成带参数的二维码
生成微信二维码的时候加入一个参数「渠道来源」,官方文档如下: 
<https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542>

### 第二步:扫描带参数的二维码
用户扫码二维码,回调的时候程序做如下处理:给该用户打上指定的标签,比如「老师」。
![](http://7xl53s.com1.z0.glb.clouddn.com/image/2016/10/weixin-tag.png)

### 第三步:给组发消息
当场景被触发时,给「老师」组群发消息。 
![](http://7xl53s.com1.z0.glb.clouddn.com/image/2016/10/weixin-message.png)

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.