APP下载

基于WeiPHP的校园微信服务系统的设计与实现

2017-02-22张玲华聂玉涵

计算机技术与发展 2017年1期
关键词:账号公众模块

杨 泽,张玲华,王 松,聂玉涵

(1.南京邮电大学 物联网学院,江苏 南京 210023;2.南京邮电大学 通信与信息工程学院,江苏 南京 210023)

基于WeiPHP的校园微信服务系统的设计与实现

杨 泽1,张玲华1,王 松2,聂玉涵1

(1.南京邮电大学 物联网学院,江苏 南京 210023;2.南京邮电大学 通信与信息工程学院,江苏 南京 210023)

随着移动互联网的迅速崛起,传统的校园信息服务亟需适应时代发展和移动互联网结合。介绍了基于WeiPHP开源微信开发框架,实现了以微信公众号为入口,将公众号与校园信息系统进行无缝对接,实现了校园信息的查询、校园二手物品交易、捐赠等功能。对系统功能设计、总体框架设计以及数据库结构设计进行了阐述,然后以数据爬虫获取校园官方系统用户数据和用户发布二手商品两个关键模块为例详细描述了系统的技术解决方案。系统功能和性能测试表明:该系统具备良好的用户交互界面,能够流畅稳定运行,而且对服务器性能要求较低。该系统提供的移动服务提高了校园服务的质量,为校园师生获得更加全面实用的校园服务提供了便利。

WeiPHP;微信公众号;数据爬虫;校园移动信息平台;校园二手商城

0 引 言

传统的校园信息服务通过网站、专用终端向师生提供各种信息查询、校园卡充值消费、水电费缴纳等功能,为师生带来了便利。但在移动互联网时代,人们更习惯于通过移动设备、智能手机、平板电脑来获取信息而非传统浏览器[1],对于在移动智能设备上交互性差、用户体验不佳的传统校园信息系统来说显然无法满足人们的日常需求,向移动互联网转化已经成为必然趋势。

除了对传统校园信息服务升级之外,校园内的二手物品交易、捐赠需求同样值得关注。二手物品的交易和捐赠能够让闲置物品得到充分利用,也能给师生带来实惠。

对于校园信息向移动互联网的转型,目前有不少模式,其中以Android和IOS平台的APP为主,但是校园APP需要用户主动安装、用户体验差、僵尸用户居多[2]。

微信是新一代移动即时通讯产品,据最新数据统计显示微信每月活跃用户已达到5.49亿,用户覆盖200多个国家、超过20种语言。此外,各品牌的微信公众账号总数已经超过800万个,移动应用对接数量超过85 000个[3]。而微信公众平台是腾讯公司在微信的基础上新增的功能模块,个人和企业通过此平台都可以打造一个属于自己的平台。其推出的理念是:再小的个体也有自己的品牌。任何机构和个体都可以登录微信公众平台免费申请注册并拥有自己的公众账号。这使得各个自媒体如雨后春笋般出现,传统媒体也逐步开设公众账号发布内容,向用户推送精选内容[2]。对于校园信息平台而言,微信庞大的用户群体、宣传订阅优势、移动便捷的特点是其发展自身信息服务的不二选择。

目前多数微信公众号运营依赖于腾讯官方微信公众平台,该平台可以提供基础的消息群发、自动回复、自定义菜单、消息管理、用户管理等基础功能以及公众号开放API。但在微信公众号的运营中要实现特色服务,只能根据公众号开放API获取公众号的消息接口等资源,设计开发特定的功能系统实现特定的服务(如文中介绍的校园信息服务功能)。这对很多不熟悉Web开发的运营者造成了一定的困难。一款免费开源、简单、拓展性强的微信公众平台开发框架——WeiPHP的出现,有效解决了上述问题,并且提供了更多丰富的基础功能、插件开发管理系统、微信接口消息交互系统、后台建模系统等。

文中提出了一种基于WeiPHP框架,结合PHP Web、MVC(Model View Controller)设计模式[4]、数据爬虫技术的校园微信服务系统。该系统提供了校园信息服务模块、校园二手商城模块、账号管理模块,其实用全面的功能以及良好的界面设计,为用户带来了更多实用的服务。

1 系统总体设计

1.1 功能设计

文中所设计的系统需要满足的要求是以微信公众号为入口,采用Oauth2.0网页授权认证,允许用户用微信账号登陆该系统,并且绑定学校官方各系统账号,以便获取用户服务信息。根据用户提供的校园官方系统账号和密码,通过数据爬虫模拟登陆校园官方系统抓取所需信息。由于传统的校园官方服务信息系统的响应时间较长,因此需要将抓取的信息经过信息过滤、提取、格式化后保存在本地数据库中,以便提高用户再次访问时的数据加载速度。

系统包含三大模块,分别是校园信息模块、校园二手商城模块、账号管理模块。

(1)校园信息模块。该模块包含图书馆信息、校园卡信息、晨跑信息。图书馆信息可以向用户提供当前借阅书籍查询、超期提醒、历史借阅查询、借阅历史分析等功能。校园卡信息主要为用户提供校园卡消费信息查询,并对消费信息进行整合分析。晨跑信息主要针对晨跑打卡计数查询,并且根据用户打卡数据列出排行榜。

(2)校园二手商城模块。分为前台(普通用户)和后台管理(管理员)两部分。系统的前台应该满足操作简便、移动交互性好、简洁等要求。详细功能如表1所示。

表1 二手商城前台功能表

系统的后台(管理员)应该满足易操作、功能丰富实用、自动化管理等要求。详细功能如表2所示。

表2 二手商城后台管理功能

(3)账号管理模块。该模块中,用户通过微信公众号进行Oauth2.0微信账号授权,然后绑定用户的校园信息系统账号信息,通过数据爬虫验证账号信息后对用户信息初始化也就是将数据保存到本地数据库中。如果验证失败则提醒用户重新绑定账号。除了绑定账号外,同样还有解除绑定,以及修改账号信息等功能。

1.2 框架结构设计

在微信公众平台的开发者模式下,微信公众平台提供了一个通用的数据交换和验证规范接口,平台所有者只需按照这个规范编写对接程序,就可以接收普通用户通过微信服务器转发给公众平台的文本、照片和地理信息内容,并根据后台设定处理用户发来的信息,再将处理结果根据对接规范返回给微信服务器,并由其转发回用户端。

文中描述的系统沿用WeiPHP框架的MVC模式设计各个独立的功能模块,同时各个模块调用WeiPHP的底层类库[5],例如微信消息接口类、数据缓冲机制类、前端模板类等等,以实现稳定、性能良好的系统。

1.3 数据库结构设计

基于MySQL体积小、速度快、免费等特性[6],该系统采用MySQL是比较合适的解决方案。针对通过数据爬虫获取师生在学校官方信息系统的数据,然后直接保存在本地数据库的解决方案[7],数据库为各个功能模块设计了相互关联的数据表,数据表之间的关系如图1所示。

图1 校园信息系统数据ER图

2 系统关键技术实现

2.1 数据爬虫

通常情况下,为了自动获取现有系统的用户信息,主要根据官方系统的开放API(如微信公众号开放API),开发者可以通过该接口发送POST请求并附带相关密钥就可以获取用户的信息[8]。但是现有的校园系统大多没有相关开放API,因此只能通过数据爬虫自动识别验证码模拟登陆系统,从而获取用户信息。但是数据爬虫的识别速度以及准确度直接关系到系统的响应时间[9]。为了提高系统整体体验,采取将用户数据保存进本地数据库的解决方案,以便提高用户的访问速度,同时系统后台自动定时更新用户数据[10]。

数据爬虫首先初始化VerifyCode(验证码识别类),请求官方系统登陆入口的验证码图片,并且保存在本地缓存文件。然后调用VerifyCode类中的Recognize_Image函数,把缓存图片路径作为参数。Recognize_Image自动识别验证码图片函数的关键代码如下:

list($width,$height,$type,$attr)=getimagesize($image);//获取图片参数

$img=imagecreatefromgif($image);//从gif文件或图片新建图片

$img=$this->Binaryzation($img,$width,$height);//图片二进制化

$img=$this->Erosion($img,$width,$height);//图片去噪

$split=$this->x_cWave($img,$width,$height);

sort($split);//对$split中元素按字母排列

for($i=0;$i<4;$i++)

{

$chars[$i]=$this->Thinest($img,$split[$i],$split[$i+1],$height);//旋转图片找到最薄位置 $chars[$i]=$this->Binaryzation2($chars[$i],imagesx($chars[$i]),imagesy($chars[$i]));//图片二值化

$chars[$i]= $this->Trim($chars[$i]);//过滤空白字符

}

2.2 用户发布商品

对于商城系统来说,用户体验很大程度上取决于商城系统界面以及交互设计,良好的设计能够让商品更加具备吸引力。而二手商城的商品全部来自用户发布的二手物品,为了达到良好的商品展示效果,必须规范发布规则。比如,商品详情不能少于20个字,商品名称不能多于15个字,等等。除了这些外,最重要的是商品图片的处理。商品图片大多来自用户拍摄的实物图片,图片的质量参差不齐。为了达到良好的显示效果,在用户上传商品时实时预览删除添加图片,然后对图片进行裁剪缩略处理生成缩略图片,以满足商品展示的需要[11]。

商品相册采用JQuery的AjaxFileUpload异步上传文件JS插件上传多张商品图片并实现商品图片同步缩放预览。AjaxFileUpload上传图片格式如下所示:

$.ajaxFileUpload({

url: 'ws_image.php', //用于文件上传的服务器端请求地址

secureuri: false, //是否需要安全协议,一般设置为false

fileElementId: 'upload_goods_img', //文件上传域的ID

dataType: 'json', //返回值类型,一般设置为json

success: function(data, status){……}//服务器返回数据解析

})

创建ws_image.php文件接收图片文件并且保存在temp临时文件夹下,返回JSON格式的数据,其中包括图片路径以上传成功字符。当用户上传所有商品图片后,点击发布商品调用release.js文件中的release函数。该函数首先对用户填写的商品信息格式进行检查,当检查无误后,通过POST提交至后台控制文件goods.php。其数据上传格式为:

$.post('goods.php?act=insert_goods',{goods_name:name,goods_brief:desc,goods_price:price,exchange_place:trade_place,cat_id:goods_class_id,goods_image:images.join(','),user_phone:tel}

当goods.php收到POST请求后,对用户POST中的数据再次进行格式过滤,防止SQL注入网络攻击以提高安全性[12]。调用自建的image类的make_thumb方法对商品相册进行缩略化生成缩略图片,并保存在以日期和图片类型生成的目录下,为防止图片重名采用时间随机数自动生成图片名称。分别保存商品信息、商品分类、商品相册信息到数据库后,用户发布商品成功。如果处理过程中出现错误,中断处理并且提示用户。

3 系统测试

系统测试环境为阿里云服务器,Ubuntu 12.04 64位系统,配置为CPU:1核,内存:1 024 MB,软件环境为:PHP5.4、Apache2.4.9、MySQL5.5.37、vsFTPd2.3.5。限于篇幅,文中仅展示了系统部分功能测试截图(如图2所示)。从中可以看出,该系统具有良好的交互界面、易操作性。

图2 校园信息系统部分页面

性能测试上,采用WebPageTest测试系统并和当下大型的电商网站京东进行对比。WebPageTest原本是由AOL开发内部使用的工具,后来在Google Code上开源,是一款非常优秀的网页前端性能测试工具[13]。先后对文中所述系统和京东商城进行测试,获取的部分数据分别如图3和图4所示。

从两张参数图片可以看出,文中系统在多数页面测试数据和京东相当,且有不少数据表明网页加载速度稍快于京东。可见系统能够流畅运行,为用户提供相当好的使用体验。

图3 文中系统测试数据

图4 京东商城测试数据

4 结束语

在描述基于WeiPHP的校园微信服务系统的功能结构、数据库结构设计、业务逻辑等基础上,利用MVC模式以及PHP+HTML+JavaScript+CSS+JQuery等技术完成了系统的开发,重点介绍了校园信息系统的数据爬虫和二手商城的用户商品发布两个关键模块的技术解决方案。达到了以微信公众号为入口,搭建校园微信服务平台的目标,实现了系统的稳定性、可拓展性、易操作、用户移动体验良好等技术指标[14]。该系统的设计开发一定程度上弥补了校园服务在移动应用上的空白,触手可及的移动服务提高了校园服务的质量,二手交易系统使闲置物品得到了二次利用,一定程度上减少了环境污染,同时为用户带了实惠。

[1] 闫东旭,张文博,杨 燕,等.支持个性化服务的移动门户系统的设计与开发[J].计算机应用与软件,2015,32(1):24-29.

[2] 孙 红.基于微信的校园信息云平台建设研究[J].计算机光盘软件与应用,2014,17(11):225-226.

[3] 孔 云,廖 寅,资 芸,等.基于微信公众账号的图书馆移动信息服务研究[J].情报杂志,2013,32(9):167-170.

[4] 滕 文.基于MVC模式的PHP程序开发[J].科技视界,2012(28):262.

[5] 王俊芳,李隐峰,王 池,等.基于MVC模式的ThinkPHP框架研究[J].电子科技,2014,27(4):151-153.

[6] 张 雯.基于ECSHOP网上商店的实现[D].上海:华东师范大学,2011.

[7] 张耕畅,黄晓禹,卢世尧,等.基于云计算的大学生兴趣社交平台[J].仲恺农业工程学院学报,2013,26(4):38-42.

[8] Sa'adah U,Akhmad J,Hisyam M.Implementing Singleton method in design of MVC-based PHP framework[C]//Proceeding of IES.Surabaya:[s.n.],2015:212-217.

[9] 徐建华.基于ECShop系统的电子商务网站设计与实现[J].软件导刊,2014,13(1):104-106.

[10] 张雪洁,王志坚,张伟建.基于混合协同过滤的个性化Web服务推荐[J].计算机科学与探索,2015,9(5):565-574.

[11] Amza C,Chanda A,Cox A L,et al.Specification and implementation of dynamic Web site benchmarks[C]//IEEE international workshop on workload characterization.[s.l.]:IEEE,2002:3-13.

[12] Gupta A,Anand P.Focused web crawlers and its approaches[C]//International conference on futuristic trends on computational analysis and knowledge management.Noida:[s.n.],2015:619-622.

[13] Quan Q,Ma S.A modular crawler-driven robot:mechanical design and preliminary experiments[C]//2009 IEEE/RSJ international conference on intelligent robots and systems.[s.l.]:IEEE,2009:639-644.

[14] Li Yuanyuan,Xiao Peng,Deng Wu.The method to test Linux software performance[C]//2010 international conference on computer and communication technologies in agriculture engineering.Chengdu:[s.n.],2010:420-423.

Design and Implementation of Campus WeChat Service System Based on WeiPHP

YANG Ze1,ZHANG Ling-hua1,WANG Song2,NIE Yu-han1

(1.School of Internet of Things,Nanjing University of Posts and Telecommunications,Nanjing 210023,China; 2.School of Telecommunications and Information Engineering,Nanjing University of Posts and Telecommunications,Nanjing 210023,China)

With the rapid rise of mobile Internet,traditional campus information services need to adapt to the times and the development of mobile Internet combined.The open source WeChat development framework based on WeiPHP is introduced,achieving a number of WeChat public entrance,seamless covering of the number of public and campus information system,completion of the campus information inquiry,campus second-hand goods transactions,donations and other functions.The design of system function,database and the overall framework is discussed,and then a detailed description of technical solutions of the system is conducted by two modules as examples like the user data from official campus system obtained by data reptile and second-hand goods of users.System functionality and performance tests show the system has a good user interface that allows its smooth and stable operation,and server performance requirements are lower.The mobile services of the systems can be able to enhance the quality of campus services,and it is convenient for teachers and students to acquire the more practical and comprehensive campus services.

WeiPHP;WeChat public number;web crawler;campus mobile information platform;used campus mall

2016-03-03

2016-06-09

时间:2016-11-22

江苏省大学生创新创业计划省级重点项目(SZDG2015024)

杨 泽(1994-),男,研究方向为Web应用技术、网络工程技术;张玲华,教授,博士生导师,研究方向为信号与信息处理、电子与通信工程。

http://www.cnki.net/kcms/detail/61.1450.TP.20161122.1228.044.html

TP311.1

A

1673-629X(2017)01-0195-05

10.3969/j.issn.1673-629X.2017.01.044

猜你喜欢

账号公众模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
彤彤的聊天账号
公众号3月热榜
施诈计骗走游戏账号
公众号9月热榜
公众号8月热榜
公众号5月热榜
Google Play游戏取消账号绑定没有Google账号也能玩
集成水空中冷器的进气模块