(4)课程表查询模块:在课程表查询功能中,用户只需要回复所要查询的专业班级,由程序去判断提交的字符是否合法,如果是正常的查询请求,则去数据库中查找对应专业班级的课程信息,回复给用户,默认将数字1~5分别对应为自己周一到周五的课程信息,学生只需要回复1~5数字即可快速查询对应的课程信息。此外课程表查询模块中,最关键的是课程信息的录入。高校每学期课程安排信息千余条,学校发布课程信息目前主要通过Excel表的形式发布。要想快速有效地更新课程表数据,必须使用程序去直接读取Excel表中的内容。使用PHP程序读取Excel时可以使用PHPReader类库,也可以使用PHPExcle类库,相比之下前者使用简单,容易上手,但是只能读取Excle,后者使用比较复杂,但是功能强大,可以对Excle表格进行查询、修改、调整格式等操作。因为我们只需要对课程安排的表格进行读取,并存入到数据库,因此使用PHPReader类库便可以满足我们的需求。读取Excle表格文件因为时间较长,而PHP语言默认30秒钟执行不完会超时报错,并停止执行,因此需要先对程序进行超时设定,然后导入该类库的核心文件并初始化即可使用。需要注意的是,PHPReader会将整个表格的数据以一个对象的形式存储在内存中,因此,该程序运行时对内存占用比较多,容易出现内存不足的情况,不能读取数据量较大的文件。
(5)成绩查询模块:在测试平台中,默认定义数字8和9分别对应最新的成绩查询功能和往年的成绩查询。当接收到数字8、9或者“查成绩”字样时,首先根据用户的OpenID在用户表中查找该OpenID对应的学生学号,然后根据学号去成绩表中查找对应的成绩信息,通过消息返回即可。
(6)排名查询模块:通过编程,将已有的成绩信息生成排名数据,存在排名表中,当收到排名的字样时,根据OpenID查找对应的学号,即可根据学号查找到对应的排名信息。
(7)四六级成绩查询模块:四六级成绩查询功能的实现主要以模拟用户登录学信网,并提交相应的数据来获取网页返回结果,然后从返回的内容中过滤出有用的数据返回。
二、服务器与微信平台对接
微信公众平台的对接规范是基于 HTTP 协议[6],通过“HTTP GET”和“HTTP POST”方法来与接口服务器交互数据。为了安全性,对接首先要进行URL和Token验证,其中URL是用来接收微信服务器数据的接口URL。Token可任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。提交信息后,微信服务器通过GET请求到填写的URL上,GET请求同时携带四个参数,如表1所示。
服务器接收到signature参数后对请求进行校验,校验流程如下:
(1)用token、timestamp、nonce三个参数按照字典序排序;
(2)将三个参数字符串拼接成一个字符串后进行sha1加密;
(3)用加密后的字符串与signature进行对比,确认该请求是否来源于微信服务器。
若验证通过,确认此次请求是来自微信官方服务器,则原样返回echostr内容,对接生效,开发者成功,否则对接失败。对接成功后此部分验证内容既可以删除也可注销。
三、数据安全策略
学生数据作为学习的核心数据至关重要,因此在数据安全方面的策略必不可少。
1.服务器平台策略
从安全角度考虑,服务器平台选用了较为安全的百度云Linux服务器平台,对文件目录读写权限严格控制。在端口控制上,禁用了除80以外的其他全部端口。数据库中单独设置用户表可写,其余设置只读权限。
2.网页平台策略
一般情况,在网页平台中,对用户数据进行严格过滤是比较有效的Web安全策略[7],在此应用中,除了限制浏览器访问权限,以及对用户提交的数据过滤以外,基于微信平台还有特殊的策略,因为微信平台的特殊性,在链接中会携带有用户唯一标识的openid,因此,链接也具有一定的隐私性,倘若用户将链接分享,会对用户隐私造成泄漏,因此,在平台中通过js程序禁用了关键页面的链接查看和分享功能。
四、测试效果的分析
测试平台最初功能为学生课程表查询,之后逐渐加入学年成绩查询,四六级成绩查询等功能,自投入测试以来,广受学生好评,一些为实际的数据分析。
1.用户数分析
平台自投入测试以来,随着功能的增强和完善,用户数不断增长,目前共有一万两千余用户,某校目前共有全日制在校生17000余人,占全校总人数的70%,近乎覆盖全校的微信用户,主要服务于在校本科生。
图2 累积关注人数
随着时间的推移和功能的不断完善,用户增长已经近乎饱和,如图2所示,从增长曲线中可以看出自从推出了考试安排查询功能、考试成绩查询功能、新学期课程表安排功能,用户由四千突破到一万。由此可见学生对学习的高度重视和对微信平台的肯定。
2.消息数分析
成绩查询功能上线后,在期末考试查成绩期间,日均消息量达到3万左右,为学校教务处服务器分担了大量的流量。同时,根据平时的数据量可以看到,每一次新功能的上线都会引起大量用户的关注,特别是用户比较关心的成绩,课程等数据。
由于微信公众平台的消息回复主要以文字为主,相比网页访问,减少了大量的图片,因此对服务器的要求不是很高。完全能够支持大量用户的并发访问。如图3所示,在2014年1月6日附近,为学习成绩发布时期,这个时间内,用户消息量达到峰值,消息请求量达到3万以上,而接口调用并没有明显的失败迹象。如图4所示为消息发送次数分布。从这方面看,利用微信公众平台不仅能够更加高效地将信息传达给学生,对服务器等硬件设备资源也是一个极大的节约。
五、结束语
微信作为一种新兴的即时通讯工具,具有无可限量的发展前景。本文将微信平台与教务系统的信息发布系统相结合,将学生的信息在微信上发布,方便学生随时随地查询信息,具有很好的实用性。
参考文献:
[1]夏凌云,韩立峰,王长庆.利用微信平台打造校园信息移动发布平台[J].信息技术,2014(2):183-190.
[2]陆钢,朱培军,李慧云等.智能终端跨平台应用开发技术研究[J].电信科学,2012,28(5):14 -17.
[3]微信[EB/OL]. http://baike.so.com/doc/5329667.html ,2014-07-14.
[4]微信公众平台[EB/OL]. http://baike.so.com/doc/5335445.html ,2014-07-14.
[5]百度云服务[EB/OL]. http://developer.baidu.com/cloud/ .
[6]RFC 2616 Hypertext Transfer Protocol———HTTP/1.1[S].
[7]王继克.浅议高校图书馆Web安全机制和防范措施[J].中国教育信息化,2007(5):54-57.
欢迎光临 二维码.cn/搜一搜.cn/才能 (http://n.xn--g4tw0k.cn/hxcg/) | Powered by Discuz! X3.2 |