基于微信公众平台的校园移动信息服务建设方案研究

龙新征,欧阳荣彬,李若淼,李庭晏,王倩宜

(北京大学 计算中心, 北京 100871)

摘 要:针对校园移动信息服务内容和技术方面的不足,提出基于微信公众平台的校园移动信息服务建设方案.设计了由微信公众平台,统一身份认证平台,移动信息服务平台和开放服务平台4部分组成的校园移动信息服务总体架构,核心部件采用基于“微服务”的思路实现.基于微信公众平台的高级服务接口解决了用户绑定、网页授权、通知推送和微信支付等技术难点.自校园移动信息服务上线以来,得到了师生的广泛关注,目前总关注人数25 000余人,绑定用户人数为15 000余人,日访问量2 000余次.

关键词:微信公众平台;移动信息服务;开放服务接口;微服务;微信支付

0 引言

随着4G技术和智能终端的迅速发展与普及,数字化校园进入新的阶段.作为数字化校园的重要组成部分,校园移动信息服务有助于促进信息共享,增强信息系统与用户的交互,提升服务资源的利用率,进而为师生提供质量更高的信息化服务.

目前,国内大多数高校的移动信息服务建设尚处于起步阶段,无论是内容还是技术都面临诸多问题.首先是供需不平衡,推出的服务不能满足学生生活、娱乐,尤其是交互的需求;其次市场上的智能终端众多,不同终端之间的差异性增加了建设和维护所需的技术、资金和人力成本.因此,建设校园移动信息服务,需要在内容层面上有效整合分散庞杂的信息,满足师生的学习生活需求;在技术层面上要探索出一套合理的平台构建方案.

笔者以北京大学为例,根据师生的校园信息需求状况,借鉴国外高校的先进经验,提出了基于微信公众平台,以服务集成思路建设移动信息服务的方案.与此同时,分析了移动信息服务平台的需求,设计了移动信息服务的总体架构,并简要阐述了实现过程中的关键技术.

1 研究背景

国外的许多著名高校都已研发出校园移动平台.2009年,斯坦福发布了istanford[1],用户可以查找部门联系方式、查询校园地图、关注最新校园信息、查看课程内容和时间、了解自己的学习成绩、查看图书馆资源等.同年,MIT也发布了校园移动平台[2],功能包括新闻、日历、班车信息、校园地图、课程信息以及人员查询.2010年,哈佛大学发布了校园移动平台[3],功能包括课程录像、球队、社交平台、人员查询、校园地图、新闻、课程、餐饮、校车以及图书馆等.

国内许多知名高校也根据自身特点,积极采用移动技术手段增加信息化管理能力[4].2014年3月,北京大学学生研发了一款校园移动应用“PKUHelper”[5],功能包括连网关、查成绩、选课、登邮箱、看通知、查看PM2.5指数等.“PKUHelper”完全由学生自主开发,推出后反响强烈,体现了学生对此信息渠道的迫切需求,但该应用一直存在较严重的安全隐患.2016年7月,北京大学计算中心面向全校师生发布了手机版北京大学网关客户端,受到用户的极大欢迎,发布两个月已经下载一千多次.但到目前为止,北京大学的校级移动应用还没有与北大颇具规模的校务信息系统建立共享机制,广大师生难以享受到更为便捷、丰富的移动体验.

2 技术选型

微信公众平台是基于微信的一个开放平台,开发者可以在微信公众平台上创建微信公众号并实现轻应用的部署与开发[6].与移动APP相比,微信公众号在操作便捷性、交互多样性、开发难易性等方面具有明显优势,如表1所示.

微信公众号分为订阅号、服务号、企业号.订阅号每天都可以群发1条信息,因此它适合传播信息,为用户提供信息支持;服务号虽然每月只有4次群发机会,但消息推送效果好,此外服务号还具备语音识别、客服接口、OAuth2.0网页授权等高级接口,因此它适合为用户提供实用的服务功能;企业号主要是面向企业内部员工的,在安全机制方面启用了“白名单”机制,只有经过许可的人才可以关注,因此它更适合生产运营管理.由于移动信息服务的目的是面向校内师生提供综合信息服务,因此选择基于服务号实现.

表1 两种开发方式对比

Tab.1 Comparison of two development methods

对比项目微信公众号移动App操作便捷性只需在微信中关注微信公众号即可需要用户下载并安装App交互多样性消息会话、公众号内网页用户界面开发难易性基于微信公众平台提供的API搭建微信公众号基于android、IOS等多种系统开发应用

微信公众号主要通过公众号消息会话和公众号内网页为用户提供服务.

消息会话.消息会话是公众号与用户交互的基础,主要有群发消息、被动回复消息、客服消息和模板消息4类.

公众号内网页.许多复杂的业务场景需要通过网页形式来提供服务,这需要通过OAuth2.0网页授权获取用户基本信息.如果在网页中需要使用微信原生功能(如上传手机本地图片、拍照等)还要用到微信JS-SDK.

3 设计方案

3.1 需求分析

在微信公众号中最多可以创建3个一级菜单,每个一级菜单下最多可以创建5个二级菜单,因此须对功能模块进行合理规划.笔者从信息使用量和需求量分析、信息需求状况访谈、国外高校移动应用对比3个方面对功能模块进行规划.

通过信息使用量和需求量分析发现:成绩信息、网关服务、课程信息和校内通知最受师生关注.

通过访谈发现:①学生对于讲座信息的需求很高,但获取方式传统,讲座信息提供不够全面;②教学网目前无法满足学生对课程信息的需求,希望移动信息服务能提供课程作业通知、教师与助教的联系方式;③英语四六级考试、交流信息、放假通知等学校公共通知的推送十分有必要,目前这些信息分别发布在学校不同网站上,容易造成信息遗漏;④学生对使用现有社交网络已形成习惯,对于校园移动服务中的社交功能可能不会尝试,因此不需要提供社交功能.

通过应用对比发现:美国5大高校的移动平台均加入了校园黄页、校园新闻与活动信息部分,对校区地图、校车信息的采用度也较高.因此结合北大的实际情况,也选择了将校园黄页、校区地图和校园新闻作为功能模块.

综上,选择3大类15个功能模块,如图1所示.

图1 校园移动信息服务平台的功能模块

Fig.1 Function module of campus mobile information service platform

3.2 总体架构

校园移动信息服务由微信公众平台、统一身份认证平台、移动信息服务平台、开放服务平台4部分组成,如图2所示.

微信服务平台.它是联系用户与移动服务平台的桥梁,为移动服务平台提供微信高级服务接口.

统一身份认证平台.协助移动服务平台完成用户绑定、网页授权等功能.

图2 校园移动信息服务总体架构

Fig.2 The architecture of campus mobile information service

移动服务平台.整个架构的核心,通过服务集成实现.采用了“微服务”(microservices)的思路进行构架[7],每一个功能模块都是单独的微应用,只是在底层用了统一的工具包和统一的工作日志.这样做的好处是不同的应用之间彼此独立,互不影响,每一个应用都可以单独进行部署.当用户点击公众号内菜单时先通过网页授权获取用户身份,再通过统一身份认证平台认证,认证通过后即可跳转到相应微应用的首页面.

开放服务平台.移动服务平台不是直接与数据库或业务系统交互,而是通过访问开放服务平台的开放接口获取数据.开放服务平台由3部分组成:服务总线、数据库级共享API、应用级共享API.服务总线完成对服务的注册、定义、访问权限、安全等管理;数据库级共享API通过数据封装和整合,形成统一的数据中心对外提供服务;应用级共享API对应用系统及第三方平台提供的服务进行封装.所有的开放接口均以基于REST机制的API对外发布.

4 关键技术

4.1 基于带场景值的临时二维码用户身份绑定

微信公众号使用OpenID作为用户唯一身份标识,每个用户的公众号有一个唯一的OpenID.用户身份绑定就是将OpenID与校内统一身份账号关联起来,绑定成功后即可通过公众号访问校内服务.一般来说,微信公众号采用的是网页绑定,即在微信公众号中打开网页,要求用户输入用户名和密码进行绑定.笔者提出了安全级别更高的基于带场景值的临时二维码绑定方式.

步骤1 用户在计算机上登录校内信息门户,通过调用微信公众平台生成带场景值二维码的接口,在校内信息门户中生成临时二维码,时效半小时,临时二维码的场景值SceneID为全局唯一的随机码;场景值和用户名UserID的映射关系为(SceneID, UserID).

步骤2 用户通过微信扫描临时二维码,若二维码失效则提示刷新门户重新生成二维码;否则向微信公众器推送扫描二维码事件的消息,消息内容中包含SceneID和OpenID的映射关系(SceneID, OpenID).

完成以上两步即可得到OpenID和UserID的映射关系(OpenID, UserID),从而完成绑定.

4.2 基于OAuth2.0授权的网页授权

OAuth2.0授权能让微信用户使用微信身份安全访问移动信息服务平台.当用户在微信中访问公众号内网页时,通过微信OAuth2.0授权接口可以获取当前用户的OpenID,实现网页授权访问.

步骤1 引导用户进入授权页面同意授权,获取CODE;

步骤2 通过CODE换取网页授权access_token和OpenID;

步骤3 通过OpenID获取UserID,完成用户身份认证,访问移动信息服务平台中的应用获取信息.

4.3 基于模板消息的校园通知推送服务

利用微信公众平台的模板消息接口,移动信息服务平台可以主动向用户推送符合模板格式的校园重要通知.移动信息服务平台通过对微信公众平台的模板消息接口封装,对外发布校园通知推送服务.通知推送首先由业务系统主动触发,调用移动信息服务平台的通知推送接口,将消息推送到移动信息服务平台,然后移动信息服务平台再调用微信公众平台的消息模板接口将消息传到微信服务器,微信服务器最终解析消息,在微信服务号中显示.

目前可订阅和推送的校园通知有校园卡余额提醒、图书馆还书通知、日程安排提醒、成绩通知、账户操作通知、后勤报修提醒等.

4.4 多商户场景下的微信支付

提供在线支付网费、网上订餐等功能.实现这一功能的时候,没有使用微信公众平台原生的微信支付接口,而是通过调用第三方支付平台“聚合支付”的接口实现.因为原生接口下,单个微信公众号只支持单个商户号,但在实际业务中,网费支付、订餐服务的提供部门不同,因此商户号也不同.“聚合支付”平台下,一个微信公众号可以对应多个商户号,对于开发者来说,每一种新的支付方式只需在该平台上新建一个应用,就可通过这个应用的APPID访问无插件“聚合支付”接口完成支付,如图3所示.

图3 微信支付工作流程

Fig.3 The workflow of wechat payment

5 结论

北京大学移动信息服务自2014年10月正式上线,关注人数、绑定人数和日访问量一直稳步攀升.截止2016年8月31日,微信服务号的总关注人数已达到25 000余人,绑定用户人数为15 000余人,日访问量2 000余次.

通过基于微信公众平台的移动信息服务建设,我们建成了一个以内容共享为导向,以用户为中心,面向服务,信息互通的移动服务平台,为用户提供多种校内信息服务,使用户能及时、准确、高效、随时随地地获取信息,满足各类用户的多种业务需要.下一阶段,我们将着眼于移动信息服务与校内教学、科研资源的结合,使其能够进一步为学校的教学和科研工作提供服务.

参考文献:

[1] Stanford University University IT. Stanford mobile device services[EB/OL]. [2009].http://itservices.stanford.edu/service/mobile.

[2] Massachusetts Institute of Technology.MIT mobile Web home[EB/OL].[2009].http://m.mit.edu/.

[3] The President and Fellows of Harvard College.Harvard mobile Web home[EB/OL].[2010].http://m.harvard.edu/.

[4] 清华大学信息化技术中心.清华大学信息门户(移动版)[EB/OL].[2011]. http://m.tsinghua.edu.cn/.

[5] 熊典.Introduction to PKUHelper Ver2.0.3/2.0.4.[EB/OL].[2014-03-02].http://www.xiongdianpku.com/applications/detail.php/id=2.

[6] 腾讯公司.微信公众平台开发概述[EB/OL].[2012-08-23].https://mp.weixin.qq.com/wiki.

[7] Chris Richardson.Introduction to microservices[EB/OL].[2015-05-19].http://nginx.com/blog/introduction-to-microservices/.

The Research of Campus Mobile Information Service Construction Scheme Based on Wechat Public Platform

LONG Xinzheng, OUYANG Rongbin, LI Ruomiao, LI Tingyan, WANG Qianyi

(Computer Center, Peking University, Beijing 100871, China)

Abstract:Aiming at the shortage in content and technical aspects of campus mobile information service , this paper proposed a construction scheme of campus mobile information based on wechat public platform. The cture of the campus mobile information service architecture composed of 4 components: wechat public platform, unified identity authentication platform, mobile information service platform, and open service platform.And the core components was implement based on microservices. In additional, this paper solved the key technical problems such as user binding, webpage authorization, notice push and wechat payment based on advanced service API of wechat public platform. The campus mobile information service was widely concerned by the teachers and students, the total number of people reached more than 25 000, the number of binding users reached 15 000, the number of daily traffic was more than 2 000.

Key words:wechat public platform; mobile information service; openAPI; microservices; wechat payment

收稿日期:2016-12-01;

修订日期:2017-01-18

作者简介:龙新征(1984— ),男,湖南湘阴人,北京大学工程师,主要从事高校信息化研究,E-mail:longxinzheng@pku.edu.cn.

文章编号:1671-6833(2017)02-0005-04

中图分类号:TP315

文献标志码:A

doi:10.13705/j.issn.1671-6833.2017.02.002