【智能路由器】打赏连wifi

【智能路由器】系列文章连接
http://blog.csdn.net/u012819339/article/category/5803489


打赏连wifi是最近路由上的一个新功能,每个需要通过路由上网的人必须通过微信或者支付宝打赏后才能联网,最近项目和这个有关。同事笑着算了这样的一笔账:我们有30万路由分布在各大城市的餐馆,KTV等餐饮娱乐场所,假如每台设备每天有20人打赏连wifi,平均每人2毛钱,每天靠打赏来钱120万!!!

当然,这账不是我算的,能不能达到目标还得看怎么去营销。据说老板是这样算的:钱都无所谓,重要是数据…

【智能路由器】打赏连wifi_第1张图片


好了,扯开前面的废话,我们从技术上探讨一下在路由上怎么实现打赏连wifi。

页面劫持环节

利用wifidog来实现用户认证
路由上通过wifidog来强制用户跳转到认证服务器,认证服务器会丢给用户一个打赏连wifi页面,点击按钮,即可进行打赏操作。
在arvik的【智能路由器】博客专栏中还未曾讲过这个在路由上普遍应用的认证工具——wifidog,原因是网上对wifidog源码剖析的文章比较多,arvik也只是粗略的看了下网上关于wifidog的源码流程介绍,并没有真正分析过源码。

顺便说一下wifidog,wifidog的作用主要是两件事:
1. 由iptables将80端口流量转发到wifidog,wifidog根据http请求,返回302跳转报文
2. 确认认证

wifidog的内部几乎都是通过向iptables下规则来实现用户流量放行与否

arvik曾想过wifidog的替代方案,但不知效果比起wifidog如何:
1. 解决跳转:在底层可以写个netfilter钩子拦截http请求,然后构造一个302返回包即可实现跳转
2. 解决认证:路由器与服务器可实现一套消息推送协议,其实这方面已经有一些开源的协议了。服务器在认证之后,将消息推送到路由即可放行某用户的流量。当然,这套协议不仅仅是用于认证,还可用于平时路由和服务器的消息传输。

打赏环节

打赏的过程也就是认证的过程,服务器收到打赏金额后会通知(或者被动通知)wifidog来放行用户流量,这样用户就能上网了。

该环节需要web开发工程师对接微信或支付宝的开发者文档来开发和对接支付接口。

支付后,微信会通知服务器,服务器根据支付结果再通知路由是否放行该用户流量。

打通支付环节

用户在成功认证之前是不能正常上网的,既然都不能正常上网,那还怎么进行微信支付、支付宝支付呢?
我们知道,wifidog可以对认证服务器的流量进行放行。但却无法放行微信、支付宝的流量。

解决方案:
1. 放行一分钟
目前,有些路由上的做法是这样的,用户在认证的环节可以免费上网1到2分钟,这段的时间用来给用户进行支付宝或微信支付操作,等过了这个时间用户依然是不能正常上网的。
这种方式实现起来较为简单一些,但据说会降低用户体验度。

2. 深度报文分析
根据深度报文分析直接分析出微信、支付宝流量,无条件予以放行,这样可保证用户可以在认证之前,微信和支付宝能够正常进行支付动作。

有关深度报文分析的文章arvik也写了两篇,分别参看【智能路由器】专栏:

【智能路由器】ndpi深度报文分析之协议分析器:http://blog.csdn.net/u012819339/article/details/52588052
【智能路由器】ndpi深度报文分析源码框架:http://blog.csdn.net/u012819339/article/details/52443705


好了,本文到此为止,作者arvik,关于智能路由后续内容见博客专栏。
【智能路由器】系列文章连接
http://blog.csdn.net/u012819339/article/category/5803489

你可能感兴趣的:(智能路由器,智能路由器)