不请自来,本人之前接私活,做过类似项目的 TPM,在本人所接手的项目中,用户的体验其实没有之前诸位说的那么差,至少我们已经做到了一次关注操作后,用户即可上网,并且下次用户再来上网时无需重复操作,做到无感知的用户操作体验。关于这个路由器的技术实现,如果不出意外的话,应该是这样的。 知识预备
使用场景 场景 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 路由器,交会费入驻他们的微营销平台,注册个公众号并做一些简单的配置就可以了。 ======== 我所接手的项目由于 AP 限制,是需要点击“一键上网”链接实现 oAuth Web 认证。还有一种只要关注后直接认证上网,无需点击“一键上网”按钮。我猜测应该是无线 AP 会针对未认证 WiFi 终端进行数据包分析,抓取“关注公众号“的微信请求数据报,从而得到 MAC 地址,用户微信 ID,关注商户 ID 等信息,再访问远程权限控制服务器,查询该商户微信 ID,用户微信 ID 是否已匹配入库,如果是的话就放行该 MAC 地址的终端。 以上 |
|