小程序推送的两种方式
小程序推送主要有两种方式:一种是通过绑定公众进行推送,另一种是通过小程序订阅消息(服务通知推送)来实现。下面我们详细聊聊这两种方式的具体操作和注意事项。
第一种:小程序绑定公众推送
这种方式的核心是让用户通过公众进入小程序。具体流程是:用户先关注公众,公众推送消息时携带小程序链接,用户点击链接后即可进入小程序。
其实大部分工作都在后端完成,前端只需要准备好点击消息后跳转的链接,交给后端处理即可。
准备工作
1. 将小程序与公众绑定。绑定后才能获取用户信息。
2. 接入微信公众平台,配置服务器。当用户关注或取消关注时,微信服务器会推送事件给我们的服务器。
3. 获取公众用户列表,即所有用户的公众信息。
4. 通过公众获取用户的唯一标识。
5. 推送服务消息。
注意事项
1. 小程序和公众的access_token是不同的,需要用各自的appid和secret去获取。
2. access_token每天只能获取200次,有效期是7200秒。所以应该把它加入缓存,而不是每次都去获取新的access_token。
小程序用户与公众用户关联
要想将小程序与公众用户关联,第一件事就是获取用户的唯一标识。我们可以在两种情况下获取用户的唯一标识:
一、如果用户已经关注了公众,那么在用户登录的时候,就可以获取到。
二、如果用户没有关注公众,那么得让前端调用接口,把加密数据给后端解密拿到。
解密需要access_token,而access_token又有有效期,得注意它过期的情况。
处理特殊情况
1. 在我们之前,已经关注了公众的用户没有去关联。
解决方案:获取微信公众的用户列表,再依次获取用户信息。注意,此操作非常耗时。
2. 用户先关注了公众,但是从来没用过小程序(数据库里没有,导致无法关联)。
解决方案:新建一张表,把这个公众用户先记录下来。当小程序用户登录时,先检查一遍这张表尝试关联。
第二种:小程序订阅消息
这种方式目前还在调研阶段,后续会持续更新。前置准备包括小程序、小程序密钥和模板。前端只需要调用官方的接口,并在成功的回调中调用服务端接口告诉服务端订阅成功即可。
新版一次性订阅消息
新版一次性订阅消息是一种无需用户在弹窗中主动订阅即可向用户下发消息的能力。用户的订阅方式为:当用户在小程序中进行微信支付后,者可将微信支付订单作为凭证向用户下发服务通知。
订阅消息的注意事项
1. 用户勾选“总是保持以上选择,不再询问”之后,下次订阅调用接口不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。
2. 模拟器和真机的差异:在模拟器上面弹出来的弹窗和真机上面调试的效果可能不一样。
3. 接收的,一次性订阅和订阅两个类型的不能同时触发。
4. 一定需要由用户触发,也就是一定要有按钮操作触发,不能直接调用。
5. 注意前后端环境要一致(容易被忽略)。
6. 查看你的手机的设置—通知,是否允许你的应用接收推送。
订阅案例
其实前端的操作很简单,就是调用这个方法,触发微信的方法,微信的方法触发你们后端的方法,后端做对应处理,难的是联调途中可能需要花费更多的时间去调整。