不请自来,本人之前接私活,做过类似项目的TPM,在本人所接手的项目中,用户的体验其实没有之前诸位说的那么差,至少我们已经做到了一次关注操作后,用户即可上网,并且下次用户再来上网时无需重复操作,做到无感知的用户操作体验。关于这个路由器的技术实现,如果不出意外的话,应该是这样的。
知识预备
- 一般商家的微信公众号都是开了微信公众号的API,你需要在微信公众号管理页面中配置商家的服务器地址以及一些公众号权限认证的信息,该服务器是用来接收腾讯发过来的各种微信事件,比如有人关注了公众号,有人取消关注了公众号,有人向公众号发送了微信并回复等。所以,当你关注了该公众号后,商家的服务器能够得到你的微信账号信息并入库记录,当你取消关注后,商家服务器同样能够把你在他们自己数据库中的记录标注出来。
- 无线路由器一般通过手机WIFI的mac地址来选择放行/禁止其联网的行为。
- 无线路由器一般有类似管理接口,使得像RADIUS服务器可以通过该接口控制无线路由器对终端MAC地址的过滤行为。
使用场景
场景1-终端用户在商家WIFI网内,关注商家公众号
用户A通过手机终端连接商家无线路由器(下面将以AP代替),该AP无密码限制,AP得到了该终端的MAC地址A_mac_address。此时用户发现连上WIFI后不能上网,浏览任何网页都会跳到一个广告页面,页面内容为告知用户在AP网内使用微信关注公众号(该AP放行微信URL以及商家自己服务器的URL,如果用户未验证的话,AP就会每隔几分钟就会自动踢掉用户,使得用户WIFI断开连接,用户必须手动再次连接该WIFI才能重新连接,防止用户蹭网刷微信)。于是用户照做,关注商家公众号后,公众号会向用户A推送一条包含“一键上网”链接的消息,用户在AP网内点击该链接后直接访问商家的RADIUS服务器,服务器能够取到该请求发送者的微信ID,MAC地址等,然后核对该微信ID是否已关注商家公众号,如果已关注,则将该MAC地址和微信ID一起关联入库,只要该用户A一直关注该公众号,在商户AP下就能够一直保持放行权限,上网无阻。使得A后续再次来到该商户连接WIFI上网达到用户无感知的效果。
场景2-终端用户在自有网络内(手机蜂窝数据,其他WIFI下),关注商家公众号
用户A通过非商家WIFI环境中关注商户公众号,用户A的微信ID被商户记录入库,被推送“一键上网”链接,用户点击该链接后被告知必须在商户WIFI内执行此操作方有效,于是用户等到某天来到该商户AP网内,再次打开微信,点击之前的“一键上网”链接,访问商户RADIUS服务器,radius服务器记录该用户的微信ID,MAC地址,比对之前的已关注微信ID表后放行该用户的联网行为。
场景3-终端用户取消关注商家公众号(无商家AP网内限制)
用户A在任何公网WIFI环境下,登录微信,取消关注该商户公众号,该取消关注事件会通过腾讯服务器推送到商家服务器上,商家服务器标注该微信ID关联的终端MAC地址,使得该终端在商户AP下的上网行为被限制。
题外话
作为商家,搞这么多服务器实在太麻烦,所以现在市场上的微营销平台都将微网站功能平台化,每个入驻商户分配个子域名,有现成的类似CMS系统或者模板给商家展示各种广告,商品信息等。RADIUS服务器有的集成在AP路由器里,有的则是微营销平台提供的统一服务器,并且都给商户提供了配置管理的界面,对于商户来说,你只用买他们的AP路由器,交会费入驻他们的微营销平台,注册个公众号并做一些简单的配置就可以了。
以上
— 完 —
本文作者:张强
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 13 个回答,查看全部。
延伸阅读:
网络是 Wi-Fi 的网速快还是插网线的速度快?
给路由器套上处理过的易拉罐,Wi-Fi 信号会变强吗?