陶友贤,吴龙影,白宏熙,牟 艳
(河海大学物联网工程学院,江苏 常州213022)
基于微信公众平台的小区信息上报系统设计*
陶友贤,吴龙影,白宏熙,牟 艳
(河海大学物联网工程学院,江苏 常州213022)
为方便物业管理人员与业主的沟通与交流,提高物业服务水平,开发了基于微信公众平台的小区信息上报系统。本系统以腾讯公司提供的微信公众号开发平台为基础,利用HTML5、JSON数据处理和公众号开发API,实现了数据、照片、语音等信息的采集、交换和消息推送。本系统在某住宅小区使用一年,能够帮助小区物业管理人员和业主在微信公众号中方便地完成通知发布、卫生保洁、治安巡防、水电报修、失物招领等操作,有效地提高了小区物业服务质量。
微信公众平台;信息上报;HTML5页面;JSON数据处理;微信公众号;物业管理
住宅小区是城市建设管理的重要组成部分,管理好小区对带动当地城市的整体发展起着至关重要的作用。尽管近些年来,住宅小区内部的门禁、监控等系统在一定程度上给小区管理提供了便利,但现阶段在管理住宅小区的过程中,在物业与业主之间,由于缺乏便捷的沟通渠道,导致多数业主不愿意参与到住宅小区的管理中[1];在安防方面虽然有监控系统但是监控的数量和范围有限,导致住宅小区仍然存在安全“死角”,而众多的业主只要拥有便捷的“工具”就可以帮助物业扫清这些安全“死角”,为住宅小区的安全添砖加瓦。
为了解决上述问题,为住宅小区提供智能化程度高、操作简便易行、信息集成化的管理方式,笔者经分析了解到当下住宅小区信息管理中的痛点在于信息的采集和传递,依托腾讯公司提供的微信公众号开发平台,对比微信开发与原生应用开发在难度和成本方面的优势,提出一种基于微信公众平台的小区信息上报系统(以下简称信息上报系统)设计方案。
在微信公众平台中,数据传递一般需要经过微信客户端、微信服务器、第三方服务器以及第三方数据库服务器,其中,微信客户端负责采集数据,微信服务器负责存储临时数据包和转发数据包,第三方服务器负责接收和处理微信服务器转发的数据包并实现相关业务逻辑,第三方数据库服务器负责存储数据。各个模块之间各司其职又进行着以数据为纽带的联系,微信服务器与第三方服务器之间以XML格式传递数据[2]。
基于微信公众平台的这种开发模式,信息上报系统通过微信公众平台提供各类接口和服务模式,来着力实现住宅小区中的信息上报问题。通过信息上报系统,业主在微信端即可阅读物业发布的小区公告、上报小区中的异常情况、方便地发布失物招领信息。例如,业主在小区门口发现有垃圾未清理,那么打开微信中的信息上报平台,录入语音现场描述、拍照、定位再上报至系统,系统立即根据预定义的消息分发策略,通知相关工作人员。
其系统间数据流展示如图1所示。
图1 信息上报系统数据流展示图
基于微信公众平台的小区信息上报系统结构主要包括信息上报、数据处理、消息分发三个模块。信息上报模块主要负责与微信服务器的通信和上报数据的初步“加工”。数据处理模块主要包括业主、工作人员、物业管理人员的业务操作(主要包括各角色权限分配、信息上报、处理结果、行为监控等)以及与微信服务器和信息上报系统数据库之间的数据操作。消息分发模块主要用于业主和工作人员之间的消息推送。
其系统功能结构如图2所示。
图2 信息上报系统功能结构图
对于上述功能模块,若使用微信公众号内部的功能进行操作,如发送语音、文字、图片、地理位置来进行数据的逐条采集,需要等待上一条数据处理完,才能处理下一条数据,不利于信息的完整性,也不够灵活。本系统为了提高操作的灵活性和保障信息的完整性,消息的通知统一使用文字链接的形式,用户点击文字链接即可进入相关的功能模块,上报信息的采集和展示统一使用HTML5页面来完成,充分利用微信公众平台提供的JS-SDK技术来采集语音、图像、地理位置信息,让用户更加便捷地填写信息和查看信息。此处,利用Bootstrap和jQuery框架,可以使信息发布界面自适应于各类尺寸规格的移动设备[3]。
将微信公众平台应用于小区信息上报系统,把业主、工作人员、物业管理人员统一在一个平台下,降低了信息传递的复杂性,便于及时通讯。为满足信息上报系统需求,本系统主要包括了以下几个功能:
(1)角色绑定:小区业主、工作人员和物业管理人员通过扫描小区公众号二维码等渠道进入“信息上报系统”,绑定用户信息即可使用。
(2)权限分配:对于业主、工作人员、物业管理人员,根据其绑定的角色来分配相应的预先设定权限,权限统一由物业管理人员进行分配。
(3)信息采集:小区业主打开信息采集页面,选择信息分类,根据页面提示录入语音信息,拍摄现场照片,填写少量文字,地理位置信息等,主要的问题分类包括治安巡防、卫生保洁、水电报修、失物招领等,物业管理员则可以发布公告。
(4)信息处理:系统对上报信息的处理包含以下几个过程:推送相关工作人员、工作人员确认、状态反馈给业主、工作人员处理结果反馈、通知业主、业主确认及评价。
(5)信息存储:在收到业主上报的信息后,系统先将用户上传至微信服务器的多媒体文件下载到本地进行存储,然后根据问题标签进行分类,将上报信息存入数据库。
图3 信息上报系统工作流程图
(6)消息推送:系统服务器在业主、工作人员之间发布消息通知及小区相关公告信息,例如,状态反馈、失物招领、小区通知等。
(7)信息管理:业主上报的所有信息都将被记录,物业管理人员通过微信公众平台可以监管整个小区的上报信息,对于不合理的上报信息进行及时处理。
在系统运行时,业主在微信客户端发送信息上报的请求,将语音、图片等数据上传至微信服务器,微信服务器将数据包转发至系统服务器;在对转发数据进行解析后,请求微信服务器接口,下载语音、图片到本地保存,同时将数据信息存入系统数据库。系统服务器根据上报信息的类别,调用微信服务器的消息推送接口,向相关工作人员的微信客户端推送待处理消息;待工作人员处理完成后,向系统服务器提交处理结果,经系统服务器将数据存入数据库,向业主的微信客户端推送处理结果信息,业主将确认、评价信息反馈到系统服务器,并存入系统数据库,整个上报过程结束。
其系统工作流程如图3所示。
信息上报作为基于微信公众平台的小区信息上报系统设计的核心功能,集成了微信开发最为核心的技术——微信内的网页开发工具包,简称JS-SDK,它提供了图片上传与下载接口、语音上传与下载接口、地理位置信息接口等,主要是为了满足对信息采集的多方面要求,通过信息上报功能,可以全方位的采集各类信息,主要有文字,语音,图片,地理位置[4]。在使用过程中,业主可以根据需要,上报自己所采集到的信息,工作人员对于已经对业主上报的问题处理完成后,也可以采集图片,语音等数据,将其反馈至系统服务器,其操作过程与业主相似。
JS-SDK使用步骤如下:
1.绑定域名,即在微信公众号平台配置系统服务器所绑定的域名;
2.在H5页面引入微信官方的JS文件库;
3.通过JS库中的wx.config()函数接口注入权限验证配置;
4.通过JS库中的wx.ready()接口处理成功验证;
5.通过JS库中的wx.error()接口处理失败验证;
该模块利用微信公众平台提供的语音上传接口,可以方便的调用手机的录音功能,将用户说的话录制成语音,上传到微信服务器,再利用平台提供的下载接口将语音文件下载到系统服务器上,实现语音数据的永久性保存,同时将语音在系统服务器上存放的地址与其他文字信息一起存入数据库中,这样就可以有效保存上报信息的所有数据。对于图片的处理,和语音上传一致,这里不再赘述。
信息上报模块除了调用微信公众号开发平台提供的多媒体上传接口外,还需要将从住户或者业主采集到的信息进行初步的“加工”,因为这些数据是零散的,直接将其上传到系统服务器则需要对这些数据进行处理,增加了系统服务器的“负担”,所以在信息上报模块将这些数据进行JSON序列化处理[5],形成一个个的“报单”,处理完成后交由数据处理模块解析,既降低了模块之间的耦合度,也提高了数据处理的效率。
数据处理主要负责各个模块信息的解析、分类、汇总。这里只是在上传语音、图片等多媒体素材时与微信服务器进行通信,即业主有提交图片或者语音信息,那么微信服务器会将这个媒体文件的MediaID(媒体文件ID)返回给系统服务器,在系统服务器端进而调用微信公众平台的下载接口将文件下载到本地进行存储[6],业主所提交的这些文字、语音、图片、地理位置等信息,就是上文提到信息上报模块之后的“报单”;其他非媒体素材的上报信息不经过微信服务器,直接提交到信息上报系统服务器,信息上报系统服务器收到的“报单”内容如下:
该“报单”包含:上报用户的OpenID、上报信息的分类标签Keywords、文字描述Desc、语音/图片MediaID、地理位置信息Address。在收到“报单”之后,信息上报系统服务器要做的是解析其中的数据,按照“报单”中的标签进行分类并生成一个唯一的ID编号存储到数据库中进行保存,不同的“报单”以唯一标识的ID编号进行区分,之后调用消息分发模块将该消息推送指定的工作人员,工作人员点击该链接查看该消息后,可以选择进行处理或者忽略,若选择处理,则该上报信息就会被锁定,并且通知上报者已有工作人员确认处理了这一条信息,其他工作人员无法再进行确认处理。
在工作人员处理完成后,同样可以将语音,文字,图片反馈到系统服务器,系统服务器查询上报这则消息的业主向其定向推送处理结果,上报者可以对“反馈单”进行确认完成、评价等操作,为了方便物业的管理,在整个上报过程中,物业管理人员可以对所有上报的信息进行核实和监控,其中的每一个环节都会被记录,以便物业后期对信息进行汇总和统计。
消息分发是信息上报系统提供了不同的用户对应于不同的角色任务,能够上报、处理和接收的信息不尽相同。为了使消息分发适应业务的需求并增加消息分发的灵活性,这里是采用流行的基于角色的访问控制(RBAC)模式,简化了权限管理,能够有效的实现不同角色的权限控制[7],不同角色各司其职,接收各自的消息互补干扰,很好的维护了消息分发的稳定性和可靠性。本系统的主要角色有物业管理人员,工作人员,业主,其权限分别如下:
物业管理人员:查看/发布/删除小区公告、查看上报信息、添加/删除工作人员。
工作人员:查看小区公告、接收/查看/反馈上报信息。
业主:查看小区公告、提交/查询/评价上报信息。
在消息分发的时候,消息分发模块会根据收到的信息,解析出这条信息应该由某个人或者某类人接收,所以这个分发过程可以是一对一(单发),也可以是一对多(群发)。对于业主上报的信息,首先由信息上报系统服务器解析出“接收者标签”,然后根据“接收者标签”去数据库服务器查询这个标签对应的“接收者角色”,再由角色确定到具体的“接收者”,由于可以实现定义好“标签-角色-人员”视图,所以整个查询过程并不耗时。当有了这个“接收者”(本质上为用户的OpenID)之后,调用微信公众平台提供的消息推送接口,向其以POST方式提交如下格式的JSON字符串:
图4 信息上报系统运行页面
这里的touser表示接收消息者,里面填的是工作人员的OpenID,类型为文本类型,以及相关信息页面的URL,就可以将信息文字形式发送至工作人员的微信公众号上。工作人员只需在公众号内点击链接或者图文消息即可查看到业主提交的上报信息[8],进行相应的处理。
当工作人员处理完成后,可以将处理结果(语音、文字、图片)提交到系统服务器,系统服务器则根据“报单”的ID编号确定上报者的OpenID,调用微信消息推送接口向其单发处理结果。
本系统已稳定地运行于常州市新北区府琛花园小区中。通过微信客户端的添加朋友或者扫一扫功能关注信息上报系统服务号。关注成功之后绑定用户信息,即可使用信息上报系统。图4为基于微信公众平台的小区信息上报系统运行界面,(a)为信息上报页面,(b)为上报问题状态页面,(c)为业主个人信息页面。
基于微信公众平台的小区信息上报系统,实现了沟通及时性、处理方便性,利于物业集中管理住宅小区,同时充分调动业主管理小区事务的积极性,实现业主与物业沟通“零距离”。通过实际应用,证明了系统的可行性和可用性,达到了系统设计的目的和使用需求,提高了住宅小区管理的效率,促使业主积极参与到小区建设和管理之中。
[1]许静.住宅小区智能化建设 [J].中外企业家,2013(29):79-80.Xu Jing.Intelligent Construction of Residential[J].Chinese and Foreign Entrepreneurs,2013(29):79-80.
[2]赵展浩.基于微信公众平台的智能校园信息平台设计与实现[J].计算机时代,2016(5):38-40.Zhao Zhanhao.Design and Implementation of Intelligent Campus Information Platform Based on WeChat Platform[J].The Computer Age,2016(5):38-40.
[3]陶国荣.jQuery Mobile权威指南[M].上海:机械工业出版社,2012.Tao Guorong.The Definitive Guide of jQuery Mobile[M].Shanghai:China Machine Press,2012.
[4]刘斌.HTML5-未来网络应用的核心技术研究[J].自动化与仪器仪表,2010(4):30-33.Liu Bing.HTML5-Research on the Core Technology of Future Network Application[J].Automation&Instrumentation,2010(4):30-33.
[5]郭庆燕,张敏,杨贤栋.JQuery Ajax异步处理JSON数据实现气象图片的显示[J].计算机应用与软件,2016,33(6):20-22.Guo Qingyan,Zhang Min,Yang Xiandong.JQuery Ajax Asynchronous Processing of JSON Data to Achieve the Display of Weather Images[J].Computer Applications and Software,2016,33(6):20-22.
[6]陈晓罗.基于微信公众平台的高校师生信息互动平台研究与实现[J].吉林省教育学院学报旬刊,2013(9):98-99.Chen Xiaoluo.Research and Realization of Information Interaction Platform Between Teachers and Students Based on WeChat Platform [J].Journal of Jilin Province Institute of Education,2013(9):98-99.
[7]温号,王萍,徐萌萌,等.基于微信公众平台的食品团购管理系统设计[J].微处理机,2015(6):65-69.Wen Hao,Wang Ping,Xu Mengmeng,etc.Design of Food Group Purchase Management System Based on WeChat[J].Microprocessor,2015(6):65-69.
[8]覃介右,谷岳.HTML5触摸界面设计与开发[M].北京:人民邮电出版社,2014.Tan Jieyou,Gu Yue.HTML5 Touch Interface Design and Development[M].Beijing:Posts and Telecommunications Press,2014.
Design of Information Reporting System
for Residential District Based on WeChat Public Platform
Tao Youxian,Wu Longying,Bai Hongxi,Mou Yan
(College of Internet of Things Engineering,Hohai University,Jiangsu Changzhou,213022,China)
In order to facilitate the communication between the property management and the owners in residential district and improve the level of property services,the information reporting system for residential district based on WeChat platform is developed.This system is based on Tencent's WeChat public development platform,using HTML5,JSON data processing and WeChat public development API,realizing the collection,exchange and message-pushing of the data,photos,voices and so on.The system has been operated in some residential district for one year,helping property management and owners with the notification posting,sanitation cleaning,security patroling,water and electricity repairing,and lost thing finding,which effectively improves the residential district property service quality.
WeChat public platform;Information reporting;HTML5;JSON data processing;WeChat official account;Property management
10.3969/j.issn.1002-2279.2017.04.011
A
1002-2279-(2017)04-0039-06
*项目来源:国家级大学生创新创业训练计划项目-基于微信平台的智能小区管家,项目编号:201510294097
陶友贤(1995—),男,安徽省马鞍山市人,学生,主研方向:智能信息处理理论与技术。
2017-01-11