商场环境下WiFi认证服务器设计与实现
2021-12-14刘子杰
◆刘子杰
商场环境下WiFi认证服务器设计与实现
◆刘子杰
(四川大学 锦江学院 四川 620860)
针对当前商场环境下无法有效积累客户群体的问题,本文基于ThinkPHP框架、Mysql数据库、微信公众号等技术设计并实现了一套商场环境下WiFi认证系统。着重论述了用户从微信认证,到正常上网,最终实现数据推送的整个过程。本系统具有功能完善、数据安全、操作便捷等优势。通过本次设计,商家可有效地积累微信粉丝用户,定期向粉丝群进行商铺活动的消息推送,使顾客可以在第一时间内了解商场内各商铺的最新活动信息,有效地维护商场的客户群,提高用户购买力。
WiFi认证;微信公众平台;ThinkPHP;Mysql
1 引言
WiFi是基于ieee802.11标准的无线局域网[1],它在网络上具有覆盖面广、高速率、低功耗等技术优势。伴随着网络的普及,WiFi无论是在核心技术还是影响范围方面,都进入飞速发展的时代。在各类公共场所,如商场、车站,WiFi的部署为人们的生活都带来了极大的便利。
WiFi的普及为其商业化带来了极大的机遇,国内众多城市提出“无线城市”的发展战略。与此同时,越来越多的企业逐渐意识到商业WiFi的重要性。商业WiFi是指由商业运营商为企业用户提供包括软件、硬件、管理、维护等全方位解决方案。如何将流动顾客转化为具有购买力的客户,这一问题受到越来越多商家的重视。针对当前合理的需求,本次设计并实现了一套商城环境下WiFi认证系统,通过微信认证的方式,帮助商家积累粉丝群体,通过微信公众号向粉丝群进行消息推送,使顾客在第一时间了解商场内各商铺的最新活动信息,有效地维护商场的客户群,提高用户购买力。
2 系统设计
2.1 设计思想
针对商场环境下有使用免费WiFi需求的顾客,提供开放WiFi供其免费上网,通过微信认证,强制顾客关注商场微信公众号后免费上网。对于已认证的顾客,管理员在后台查看每个用户的上网统计情况,包括上网时长、使用流量、访问历史记录等信息。针对已关注公众号的顾客,管理员可通过公众号每日向粉丝用户进行商场各店铺最新活动的推送,提升用户消费力度。
2.2 系统架构
WiFi认证系统由WiFi认证路由器和WiFi认证服务器两部分组成。本文主要阐述WiFi认证服务器设计与实现,WiFi认证路由器作为配合使用。
WiFi认证路由器基于OpenWrt操作系统运行,基于WiFidog协议实现,OpenWrt系统对WiFiDog协议具有良好的支持。
WiFi认证服务器基于LNMP架构设计,基于ThinkPHP框架开发。LNMP即Linux+Nginx + MySQL + PHP,LNMP是Linux系统中开发网站的经典组合[2],对于不熟悉环境部署的开发人员来说,可以通过一键安装的方式快速部署服务。
2.3 关键技术
2.3.1 Openwrt系统
OpenWrt是开源的Linux操作系统。国内的OpenWrt版本包括DreamBox、PandoraBox等。OpenWrt支持ARM,X86等多种处理器,并且含有数千种软件包。开发者通过Make命令即可实现编译属于自己的固件,固件格式为.bin文件。
2.3.2 WiFiDog协议
WiFiDog是一个强制门户热点管理系统,主要用于实现WiFi认证功能,由网关和认证服务器两部分组成。OpenWrt系统对WiFiDog具有良好的支持。在路由器端基于C语言实现认证逻辑,在服务端基于PHP语言完成认证的交互操作。
2.3.3 ThinkPHP框架
ThinkPHP是一个轻量级PHP开发框架,采用MVC模式和面向对象的结构,具有丰富的查询机制,以及简单的CURD操作。支持MySQL等多种数据库。包含了底层架构、数据库访问层、模板引擎、缓存机制、角色认证、表单处理等组件。
2.3.4 Nginx服务器
Nginx是一款开源的、高性能的反向代理服务器。Windows平台下的传统Web服务器包括:Apache、IIS;Linux下的常用Web服务器包含Apache、Nginx等。但是随着Nginx的不断发展,它可自动选择高效的epoll,event作为网络I/O模型,支持高达上万的并发连接数,快速地解析静态文件,而内存以及CPU在稳定运行的状态下,仅消耗较少的系统资源,因此被国内外大多数互联网公司采用,如国内的新浪、搜狐、网易等。从一定程度上来讲,Nginx在未来大有取代Apache的趋势。
2.3.5微信公众平台
微信公众平台是腾讯于面向企业、媒体等用户推出的订阅服务。在此平台下,开发人员可接入个人的服务器URL以及Token令牌,开发属于自己的微信公众号,可通过微信公众平台申请订阅号、企业号及服务号,还可通过调用接口实现自定义菜单,群发消息、主动推送、被动回复等。
3 系统实现
本节将详细介绍WiFi认证服务器各模块实现过程,包括WiFi认证API设计(对接路由端)、WiFi认证管理平台、微信公众号、数据库设计。
3.1 管理平台设计
管理平台前端由开源框架BootStrap实现,后端基于ThinkPHP框架实现业务逻辑。管理平台包含管理员和商家两种权限。
管理员权限主要针对平台内商家进行统一管理,主要操作模块包括:商家管理模块、路由器管理模块、活动管理模块、认证模板管理模块、公告管理模块。
管理员在登录页面输入个人的账号密码后,前台Jquery程序请求后端Login接口,进行数据校验,在数据无效的情况下提示账号密码错误,有效则存Session,便于后期对商家操作行为进行统一跟踪。
活动模块主要用于管理员对所有商家上传的每日活动进行统计,并且通过公众号进行推送。管理员在筛选具体日期后,即可查看当日所有店铺上传的活动信息,进行统计后,进入微信公众平台,将当日所有店铺的活动内容信息复制到微信公众号群发功能的对应位置,选择群发功能,即可将所有活动信息推送给微信粉丝用户。
路由器按管理模块主要实现对路由器的使用情况及在线用户数量进行统计和管理,此模块显示当前在线用户数量,路由器的负载状况、启动时间、WiFiDog启动时间等信息,统计数据通过图表的方式进行展示。
商家权限主要通过平台发布店铺最新活动,如周年庆活动,开业酬宾活动等,由管理员进行统计后通过微信公众号推送给用户粉丝。
3.2 WiFi认证服务端API设计
WiFi认证服务端API主要包含login、Auth、Portal、Ping几个模块。
(1)login登录模块
Login模块主要接收路由器网关上传的Http请求,以及向未认证用户展示登录页,协助用户实现认证功能。在用户输入凭证的前提下,在后台验证用户凭证的有效性,在凭证有效的情况下,返回auth以及加密的Token至网关。
(2)Aurh验证模块
Auth模块主要实现服务器对网关上传Token的验证操作,此模块不会返回页面给用户。
(3)Portal放行模块
网关在得到Auth:1的标识后,对用户进行放行操作,用户被重定向到Portal模块。此模块返回一个Portal页面给用户,表示用户认证成功,用户在Portal页面停留几秒后,自动跳转到百度首页,此时用户即可正常上网。
(4)Ping心跳模块
Ping模块主要实现WiFiDog心跳数据的接收,WiFiDog服务在启动后,每分钟向认证服务器的ping模块发送一条心跳信息。
3.3 数据库设计
本次设计采用的数据库为MySQL.它是目前主流的数据库管理系统之一[3],凭借其强大的功能,较快的响应速度和开放源代码等特点,得到广泛的应用。
3.3.1商家管理平台数据表设计
(1)staff_info
该表存储登录管理平台用户的账户密码等数据。
(2)busin_info
该表存储商铺的名称,联系电话,所在楼层及位置,类型,详细描述等。
(3)busin_active
该表存储各商铺在平台发布的商铺活动信息。
3.3.2认证API数据表设计
(1)api_login
此表用于接收认证API中Login模块写入的数据,包含用户设备的mac,ip地址等。
(2)api_auth
此表用于接收认证API中Auth模块写入的数据,即网关向认证服务器验证Token的有效性。
(3)api_portal
此表用于接收认证API中Portal模块写入的数据,即用户在通过验证后,重定向到的Portal页面。
(4)api_status
此表用于接收认证API中Ping模块写入的数据,即网关定时向认证服务器汇报路由器的状态信息。
3.4 微信公众号开发
首先在微信公众平台进行注册,绑定服务器入口地址及token令牌,用户通过微信认证的方式,在关注公众号后让其免费使用无线WiFi,便于后期进行活动推送。
3.4.1关注/取消关注事件
用户在触发该事件的同时,官方服务器将此消息推送到开发者的URL中。如Event=Subscribe表示用户关注,Event=UnSubscribe表示用户取消关注。
3.4.2被动回复事件
用户向公众号主动发送消息后,公众号根据用户发送的消息内容进行被动回复。
3.4.3主动推送事件
对于普通订阅号,每天只能群发一条信息给粉丝用户。管理员对管理平台内商家上传的店铺最新活动信息进行统计,将其添加到素材,并配好对应的图片,点击群发按钮,即可将素材信息发送给已关注公众号的所有用户粉丝。
4 测试结果
4.1 用户认证测试
用户连接公共WiFi,即可弹出认证页面,选择微信认证的方式,即可弹出商场官方二维码,如图1所示。
图1 微信认证
用户认证成功后,将自动被重定向至百度首页,用户即可正常上网,用户WiFi认证测试功能通过。
4.2 商家管理平台功能测试
管理员/商家首先登录商家管理平台,登录页面如图2所示。
图2 商家管理平台登录页
管理员发布商场活动功能如图3所示。
图3 管理员发布活动
4.3 微信公众号推送测试
管理员可通过微信公众号每日推送商场最新活动信息,如图4所示。
图4 商场活动推送
5 总结
本文提出了一种针对商场环境下如何积累有效客户群的解决方案,详细阐述了通过ThinkPHP框架及微信公众号,Mysql数据库等技术,实现用户从微信认证到免费WiFi使用,最终通过公众号获取各店铺最新活动的整个流程,今后将对系统的功能进一步优化与扩展.
[1]张晓.基于网络安全的WiFi系统身份认证设计研究[J].电子设计工程,2019,27(12):80-83+88.
[2]肖剑伟.基于LNMP平台Moodle课程学习管理系统部署[J].信息与电脑(理论版),2019(08):72-75.
[3]刘恒祥.基于PHP&MySQL的高校招生管理信息系统的开发与设计[J].自动化技术与应用,2021,40(03):176-179.