基于微信的辅助教学系统的设计与实现
要处理消息的接收与回复,消息的处理等。获取用户消息接口主要是通过用户的openid(用户在公众号中的标识)获取用户的头像、用户名等信息[8]。当用户和公众号发生一些动作的交互时,微信可以用一定的接口将消息发送给微信的第三方开发者,开发者可以在交互发生48小时内调用客服接口,通过https请求的POST方法将一个json数据包发送给服务器,服务器对json数据进行解析,达到主动向用户发送消息的目的。这个接口可以在一定条件下满足开发者主动向用户发送消息的请求,可以使用户在使用时获得更加令人满意的使用体验,提升微信公众号进行消息处理的灵活性。菜单接口用于微信菜单的定义与管理[9]。
微信接口为用户进行二次开发,提供了固定的格式,用于xml或者json数据传输或实现一定的功能。以微信进行接口验证的接口为例,如下:
private function checkSignature() {
$signature = $_GET[\获取signature $timestamp = $_GET[\获取时间戳 $nonce = $_GET[\获取随机数
$token = TOKEN;//token值
$tmpArr = array($token, $timestamp, $nonce);//将数据数组化 sort($tmpArr, SORT_STRING);//排序 $tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );//sha1 加密
if( $tmpStr == $signature ){//如果验证匹配通过 return true;//返回true }else{
return false;//返回false } }
以上接口主要是为了进行接口的验证与连接第三方开发者,主要包括token值(标志微信公众号与验证),signure(微信加密签名,signature是对用户填写的token参数和请求中的timestamp参数、nonce参数的结合。),timestamp(从服务器获得的时间戳),nonce(服务器产生的一组随机数),echostr(服务器产生随机字符串)作为验证标志。
以微信进行普通消息传书的XML文档为例:
主要包括,微信发送者的openid,接收者的openid,消息内容等。微信根据规范的xml文档格式进行消息的解析[10]。
微信公众平台作为微信提供的一种服务对接口权限和调用频次具有一定限制,在这
2
基于微信的辅助教学系统的设计与实现
里不做详细说明。
1.2.2 微信关键词
微信的关键词系统是微信公众平台进行消息回复与消息处理的一个重要机制,也是实现实时交互的一种重要手段。微信通过庞大的关键词系统进行事件或者用关系的匹配,实现消息的自动回复或者处理。微信关键词的处理机制如图1-1所示。
图1-1 关键词原理示意图
1.2.3 PHP
PHP是微信接口的主要语言,是很多开发者进行微信二次开发的优先选择语言。PHP(Hypertext Preprocessor, 超文本预处理器),是一种服务器端、跨平台、HTML嵌入式的脚本语言。PHP是B/S体系结构,属于三层结构。服务器启动后用户可以不使用客户端软件进行使用和操作,只使用浏览器就能进行访问并使用功能[11]。
PHP具有以下特点: 安全性高 跨平台特性 支持广泛的数据 执行速度快 模块化
支持面向对象与过程[12]。 1.2.4 开发工具及运行环境 适用的操作环境:微信公众平台 开发环境: NetBeans IDE 、Dreamw 、新浪 SAE 、微信公众平台测试账号 服务器环境: 新浪SAE 云平台 开发语言: PHP 数据库: Mysql
1.3 文章内容及课题的主要贡献
本文主要介绍了基于微信的辅助教学系统课题研究的技术背景以及现状,介绍了开发本系统的主要意义,整个系统的架构以及各模块的主要架构,分析了基于微信的辅助教学系统开发的可行性,对用户对系统的性能功能的需求进行了归纳和分析。此外,介
3
基于微信的辅助教学系统的设计与实现
绍了开发和实现系统索要使用的关键技术,介绍了基于微信的辅助教学系统的设计与实现过程。
教师使用本系统可以更好的掌握课堂情况和活跃课堂节奏,而学生也能在课堂中更好地解决自己的问题,提高学习的积极性。可以很好地实现课堂交互。
做为开发者,在开发的过程中,我可以很好地巩固知识并学习新的知识,开拓自己的眼界,并提高自己的能力。
论文的主要章节概括如下:
第1章是本文绪论,介绍了基于微信的辅助教学系统的课题研究背景、分析了开发该系统的意义和系统的价值,对开发本所系统所使用的技术进行了简要的介绍,除此之外,本章还介绍了系统开发的主要工具以及系统开发的环境,介绍了主要使用的编程语言,介绍了系统的运行环境。
第2章是对基于微信的辅助教学系统的需求分析,总结说明基于微信的辅助教学系统主要要实现的功能,分析了用户的需求,分析和说明了系统开发、运用的可行性。
第3章是对基于微信的辅助教学系统的总体架构以及各功能模块架构的总结和分析,介绍可一些重要的数据库和逻辑层设计
第4章是基于微信的辅助教学系统的实现过程,介绍系统各个模块的实现代码,说明了一些重要的微信API。
第5章介绍基于微信的辅助教学系统的软硬件需求以及开发的一些关键技术点 第6章是个人对设计以及系统开发和自身情况的总结和展望。
1.4 本章小结
本章主要介绍了基于微信的辅助教学系统的开发背景、意义和价值。本节对微信二次开发及其部分接口做了简要介绍,介绍了微信公众平台的关键词响应式处理的原理做了简单介绍,简要介绍了项目的主要开发语言以及运行和开发环境。对本文的总体内容进行了简单的介绍。
4
基于微信的辅助教学系统的设计与实现
2 需求分析
2.1 系统的功能需求分析
2.1.1 系统的功能需求主要有以下几块内容:
1)教师的操作与管理 2)学生的操作与管理 3)系统其他功能与验证 2.1.2 系统主要由以下3大功能块组成: 1)教师功能模块:
教师绑定与验证 发起签到于结束签到 在线出题
题目结果统计 布置作业
在线答疑交流
2)学生功能模块: 学生绑定与验证 学生签到 在线答题
发起交流与给教师留言 查看作业
3)系统搭建与验证模块: 系统token验证 基本菜单形成 关键词帮助 校历 2.1.3 系统的用例图
用例图如图2-1所示。
5
基于微信的辅助教学系统的设计与实现
账号绑定账号绑定开始与结束签到签到出题答题学生教师答题统计询问与留言回复学生作业查看布置作业 图2-1学生及教师用户用例图
2.2 性能需求
2.2.1 系统硬件需求
安卓或IOS手机
2.2.2 系统开发运行所需要的软件环境
? 软件操作环境。
微信客户端 ? 编程环境。
1) NetBeans EDI 、dreamweaver 2) SAE
3) 微信公众平台测试号及其API 4) Mysql
2.3 可行性分析
从技术上,微信公众平台提供了大量的API,为实现功能的接入打下了很有利的基础。另一方面,微信公众平台的数据格式较为统一,按照其格式进行代码书写会容易很多。Php作为编程语言,相对简单易学,再加上已拥有的编程基础,相对容易掌握[13]。另一方面,做为微信系统的二次开发,适配问题也较容易解决。 作为公众账号的二次开发,实时完善和拓展更加容易[14]。
从经济和推广上看,作为适用特定推广的公众账号,复制性和便捷性较高,不需要额外的系统负担和存储空间。另外,二次开发的代码也较为轻量,开发工具和语言也是免费的,主要开支存在于公众账号认账以及可接入公网的服务器,其中认证费用完全可
6