APP下载

基于微信公众号的教务信息查询系统设计与实现

2017-09-29刘磊陈羽云林洁鑫

软件导刊 2017年9期
关键词:云平台微信公众号

刘磊 陈羽云 林洁鑫

摘 要:基于移动社交平台微信和国内领先的云平台新浪云(SAE),开发大学生用户覆盖率很高的教务信息查询系统,以微信公众号为系统入口,以HTML5开发适应移动端的响应式页面,以PHP+MYSQL为服务端开发框架,以新浪SAE为部署平台。系统具有随时随地使用、前端轻量级、后端灵活、用户体验良好的特点。

关键词:微信公众号;教务系统;云平台

DOI:10.11907/rjdk.171098

中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2017)009-0111-03

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 of users 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 引言

高校教务信息的发布是学校重要管理活动之一,如何提高信息发布的精确性、及时性和有效性,提高学生对教务管理的粘连度,一直广受关注。随着IT技术的更新迭代,移动社交逐渐覆盖了人们的日常生活,传统的服务端计算也搬到了易扩展的云平台上,这些技术的创新促使管理系统的开发走上了一个新的台阶。本文基于最新的移动社交平台微信和国内最好的PaaS云计算平台新浪云(SAE),开发一款可以在移动端设备上使用的高校教务信息查询系统,使用微信公众号作为入口,实现用户绑定、成绩查询、课表查询、自习教室查询、教务通知查询、考试安排查询等功能。

1 微信公众号优势

微信公众号是在微信基础平台上扩展的功能模块,通过这一平台,可以方便地与特定群体实现文字、图片、语音的全方位沟通、互动。微信公众平台的传播方式是一对多的传播,直接将消息推送到手机,因此达到率和被观看率几乎是100%。微信公众平台相比于其它网络平台在传播方面具有明显优势:①微信是天然的用户接口,只要登陆微信,系统即可获取用户位置、时间,并且支持图片、二维码、NFC等富媒体,做到随时随地交互,并能对接任何系统,信息传达效率高;②轻量级前端使用HTML5技术带来良好用户体验,重后端保证系统运行稳定;③用户自由度较高,用户订阅、推送功能自主选择;④微信用户群数以亿计,公众号特别适于社会组织向用户提供业务服务能力[1-2]。

2 總体设计

本系统使用微信公众号作为用户操作入口,通过公众号界面的菜单跳转或指令交互,使用HTML5开发响应式页面展现给用户,微信公众号和HTML5页面可以归为客户端;使用PHP语言、MYSQL数据库开发教务信息查询系统,部署在新浪SAE平台,这是服务端。客户端使用微信公众号入口具有极强的方便性和交互性,HTML5页面具有轻量级、表现力丰富的特点,服务端运行在SAE平台,保证了系统的稳定性和扩展性[3-5]。

(1)客户端。客户端使用微信公众平台提供交互界面,通过输入指令、跳转菜单与服务端完成交互。用户通过关注公众号进入服务窗口,输入学号完成绑定,输入相应指令发送到服务端,解析服务端返回消息展现给用户。

(2)服务端。使用PHP+MYSQL开发服务端教务信息查询系统,实现学号绑定、成绩查询、课表查询、考试安排查询等功能。教务系统运行在新浪云平台(SAE),通过接受指令、返回结果与客户端实现交互。指令交互的过程是:服务端根据接受的指令调用相应的功能模块,将结果封装成XML消息,返回给微信公众平台加以展示;菜单跳转则是通过微信内置的浏览器直接展示HTML5页面,由页面与后端业务逻辑模块交互。系统总体设计如图1所示。

3 功能与流程设计

本系统通过微信公众号向用户提供学号绑定、课表查询、公选课查询、教务通知查询、成绩查询、考试安排查询等功能,用户关注公众号后,可以方便地在微信界面使用以上功能,达到随时随地随身使用教务信息查询系统的目的。系统功能结构设计如图2所示。

本系统主要为在校大学生方便及时查询教务信息服务,因此用户群是在校大学生。学生用户首先关注微信公众号,进入公众号界面,输入学号绑定,绑定成功后就可以使用课表查询、成绩查询等功能,点击相应的查询按钮,系统会根据学号自动返回相关信息。用户业务流程设计如图3所示。

4 关键技术

4.1 微信公众平台接入

开发者接入微信公众平台,需要3步:

(1)填写服务器配置。登录微信公众平台官网后,在公众平台后台管理页面修改配置,填写服务器地址(URL)、Token和EncodingAESKey。其中,URL是开发者用来接收微信消息和事件的接口地址;Token可以任意填写,用作生成签名,该Token值会和接口URL中包含的Token进行比对,从而验证安全性;EncodingAESKey由开发者手动填写或随机生成,用作消息体加解密密钥。endprint

(2)验证服务器地址的有效性。开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带4个参数:①Signature:微信加密签名,结合开发者填写的Token参数和请求中的Timestamp参数、Nonce参数;②Timestamp:时间戳;③Nonce:随机数;④Echostr:随机字符串。

开发者通过检验Signature对请求进行校验,若确认此次GET请求来自微信服务器,则原样返回Echostr参数内容,表示接入生效,否则接入失败。

检验Signature流程如下:①将Token、Timestamp、Nonce 3个参数进行字典序排序;②将3个参数字符串拼接成一个字符串进行sha1加密;③将加密后的字符串与Signature对比,通过则标识该请求来源于微信。

检验Signature的PHP示例代码如下:

private function checkSignature()

{

$signature=$_GET["signature"];

$timestamp=$_GET["timestamp"];

$nonce=$_GET["nonce"];

$token=TOKEN;

$tmpArr=array($token, $timestamp, $nonce);

sort($tmpArr, SORT_STRING);

$tmpStr=implode($tmpArr);

$tmpStr=sha1($tmpStr);

if($tmpStr==$signature){

return true;

}else{

return false;

}

}

(3)依據接口文档实现业务逻辑。验证URL有效性成功后即可开发业务逻辑,用户每次向公众号发送消息或者点击自定义菜单,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,开发者就可以编写相应的业务逻辑进行响应,例如回复消息、返回页面等。

4.2 PHP操作MYSQL数据库

PHP内置了操作MYSQL数据库的函数,这些函数以mysql_开头,使用这些函数可以非常方便地存取数据库里的信息[6]。一般步骤为:

(1)建立与数据库服务器的连接。

$conn=mysql_connect('hostname','username','password');

参数:‘hostname表示连接字符串,'username'和'password'分别表示连接MySQL服务器的用户名和密码。

返回值:如果连接成功,则函数返回一个MySQL连接标识,连接失败则返回false。

(2)选择要操作的数据库。

mysql_select_db (‘dbname,$conn)

参数:‘dbname是要操作的数据库名称,$conn是打开数据库服务器的返回结果。

(3)执行sql语句。

$rs=mysql_query (“要执行的SQL语句”)

参数:SQL语句可以是标准的select、insert、delete、update等语句。

返回值:如果SQL语句是查询指令select,成功则返回查询后的结果集,失败则返回false;如果SQL语句是insert、delete、update等操作指令,成功则返回true,失败则返回false。

(4)处理结果集。如果执行select查询语句,成功则返回结果集,接下来需要用mysql_fetch_array()函数从数组结果集中获取信息。语句如下:

$row=mysql_fetch_array($rs);

参数:$rs为执行select查询语句返回的结果集。

返回值:$row为从结果集取得一行返回的数组,可以用$row[‘字段名]访问指定列的值;如果没有数据则返回false。

(5)关闭与数据库服务器的连接。

mysql_close()

如果不手动关闭数据库连接,PHP脚本在执行结束时也会自动关闭数据库连接。

5 结语

本文阐述了综合使用新媒体微信平台作为信息展示端,使用云平台运行服务端,使用HTML5编写部分交互页面,开发服务于在校大学生的教务信息查询系统。本系统相对于传统的B/S系统具有明显的优点:使用微信公众平台作为系统客户端,充分利用移动通讯工具的便捷性,最快、最广、最精确地展示教务信息;使用云平台作为系统服务端,将系统应用部署在云端,扩展性、安全性大大提高。未来,以微信公众号加云平台这种“轻前端、重后端”的架构开发的信息系统会越来越多。

参考文献:

[1] 白浩,郝晶晶.微信公众平台在高校教育领域中的应用研究[J].中国教育信息化,2013(4):78-81.

[2] 刘娟娟.基于微信公众平台的微课程在教学中的应用[J].中国轻工教育,2014(5):94-96.

[3] 李松辉,侯志江.图书馆微信公众号服务平台的设计与开发[J].信息系统工程,2015(2):33-39.

[4] 王军凤.教务信息系统的设计与开发[J].无线互联科技,2013(2):74-77.

[5] 程方昭.教务信息管理系统的建设[J].福建广播电视大学学报,2006(3):36-40.

[6] 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J].计算机工程与设计,2007(4):933-938.

(责任编辑:孙 娟)endprint

猜你喜欢

云平台微信公众号
江苏生鲜产品微信公众号营销问题及对策研究
微信公众号在高校“Photoshop图像处理”课程中的应用
企业云平台建设研究