第16卷第9兑H 20l7年9月 Vl01.16NO.9 Sep.201 7 基于微信公众号的教务信息查询系统设计与实现 刘 磊,陈羽云,林洁鑫 (广东开放大学(广东理工职业学院),广东广州510091) 摘 要:基于移动社交平台微信和国内领先的云平台新浪云(SAE),开发大学生用户覆盖率很高的教务信息查询系 统,以微信公众号为系统入口,以HTML5开发适应移动端的响应式页面,以PHP十MYSQL为服务端开发框架,以 新浪SAE为部署平台。系统具有随时随地使用、前端轻量级、后端灵活、用户体验良好的特点。 关键词:微信公众号;教务系统;云平台 DOI:10.11907/rjdk.171098 中图分类号:TP319 文献标识码:A 文章编号:1672—7800(2017)009—0111-03 The Design and Implementation of Educational InfOrmation Query System Based on WeChat Public Number LIU Lei,CHEN Yu—yun.LIN Jie—xin (The Open University of Guangdong(Guangdong Polytechnic Institute),Guangzhou 5 1 0000,China) Abstract:This paper describes the comprehensive use of the new WeChat mobile social networking platform and leading cloud platform Sina cloud(SAE),the development of college students’coverage 0f useys management information system is very high,with WeChat as the public entrance to adapt tO the development of HTML5 system,the mobile terminal of the response page,with PHP+MYSQL as the server framework with sina SAE,deployment platform,system has used,front and rear whenever and wherever possible the lightweight flexible,good user experience features. Key Words:WeChat public number;Educational administration system;cloud platform 0 引言 高校教务信息的发布是学校重要管理活动之一,如何 提高信息发布的精确性、及时性和有效性,提高学生对教 1微信公众号优势 微信公众号是在微信基础平台上扩展的功能模块,通 过这一平台,可以方便地与特定群体实现文字、图片、语音 务管理的粘连度,一直广受关注。随着IT技术的更新迭 代,移动社交逐渐覆盖了人们的Et常生活,传统的服务端 计算也搬到了易扩展的云平台上,这些技术的创新促使管 理系统的开发走上了一个新的台阶。本文基于最新的移 动社交平台微信和国内最好的PaaS云计算平台新浪云 (sAE),开发一款可以在移动端设备上使用的高校教务信 息查询系统,使用微信公众号作为入口,实现用户绑定、成 绩查询、课表查询、自习教室查询、教务通知查询、考试安 排查询等功能。 的全方位沟通、互动。微信公众平台的传播方式是一对多 的传播,直接将消息推送到手机,因此达到率和被观看率 几乎是100%。微信公众平台相比于其它网络平台在传 播方面具有明显优势:①微信是天然的用户接口,只要登 陆微信,系统即可获取用户位置、时间,并且支持图片、二 维码、NFC等富媒体,做到随时随地交互,并能对接任何系 统,信息传达效率高;②轻量级前端使用HTML5技术带来 良好用户体验,重后端保证系统运行稳定;③用户自由度较 高,用户订阅、推送功能自主选择;④微信用户群数以亿计, 公众号特别适于社会组织向用户提供业务服务能力 。 收稿日期:2017—04—07 基金项目:广东开放大学科研项目(JG2Ol334,1427);广东理工职业学院大学生科技创新培育项目(O6) 作者简介:刘磊(1984一),男,山东菏泽人,硕士,广东开放大学(广东理工职业学院)讲师,研究方向为项目管理、Web开发、数据库技 术;陈羽云(1994一),男,广东湛江人,广东开放大学(广东理工职业学院)学生,研究方向为web开发、数据库技术;林洁鑫 (1994一),男,广东汕头人,广东开放大学(广东理工职业学院)学生,研究方向为Web开发、数据库技术。 ・ 112・ 软件导刊 2O17年 本系统主要为在校大学生方便及时查询教务信息服 2 总体设计 本系统使用微信公众号作为用户操作入口,通过公众 号界面的菜单跳转或指令交互,使用HTMI 5开发响应式 务,因此用户群是在校大学生。学生用户首先关注微信公 众号,进入公众号界面,输人学号绑定,绑定成功后就可以 使用课表查询、成绩查询等功能,点击相应的查询按钮,系 统会根据学号自动返回相关信息。用户业务流程设计如 页面展现给用户,微信公众号和HTML5页面可以归为客 户端;使用PHP语言、MYSQL数据库开发教务信息查询 系统,部署在新浪SAE平台,这是服务端。客户端使用微 信公众号人口具有极强的方便性和交互性,HTML5页面 具有轻量级、表现力丰富的特点,服务端运行在SAE平 台,保证了系统的稳定性和扩展性 ]。 (1)客户端。客户端使用微信公众平台提供交互界 面,通过输人指令、跳转菜单与服务端完成交互。用户通 过关注公众号进入服务窗口,输人学号完成绑定,输入相 应指令发送到服务端,解析服务端返回消息展现给用户。 (2)服务端。使用PHP4-MYSQL开发服务端教务信 息查询系统,实现学号绑定、成绩查询、课表查询、考试安 排查询等功能。教务系统运行在新浪云平台(SAE),通过 接受指令、返回结果与客户端实现交互。指令交互的过程 是:服务端根据接受的指令调用相应的功能模块,将结果 封装成XML消息,返回给微信公众平台加以展示;菜单 跳转则是通过微信内置的浏览器直接展示HTMI 5页面, 由页面与后端业务逻辑模块交互。系统总体设计如图1 所示。 微信公众号入口 客户端(微信公众号) HTML5 圈圆圆匦 端(新浪SAE) 图1 系统总体设计 3功能与流程设计 本系统通过微信公众号向用户提供学号绑定、课表查 询、公选课查询、教务通知查询、成绩查询、考试安排查询 等功能,用户关注公众号后,可以方便地在微信界面使用 以上功能,达到随时随地随身使用教务信息查询系统的目 的。系统功能结构设计如图2所示。 教务信息查询系统 微 信 公 众 号 I】薹I lI囊fj藿I耄 考 试 安 排 查 询 图2系统功能结构设计 图3所示。 图3用户业务流程设计 4 关键技术 4.1微信公众平台接入 开发者接人微信公众平台,需要3步: (1)填写服务器配置。登录微信公众平台官网后,在 公众平台后台管理页面修改配置,填写服务器地址 (URL)、Token和EncodingAESKey。其中,URI 是开发 者用来接收微信消息和事件的接口地址;Token可以任意 填写,用作生成签名,该Token值会和接口URI 中包含 的Token进行比对,从而验证安全性;EncodingAESKey 由开发者手动填写或随机生成,用作消息体加解密密钥。 (2)验证服务器地址的有效性。开发者提交信息后, 微信服务器将发送GET请求到填写的服务器地址URI 上,GET请求携带4个参数:①Signature:微信加密签名, 结合开发者填写的Token参数和请求中的Timestamp参 数、Nonce参数;②Timestamp:时间戳;③Nonce:随机数; ④Echostr:随机字符串。 开发者通过检验Signature对请求进行校验,若确认 此次GET请求来自微信服务器,则原样返回Echostr参 数内容,表示接人生效,否则接入失败。 检验Signature流程如下:①将Token、Timestamp、 Nonce 3个参数进行字典序排序;②将3个参数字符串拼 接成一个字符串进行shal加密;③将加密后的字符串与 Signature对比,通过则标识该请求来源于微信。 检验Signature的PHP示例代码如下: private function checkSignature() { ¥signature=¥GETE”signature”]; ¥timestamp=¥GETE”timestamp”]; ¥nonce一¥GETE”nonce”]; ¥token=TOKEN: ¥tmpArr—array(¥token,¥timestamp,¥nonce); sort(¥tmpArr,SORTSTRING); ¥tmpStr=implode(¥tmpArr); ¥tmpStr=shal(¥tmpStr); if(¥tmpStr=一¥signature){ retUrn true; 第9期 ,else' 刘磊,陈羽云,林洁鑫:基于微信公众号的教务信息查询系统设计与实现 ¥row—mysqlfetcharray(¥rs); ——・113・ return false; 参数:¥rs为执行select查询语句返回的结果集。 返回值:¥rOW为从结果集取得一行返回的数组,可 } } 以用¥rowE‘字段名’]访问指定列的值;如果没有数据则 返回false。 (3)依据接口文档实现业务逻辑。验证URI 有效性 成功后即可开发业务逻辑,用户每次向公众号发送消息或 者点击自定义菜单,开发者填写的服务器配置URL将得 到微信服务器推送过来的消息和事件,开发者就可以编写 (5)关闭与数据库服务器的连接。 mysqlclose() —如果不手动关闭数据库连接,PHP脚本在执行结束 相应的业务逻辑进行响应,例如回复消息、返回页面等。 4.2 PHP操作MYSQL数据库 时也会自动关闭数据库连接。 PHP内置了操作MYSQL数据库的函数,这些函数 以mysql开头,使用这些函数可以非常方便地存取数据 ~5 结语 本文阐述了综合使用新媒体微信平台作为信息展示 端,使用云平台运行服务端,使用HTMI 5编写部分交互 页面,开发服务于在校大学生的教务信息查询系统。本系 统相对于传统的B/S系统具有明显的优点:使用微信公 众平台作为系统客户端,充分利用移动通讯工具的便捷 性,最快、最广、最精确地展示教务信息;使用云平台作为 系统服务端,将系统应用部署在云端,扩展性、安全性大大 提高。未来,以微信公众号加云平台这种“轻前端、重后 端”的架构开发的信息系统会越来越多。 参考文献: [1] 白浩,郝晶晶.微信公众平台在高校教育领域中的应用研究[J].中 国教育信息化,2013(4):78—81. 库里的信息l_6]。一般步骤为: (1)建立与数据库服务器的连接。 ¥conn—mysqlconnect( hostname",'usernamd,'password'); ~参数:‘hostname’表示连接字符串, username"和 pass— word"分别表示连接MySQL服务器的用户名和密码。 返回值:如果连接成功,则函数返回一个MySQL连 接标识,连接失败则返回false。 (2)选择要操作的数据库。 mysqlselectdb(‘dbname’,¥conn) —参数:‘dbname’是要操作的数据库名称,¥conn是打 开数据库服务器的返回结果。 (3)执行sql语句。 ¥rs mysqlquery(“要执行的SQL语句”) 参数:SQI 语句可以是标准的select、insert、delete、 update等语句。 E2]刘娟娟.基于微信公众平台的微课程在教学中的应用[J].中国轻 工教育,2014(5):94—96. 返回值:如果SQI 语句是查询指令select,成功则返 回查询后的结果集,失败则返回false;如果SQL语句是 r3] 李松辉,侯志江.图书馆微信公众号服务平台的设计与开发[J].信 息系统工程,2015(2):33—39. [4] 王军凤.教务信息系统的设计与开发口].无线互联科技,2O13(2): 74—77. insert、delete、update等操作指令,成功则返回true,失败 则返回false。 E53 程方昭.教务信息管理系统的建设[J].福建广播电视大学学报, 2006(3):36—40. (4)处理结果集。如果执行select查询语句,成功则 返回结果集,接下来需要用mysql—fetch—array()函数从数 [63 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQI EJ]. 计算机工程与设计,2007(4):933~938. (责任编辑:孙娟) 组结果集中获取信息。语句如下: (上接第l1O页) [5] 雷海龙.目光温室环境及作物生长监控系统的研究[D].密山:黑龙 参考文献: [1]次仁卓玛.香菇栽培技术及其推广应用口].北京农业,2015(11): 38—39. 江八一农垦大学,2O14. E6]祖国建,肖雪耀.学会三菱FX2N PI C技术就这么容易EM].北京: 化学.T-业出版社,2014. E23韩晓新,刑绍邦,刘海燕.从基础到实践——PLc与组态王[M3.北 京:机械工业出版社,2011. [7] 舒宇.基于PLC的花卉温室自动控制系统研究[D].昆明:云南大 学,2Ol3. E33 白雪萍,赵丽,田鑫,等.海鲜菇栽培环境因子监控系统设计[J].中 国农机化学报,2016,37(5):66—70. E83 刘少军,张思雨.基于PLC及触摸屏的隧道通风系统的设计[J].国 外电子测量技术,2016,35(6):92—95. [4] 王欢.基于PI c的黑木耳生长环境监控系统的设计[D].哈尔滨: 东北农业大学,2014. [9] 李金城.PI c模拟量与通信控制应用实践[M].北京:电子工业出 版社,2011. (责任编辑:黄健)