




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于微信公众平台的学生自助服务系统 摘 要:本文总结了基于微信公众订阅号的学生自助服务系统的制作技术和经验,介绍了微信接口的工作原理和项目实施过程,同时也介绍了该系统功能及效果。该系统包括校园服务、生活服务和其他服务三大功能。经测试,开发出的系统能够实现设计的所有的功能。关键词:微信公众平台;微信接口技术;查询系统;开发模式Abstract:This paper summarizes the experience and production technology based on micro-channel public subscription number of student self-service system, and introduces the principle of micro-channel interface and project implementation process, but also introduced the system function and effect. The system includes a campus services, life and other services three functions. After testing, the developed system can achieve all the functionality of the design.Key words:WeChat public platform;WeChat interface technology;query system; dev-elopment model微信是腾讯推出的免费即时通讯服务应用程序,用户可以通过微信与好友进行文字或图片消息的传送。此次毕业设计想通过设计和实际开发一个微信公众订阅号,达到学习和应用微信接口的知识和技能,开发和制作微信公众订阅号,可以积累经验,为未来毕业后工作打下微信公众号开发的基础。1 微信公众平台介绍1.1 简介 微信公众平台(WeChat public platform)在2012年08月23日正式上线,它是腾讯公司在微信的基础上增加的概念模块。通过这一平台,个人和企业都可以申请和开发一个专属的微信公众号,可以向订阅用户群发语音消息、视频消息、文字消息、图片消息和图文消息5个类别的内容。根据运营主体的不同,微信公众账号可分为订阅号、服务号、企业号。1.2 服务号、订阅号、企业号的介绍(区别) (1)订阅号:维护者发布信息的平台(与杂志和报刊相似),认证前后都是每天只可以群发一条消息。(2)服务号:企业提供服务的平台(与银行提供服务查询相似),认证前后都是每个月最多只能群发4条消息。(3)企业号:提供公司内部员工的管理、沟通等服务,需要先有成员的通讯信息验证才可以关注成功企业号。1.3 编辑模式与开发模式 注册微信公众号成功后,管理微信公众号的方法有两种:编辑模式和开发模式。(1)编辑模式:编辑模式简单实用,类似与网站后台管理,可以通过登录微信公众平台设置和管理各种功能,如:群发功能、自动回复、自定义菜单。(2)开发者模式:可以开发业务逻辑,实现编辑模式下几乎所有的功能,还可以开发更多高级功能。1.4 微信公众号的功能从公众账号和订阅者的交流方式来看,微信公众平台有三大功能: (1)群发消息。公众账号可以向订阅者群发一定量的消息。 (2)使用编辑模式中的自定义回复消息,编辑模式下,公众账号可以自定义一些消息回复规则。 (3)使用开发模式。公众账号的维护者可以开发自己所需要的业务逻辑来处理订阅者发送的消息,并做出响应,反馈给订阅者。这个功能可以让公众账号的功能得到极大的扩展。2 微信公众平台开发实现的基本原理2.1 公众平台开发模式的数据交互方式开发的学生自助系统是基于订阅者的开发模式的。下面简单介绍公众平台开发模式的数据交互方式。 图2-1 数据交互原理图图2-1所示的具体交互过程的描述如下:(1)用户通过手机客户端发送信息被送到服务器里面;微信默认能接收图片(image)、视频(video)、文本(text)、地理位置(location)、语音(voice)、链接(link)6种基本的消息格式。(2)微信服务器收到这条消息之后,首先把消息转换为特定的XML结构的信息,并把转换后的信息POST到开发者服务器,即开发者填写的URL上。(3)开发者服务器收到POST请求后,在响应包(GET)中返回特定的XML结构,对该消息进行响应,返回给微信服务器;目前支持图片、图文、视频、文本、音乐、语音6种回复消息类型。通过这个过程可以看到开发者服务器需要做以下三件事情:接收微信服务器传递过来的消息;实现自己特有的业务逻辑;反馈消息给微信服务器。3 自助服务系统设计3.1 系统功能设计基于微信公众平台订阅号开发的学生自助服务系统的功能模块有:校园服务、生活服务和其他服务。系统功能模块图如图3-1所示。新闻查询学生自助服务系统教师查询课表查询学校服务网站天气查询快递查询交通查询菜谱新闻聊天机器人校园服务生活服务其他服务图3-1 系统功能模块图校园服务模块分为:(1)课表查询:为学生提供查询个人课表服务,个人课表包括上课地点、上课时间和授课老师等信息。(2)教师查询:为学生提供查询教师信息服务,教师信息包括教师课表和详细的个人信息。(3)学校服务网站:这是登陆学校网站的入口。学生可以在手机中的微信里登录学校网站。生活服务模块分为:(1)天气查询:为学生提供各个地方的当天以及之后几天的天气预报查询。(2)快递查询:为学生提供随时了解快递位置服务。(3)交通查询:为学生提供列次和航班的查询服务,查询后跳转到去哪儿官网上。其他服务模块分为:(1)菜谱查询:为学生提供对应的菜谱信息,方便学生查询菜谱信息。(2)热点新闻:为学生提供随机推送当天的即时新闻服务。(3)聊天机器人:接入图灵机器人API,实现智能回复学生的提问,为学生提供休闲娱乐服务。3.2 类功能结构设计本系统使用PHP语言面向对象开发,介于微信个人订阅号的接口权限不多,笔者只设计一个类,该类的功能主要有两个:一是验证接口配置信息的接入是否生效;二是根据用户不同的输入提供不同的功能,也就是我们学生自助服务系统的功能类。通过解析用户的输入,调用不同的方法,实现上述的各种功能,比如教师查询和课表查询。4 项目的实施过程4.1 申请微信公众订阅号微信公众号的开发,需要去/申请注册一个公众号。 注册微信公众号成功后,登陆微信公众平台,选择适合的公众平台类型,类型选择的区别,前面已经介绍过。需要注意的是,选择类型之后就不能修改,但如果是企业注册订阅号可以升级为服务号,根据运营主体的不同,要求提供不同的资质材料及证明。申请流程如图4-1所示。4.2 配置和启用服务器登录微信公众平台后,点击“开发者中心=成为开发者=填写接口配置信息=提交”。填写接口配置信息如图4-2所示。图4-2中,URL是用来接收微信服务器数据的接口URL,即开发者服务器的访问地址;Token是自定义的,用作生成签名,EncodingAESKey可以手动填写或者随机生成,将用作消息体加密密钥。同时,可选择明文模式、兼容模式和安全模式三种消息加密方式,模式的选择与服务器配置在提交之后都会立即生效。立即注册点击注册登陆微信公众平台设置公众号信息登陆登记信息选择公众平台类型使用邮箱激活公众平台账号填写基本信息图4-1 申请订阅号流程图图4-2 接口配置信息在验证提交的信息后,GET请求携带以下4个参数并把请求写在URL上。(1)Signature:微信加密签名。(2)timestamp:时间戳。(3)nonce:随机数。(4)echostr:随机字符串。开发者通过检验signature对请求进行校验,若此次GET的请求来自微信服务器,原样返回echostr参数内容,则表示接入生效,成功成为开发者;否则接入失败。实现代码如下: private function checkSignature() / 判断开发者是否自己定义一个TOKEN if (!defined(TOKEN) throw new Exception(TOKEN is not defined!); /获取微信服务器传递给开发者服务器的4个参数 $signature = $_GETsignature; $timestamp = $_GETtimestamp; $nonce = $_GETnonce; $token = TOKEN; /将$token, $timestamp, $nonce三个参数进行字典序排序$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING); /将三个参数字符串拼接成一个字符串,进行shal加密$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );/开发者获得加密后的字符串$tmpStr与$signature对比,判断该请求是否来源于微信服务器 if( $tmpStr = $signature )return true;elsereturn false;服务器启用成功后界面如图4-3所示。图4-3 服务器启用成功图 配置和启用服务器流程图如图4-4所示。配置信息接入有效接入无效微信服务器开发者服务器是否来自微信服务器?提交Get验证否是图4-4 启用服务器流程图4.3 搭建本地开发环境在本地电脑搭建微信开发所需的PHP环境。本次实验使用Adobe Dreamweaver CS6代码编辑器,Navicat for MySQL数据库管理工具。将微信开发的代码上传到远程服务器的站点,进行URL和TOKEN验证成为开发者。保证自己的服务器和微信服务器间的通信正常,才可以进行开发。4.4 事件推送和消息回复根据前面介绍的微信平台数据交互原理,我们可以知道,当用户在关注或者取消关注订阅号时,或者向公众账号发送消息时,该消息会被微信服务器转换为特定的XML结构的信息,并被POST到开发者服务器上,然后在开发者服务器上进行处理,最后又返回给微信服务器。例1:用户在关注订阅号时,XML结构的信息如下:12345689以上代码的含义如下:ToUserName:开发者的微信号FromUserName:发送方账号(一个OpenID,是唯一的)CreateTime:消息创建时间(整型)MsgType:消息类型,eventEvent:事件类型,subscribe(关注)、unsubscribe(取消关注)根据以上参数,我们可以编辑业务逻辑代码,对信息进行处理,返回给微信服务器一个XML数据包,结果如图4-5所示。例2:当用户向订阅号发送文本消息,如“帮助”时,XML结构的信息如下:123456789以上代码的含义如下:ToUserName:开发者的微信号FromUserName:发送方账号(一个OpenID,是唯一的)CreateTime:消息创建时间(整型)MsgType:消息类型,textContent:文本消息内容我们可以根据Content来设定规则,进行关键字回复,结果如图4-6所示。图4-6 关键字回复结果图4-5 关注事件结果在本次实验中,我们还创建了数据表sinfo(学生信息表)、tinfo(教师信息表),模拟学校的数据信息,当用户发送【查询】时,系统会查询相应的数据库,找出相应数据,按照text格式,返回给用户,这样用户可以直观快捷方便的浏览到想要的信息。查询结果如图4-7、图4-8所示。图4-7 教师信息查询结果 (2) (1)图4-8 个人课表查询结果图4-8 4.5 给公众号接入API4.5.1 图灵机器人简介图灵机器人是中文语境下智能度最高的机器人大脑,是全球领先的中文语义与认知计算平台。用户可以向订阅号发送消息,为增强互动性,我们通过调用图灵机器人的API,根据用户发送的消息智能地给予不同的回复。4.5.2 接入图灵机器人API首先登陆官网,注册登陆成为会员,也可以通过第三方直接登陆,登陆成功后,单击左边的“仪表盘”=“机器人接入”,就能看到一个ApiKey值,如图4-9所示。图4-9 ApiKey获取返回信息的URL地址如下:$url=/openapi/api?key=.$APIKEY.&info=.$keyword;其中:$APIKEY为ApiKey,$keyword为用户发送给公众号的信息内容。拼接好URL,发送请求,会有包返回给服务器一个json数据,如下所示:(1)发送请求示例$url=/openapi/api?key=f63d374dcc6666186c257b8e5d410489&info=你好;(2)返回json数据 “code”:100000,“text”:”你也好,很高兴见到你” 当把URL写到浏览器的地址栏,发送请求时,页面上会返回json数据包,开发者可以根据可视化的数据包进行数据处理,效果如图4-10所示。图4-10 URL的请求结果开发者接收数据包并整理数据返回给用户。显示效果如图4-11所示。 (1) (2)图4-11 API调用结果5 结束语微信平台的使用,不仅可以节省开发周期,还可以降低资金的投入,是目前校园信息化建设的最为经济的方式。移动互联网是社会发展的趋势,但是如何把握住移动给互联网这个机遇,目前来看也就只有微信的成本和门槛最低,最容易上手,人群必然会蜂拥而至。在毕业设计中笔者选择微信接口开发,可以提高今后的工作能力,为今后的工作打下基础。微信订阅号的设计与制作基本上符合要求,虽然微信接口技术本身并不复杂,但是要想拥有良好的用户体验,需要投入相当多的时间和精力。当然,开发过程中会遇到种种问题。在接口配置信息时,Token和URL没有提交成功,我多次检查代码,确保填写的Token和代码中自定义的Token完全一致,确保URL没有写错,但还是没有成功。我求助于一同事,他用自己的服务器帮我测试,结果提交成功了,原来是大宇服务器的响应速度太慢,换一个性能更好的服务器就能解决问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会工作者初级考试2025年综合能力试题(儿童社会工作实务)
- 2025年专升本艺术概论模拟试卷:艺术流派在艺术实践中的应用试题
- 2025年高压电工考试题库:高压设备故障诊断与设备运行监控实战模拟试题库
- 2025年乡村医生考试:农村常用药物使用与药物不良反应试题
- 2025餐饮业员工雇佣合同
- 2025年资产评估师职业资格考试真题模拟卷:资产评估师考试备考资料与真题模拟试题
- 2025代理委托合同范本
- 2025创新合同管理模式实现风险有效控制
- 2025年专升本艺术概论模拟试卷:野兽派与未来派艺术流派对比分析试题
- 2025年安全生产考试题库:爆炸事故案例分析试题
- 2025-2030中国完全同态加密行业市场发展趋势与前景展望战略研究报告
- 濒危野生动植物种国际贸易公约(附录一二三)
- 代采代销合同范本
- DB3715-T 19-2022 桑黄栽培技术规程
- 纪录片观念与历史知到智慧树章节测试课后答案2024年秋云南艺术学院
- 叉车安全协议合同范本
- 2023版国家关于轻伤、重伤鉴定新标准(人体损伤程度鉴定标准)
- 加油站承包合同范本
- 中医诊断学舌诊介绍
- 《挥发性有机污染地块现场分析检测技术验证评价指南》
- 护理质控鱼骨头制作流程
评论
0/150
提交评论