◆劉子杰
商場環境下WiFi認證服務器設計與實現
◆劉子杰
(四川大學 錦江學院 四川 620860)
針對當前商場環境下無法有效積累客戶群體的問題,本文基于ThinkPHP框架、Mysql數據庫、微信公眾號等技術設計并實現了一套商場環境下WiFi認證系統。著重論述了用戶從微信認證,到正常上網,最終實現數據推送的整個過程。本系統具有功能完善、數據安全、操作便捷等優勢。通過本次設計,商家可有效地積累微信粉絲用戶,定期向粉絲群進行商鋪活動的消息推送,使顧客可以在第一時間內了解商場內各商鋪的最新活動信息,有效地維護商場的客戶群,提高用戶購買力。
WiFi認證;微信公眾平臺;ThinkPHP;Mysql
WiFi是基于ieee802.11標準的無線局域網[1],它在網絡上具有覆蓋面廣、高速率、低功耗等技術優勢。伴隨著網絡的普及,WiFi無論是在核心技術還是影響范圍方面,都進入飛速發展的時代。在各類公共場所,如商場、車站,WiFi的部署為人們的生活都帶來了極大的便利。
WiFi的普及為其商業化帶來了極大的機遇,國內眾多城市提出“無線城市”的發展戰略。與此同時,越來越多的企業逐漸意識到商業WiFi的重要性。商業WiFi是指由商業運營商為企業用戶提供包括軟件、硬件、管理、維護等全方位解決方案。如何將流動顧客轉化為具有購買力的客戶,這一問題受到越來越多商家的重視。針對當前合理的需求,本次設計并實現了一套商城環境下WiFi認證系統,通過微信認證的方式,幫助商家積累粉絲群體,通過微信公眾號向粉絲群進行消息推送,使顧客在第一時間了解商場內各商鋪的最新活動信息,有效地維護商場的客戶群,提高用戶購買力。
針對商場環境下有使用免費WiFi需求的顧客,提供開放WiFi供其免費上網,通過微信認證,強制顧客關注商場微信公眾號后免費上網。對于已認證的顧客,管理員在后臺查看每個用戶的上網統計情況,包括上網時長、使用流量、訪問歷史記錄等信息。針對已關注公眾號的顧客,管理員可通過公眾號每日向粉絲用戶進行商場各店鋪最新活動的推送,提升用戶消費力度。
WiFi認證系統由WiFi認證路由器和WiFi認證服務器兩部分組成。本文主要闡述WiFi認證服務器設計與實現,WiFi認證路由器作為配合使用。
WiFi認證路由器基于OpenWrt操作系統運行,基于WiFidog協議實現,OpenWrt系統對WiFiDog協議具有良好的支持。
WiFi認證服務器基于LNMP架構設計,基于ThinkPHP框架開發。LNMP即Linux+Nginx + MySQL + PHP,LNMP是Linux系統中開發網站的經典組合[2],對于不熟悉環境部署的開發人員來說,可以通過一鍵安裝的方式快速部署服務。
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令牌,開發屬于自己的微信公眾號,可通過微信公眾平臺申請訂閱號、企業號及服務號,還可通過調用接口實現自定義菜單,群發消息、主動推送、被動回復等。
本節將詳細介紹WiFi認證服務器各模塊實現過程,包括WiFi認證API設計(對接路由端)、WiFi認證管理平臺、微信公眾號、數據庫設計。
管理平臺前端由開源框架BootStrap實現,后端基于ThinkPHP框架實現業務邏輯。管理平臺包含管理員和商家兩種權限。
管理員權限主要針對平臺內商家進行統一管理,主要操作模塊包括:商家管理模塊、路由器管理模塊、活動管理模塊、認證模板管理模塊、公告管理模塊。
管理員在登錄頁面輸入個人的賬號密碼后,前臺Jquery程序請求后端Login接口,進行數據校驗,在數據無效的情況下提示賬號密碼錯誤,有效則存Session,便于后期對商家操作行為進行統一跟蹤。
活動模塊主要用于管理員對所有商家上傳的每日活動進行統計,并且通過公眾號進行推送。管理員在篩選具體日期后,即可查看當日所有店鋪上傳的活動信息,進行統計后,進入微信公眾平臺,將當日所有店鋪的活動內容信息復制到微信公眾號群發功能的對應位置,選擇群發功能,即可將所有活動信息推送給微信粉絲用戶。
路由器按管理模塊主要實現對路由器的使用情況及在線用戶數量進行統計和管理,此模塊顯示當前在線用戶數量,路由器的負載狀況、啟動時間、WiFiDog啟動時間等信息,統計數據通過圖表的方式進行展示。
商家權限主要通過平臺發布店鋪最新活動,如周年慶活動,開業酬賓活動等,由管理員進行統計后通過微信公眾號推送給用戶粉絲。
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模塊發送一條心跳信息。
本次設計采用的數據庫為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模塊寫入的數據,即網關定時向認證服務器匯報路由器的狀態信息。
首先在微信公眾平臺進行注冊,綁定服務器入口地址及token令牌,用戶通過微信認證的方式,在關注公眾號后讓其免費使用無線WiFi,便于后期進行活動推送。
3.4.1關注/取消關注事件
用戶在觸發該事件的同時,官方服務器將此消息推送到開發者的URL中。如Event=Subscribe表示用戶關注,Event=UnSubscribe表示用戶取消關注。
3.4.2被動回復事件
用戶向公眾號主動發送消息后,公眾號根據用戶發送的消息內容進行被動回復。
3.4.3主動推送事件
對于普通訂閱號,每天只能群發一條信息給粉絲用戶。管理員對管理平臺內商家上傳的店鋪最新活動信息進行統計,將其添加到素材,并配好對應的圖片,點擊群發按鈕,即可將素材信息發送給已關注公眾號的所有用戶粉絲。
用戶連接公共WiFi,即可彈出認證頁面,選擇微信認證的方式,即可彈出商場官方二維碼,如圖1所示。

圖1 微信認證
用戶認證成功后,將自動被重定向至百度首頁,用戶即可正常上網,用戶WiFi認證測試功能通過。
管理員/商家首先登錄商家管理平臺,登錄頁面如圖2所示。

圖2 商家管理平臺登錄頁
管理員發布商場活動功能如圖3所示。

圖3 管理員發布活動
管理員可通過微信公眾號每日推送商場最新活動信息,如圖4所示。

圖4 商場活動推送
本文提出了一種針對商場環境下如何積累有效客戶群的解決方案,詳細闡述了通過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.