关于小程序中做用户关注公众号功能实现
说明:小程序和公众号已绑定在同一个微信开放平台账户下
第一步:服务端登录后通过前端传递的encryptedData, iv 参数 解密获取用户unionid,openid,存入数据库,使用官方组件 official-account 来引导用户关注
第二步:公众号后台配置服务器地址,配置失败可查看此篇文章
第三步:成功配置后,微信服务器把关注者与用户的产生的交互消息post到配置的服务器地址,在接口解析FromUserName拿到openid,通过接口https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN获取到unionid,通过unionid查询数据库,来更改该用户的关注标志,至此就实现了
备注:
当前需求是只要用户关注任务完成任务,即使用户再进行取关,任务不会回滚,若用户取关,需要把关注标志修改为未关注,需要解析Event(如下)来准确判断是关注还是取关,具体可参考接受事件推送文档进行实现。
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>