基于微信公众平台的高铁客运订餐服务系统设计与实现
2016-02-16黄兴建石修路黄其河
黄兴建石修路黄其河
(1西南交通大学交通运输与物流学院教授,四川成都610031;2、3西南交通大学交通运输与物流学院硕士研究生,四川成都610031)
基于微信公众平台的高铁客运订餐服务系统设计与实现
黄兴建1石修路2黄其河3
(1西南交通大学交通运输与物流学院教授,四川成都610031;2、3西南交通大学交通运输与物流学院硕士研究生,四川成都610031)
高速列车餐饮服务是高铁旅客服务的重要组成部分,目前以人工服务为主的配餐方式亟待改进,建立满足旅客要求的便捷式订餐系统将有利于提高服务质量和配送效率。微信公众平台以微信为依托,凭借广大的用户规模逐渐为众多开发者青睐,针对旅客订餐需求,以微信公众平台为基础搭建高速列车订餐系统。在微信公众平台与后台数据库实现对接的基础上,利用微网开发技术与PHP编程技术进行功能编辑,最终以微信公众号为载体实现列车订餐功能、在线支付功能、订单查询功能以及客服在线功能。
高铁订餐;微信公众号;微网开发技术;PHP编程
0 引言
随着铁路部门职能的转变,各职能部门自身业务处理能力和效率得到提高,面向社会公众服务意识不断增强[1]。近年来,客运部门在旅客日常客运服务方面虽然有所改善,但陈旧的服务模式依然满足不了旅客的要求,加强电子信息资源共享、打造特色便捷服务显得尤为重要。
微信作为移动互联网的入口,其用户数量呈现裂变式的增长速度,2013年7月,用户规模达到5亿[2]。以微信为载体进行铁路客运便捷服务开发,可以实现大规模的覆盖,从而免去用户重新下载APP的麻烦,而且节省了开发成本。目前,高速列车餐饮服务仍是采用人工配送的方式,不仅浪费了大量成本,而且收效甚微。对于铁路而言,开发一款以微信公众平台为依托的订餐服务系统,将有利于客运服务质量的提高。
1 列车订餐系统建设思路
信息的共享需要通畅的网络,而高速列车由于运行环境复杂导致车内移动网络时断时续,乘客无法有效地利用电子资源。通过对列车车厢进行无线网络覆盖或者增强列车移动信号保障网络畅通,是乘客利用订餐系统进行订餐的前提。
有了可靠的数据传输网络,基于微信公众平台的订餐系统通过调用公众平台的API接口,可以实现数据库与移动端以及移动端与移动端间的信息交互。当数据通过微信发送到微信公众平台,微信公众平台将数据上传到数据服务平台并由数据服务平台进行处理,然后通过访问后台数据库或者是通过在线客服对数据进行回复,从而完成一次完整的信息交互,具体建设思路如图1所示。
图1 高铁客运订餐系统建设思路
系统总体建设思路包括以下几个步骤:(1)在微信官网上申请一个公众账号,并对公众账号进行自定义菜单编辑。(2)通过PHP编程实现公众账号与已有数据服务平台的对接。(3)通过调用服务器将列车图文信息推送给用户,使用户对列车餐饮服务有一定了解。(4)通过进行微网站开发,使用户可以在线选购食物并通过电子钱包进行支付,将订单上传至数据库后,实现用户点餐信息的查询。(5)以微网站开发为基础,通过对客服API接口的调用,实现客服移动端与用户移动端之间的信息交互,从而使服务人员可以在线为旅客提供服务。
根据以上建设思路,可以构建一个集列车餐饮信息推送,在线点餐、支付,订单查询以及在线客服等功能于一身的高铁客运订餐服务类公众号。
2 列车订餐系统的分析与设计
2.1 订餐系统开发技术
WeChat+SAE+PHP+jQuery Mobile+ MySQL技术层次架构,采用B/S模式分为两大部分(A、新浪SAE服务器端;B、微信手机客户端),系统采用HTTP协议来进行数据传输。
新浪SAE服务器端:主要是完成数据交互和数据逻辑处理,该系统应用服务器端提供订餐的有关信息以及客服服务平台,包括座位信息、菜品图片、菜品名称、菜品价格、是否支付、所需菜品份数、订单添加时间以及客服服务信息等,通过微信内置浏览器进行访问。
微信手机客户端:利用微信公众号下置自定义菜单,进行指定功能服务。通过点击菜单进入服务网页,通过对MySQL数据库进行访问,查询所需信息并将信息返回给微信。微信终端第一步将数据库中储存的菜单信息以List View列于界面;第二步根据食物品类向用户提供检索功能,将检索到的信息响应微信终端,显示在手机界面;第三步将用户的点餐信息与支付信息上传至数据库,并向用户提供查询功能,将检索所得的订单信息显示在手机界面;第四步,用户可以将有关订单的疑问通过客服菜单上传至数据库,在客服人员作出相应解答后,及时将信息以微信消息的形式发送给用户。
2.2 订餐系统总体设计
系统的整体设计包括前端信息收集与后端数据服务平台两部分。前端信息收集部分包括微信客户端与微信公众平台,后端的数据服务平台主要由处理层、应用层以及数据访问层组成。前后端的数据传输主要通过移动网络或无线网络完成,前后端数据的交互通过微信公众平台API接口完成。
订餐系统的使用场景主要是:旅客通过微信客户端检索所在车次的订餐公众号并添加关注,在订餐时间内,旅客使用该系统点餐并通过电子钱包付款,服务人员根据订单添加时间以及付款状态及时进行配送并更新订单信息以便用户查询。系统的总体架构设计如图2所示。
图2 订餐系统的结构与运行流程设计
由于前端信息收集部分是建立在现有应用广泛的、成熟的微信公众平台上[3],本系统的设计重点主要是后端数据服务平台的功能实现。数据服务平台的设计主要采用易于扩展的架构模式[4],结合微信公众平台提供的API接口特点[5],为保证系统的可扩展性及可靠性,服务平台采用分层架构的模式进行设计。
数据服务平台的设计在逻辑上分为处理层、应用层、数据访问层三个层次,这三个层次分别针对不同的需求完成相应的功能。处理层主要对接收到的不同类型的信息进行判断与处理,根据不同的需求调用相应的API接口与应用层进行对接。应用层实现完成业务所需的功能,通过对数据访问层的查询与存储实现系统前端与后端的信息交互,根据需要调用API接口将信息传递给处理层,从而实现系统后端与前端的信息交互。数据访问层主要实现数据的存储与查询功能。
图3 订餐系统数据服务平台处理层接口
图4 订餐系统数据服务平台应用层设计
2.3 处理层设计
处理层通过调用微信公众平台API接口实现对用户需求的响应,并通过解析消息的XML描述格式对消息进行处理。为了保证系统的可扩展性与可靠性,处理层采用针对接口编程的面向对象设计原则进行设计。处理层的接口及各实现类的设计如图3所示。
处理层有统一的接口,接口提供了getFromUser、getToUser两种方法用于获取开发方、发送方的OpenId。微信通过对事件信息、文本信息、图片信息以及服务信息的响应,将XML格式的信息交由SAE服务器进行解释与处理,并将应用层的处理结果以XML格式发送回指定OPenId的微信客户端。
2.4 应用层设计
应用层主要以SAE网络服务器为主,在MySQL数据库与微信移动端之间通过功能编辑实现信息的上传下达。应用层的功能模块设计如图4所示,微信公众平台与SAE进行连接后,通过连接模块分别对餐饮信息推送、在线订餐、订单查询以及客服在线等模块进行调用,从而实现以微信客户端为窗口调用各功能的效果。
在线订餐、订单查询以及客服在线等模块均是通过与铁路内网相连接从而对数据访问层进行信息的录入与读取。其中,订餐模块建立在数据访问层与微信客户端双向连接的基础上,而查询模块则是以单向连接为基础。客服模块则是以微信客户端、数据访问层、微信客户端三方单向连接为基础,即用户与数据库之间建立单向连接:将用户发送的信息录入数据库;数据库与客服建立单向连接:数据库将信息推送给客服;客服与用户建立单向连接:客服将信息回复给用户。
3 列车订餐系统的实现
本系统是以微信公众平台为基础,故不需要再进行登录,根据需要选择所在班次的列车服务号进行关注即可进行操作。
3.1 连接模块设计实现
新浪SAE通过验证Token口令与微信公众平台实现连接,并定义程序responseMsg()对微信发送的信息进行响应,同时通过定义不同类型的事件响应程序满足对不同类型信息的响应。此程序的开发是以响应事件信息、文本信息以及图文信息为主[6],以下为连接模块的具体运作过程。
用户关注公众号时,后台服务器通过判断信息类型及时作出回复,以文本信息的形式发送内容为“欢迎关注G324号列车服务公众号。如果您有困难,请回复信息,我们的客服人员会及时向您解答,祝您旅途愉快!”的欢迎信息。
同理,当微信公众号接收到用户发送的文本信息后,会将内容为“你的问题已收到,会尽快给你回复,祝旅途愉快!”的信息推送给用户,并对客服模块进行调用,从而对问题进行处理。如果用户没有发送文本信息,而是通过直观的自定义菜单形式接受服务,后台服务器会根据具体的菜单选项调用相应的功能模块。
连接模块是所有功能模块的调度中心,它是服务器与用户之间沟通的基础。正是通过连接模块对各种信息进行辨认与解析,并以相应的格式完成信息的上传下达,才使得服务器与用户之间的沟通畅通无阻,从而奠定了所有功能充分实现的基础。
为了使程序得以更好地运行,将已编好的代码以index为名进行保存并上传,连接模块的代码即为index.php。
3.2 推送模块设计实现
当用户点击自定义菜单项“列车信息”时,服务器通过调用推送模块将已经编辑好的图文信息推送至微信公众号。推送模块主要是通过对自定义菜单的编辑与创建来实现的,具体过程如下所述。
根据微信公众平台提供的开发文档中有关自定义菜单API接口的说明,在自定义菜单编辑程序中,将Button的Name属性设置为“列车信息”,Type属性设置为“Click”,Key属性设置为“列车信息”。通过Internet对程序进行访问,创建点击事件类型、名为“列车信息”、关键字为“列车信息”的自定义菜单项。
当点击“列车信息”时,服务器将关键字“列车信息”提交至程序index.php中,通过switch case语句对关键字进行比对,在关键字与预设信息一致时触发图文信息推送事件,使用户得以接收到“列车简介”信息。
为了方便调用,推送模块下的程序命名为cj. php,与index.php上传至同一服务器中。
3.3 订餐及查询模块设计实现
订餐模块与查询模块均是以微网开发技术为支撑,利用jQuery Mobile与PHP编程得以实现[7]。用户通过使用微信内置浏览器访问微网站进行点餐,并将信息提交至数据库,最后通过查询菜单实时了解订单的处理情况,具体实现过程如下所述。
订餐模块的编辑以数据库信息读取与录入为主。通过Select From语句从指定表单中读取相应的菜品信息并按照规定格式在网页上显示,调用公共微网页模块进行嵌套,使用户界面更加舒适。点击相应菜品的添加按钮进行选购,通过记录按钮类型与点击次数识别用户点餐份数,从而调用支付API接口对费用总额进行合计与支付[8]。
支付完成后,订单随即通过Insert Into语句写入数据库,并将订单信息按照座位号、OpenId、菜品名、菜价、份数、支付状态、配送情况以及添加时间等进行排列。当用户点击“订单查询”子菜单时,服务器将信息读取出来并嵌套进公共微网页模块,以网页的形式显示到指定OpenId的微信端。
为了方便对订餐模块与查询模块的调用与区分,订餐模块主程序以menu.php格式进行上传,查询模块主程序以query.php格式上传。
3.4 客服模块设计实现
客服模块包含三段程序,分别是信息显示程序message.php、单信息回复程序post.php以及信息发送程序send.php。运作流程如下:客服人员通过点击客服菜单进入服务网页,在浏览了用户提交的问题后,逐一进行回复并提交发送。各程序的实现过程如下所述。
程序message.php在与数据库实现连接的基础上,将用户发送的问题通过Insert Into语句写入表中,并通过Select From语句将所有信息按照每页排列九条待回复信息的形式显示在客服服务端,客服人员选择待回复信息并点击按钮进入单信息回复界面。
程序post.php将待回复信息进行完整展示,并向客服人员提供信息回复文本框以及“提交”和“取消”按钮。客服将服务信息输入文本框点击“提交”按钮,信息经过封装后提交到send.php程序。通过调用客服API接口,程序send.php将文本信息发送到OpenId为FromUserName的用户微信上。发送成功后,页面跳转到提示界面,点击“back”按钮,用户可回到单信息回复界面从而可以实现多次回复[9]。3.5真机测试
由于微信公众号在订阅号与服务号之间有明确的功能权限区分,个人只能申请订阅号,但为了完整演示系统功能,本系统只能以测试号的形式进行。
图5是用户关注公众号时的界面,图6为用户点击“列车信息”菜单时收到的图文信息界面,图7为用户进入“我要点餐”子菜单并根据需求进行分类检索的界面。
图5 关注界面
图6 列车信息
图7 列车点餐
图8为用户点击“订单查询”子菜单时,服务器反馈信息界面,图9即为客服在线功能的实现过程界面。
图8 我的订单
图9 客服在线
4 系统评价
以微信公众平台为载体的高铁客运订餐服务系统一反往日微信在营销方面广泛应用的常态,大胆将高铁客运服务与移动互联网相结合,不仅对微信的应用提供了一种新思路,同时也对传统的铁路客运服务模式进行了创新。新系统不仅方便用户、降低人力资源成本,同时也节约大量开发资金。较之传统的服务模式,微信以其高粘性更为用户所青睐。
尽管如此,该系统仍存在许多问题亟待解决。随着移动网络的发展,信息安全问题更加突出,如何在内外网之间建立安全的连接模式还有待于进一步研究;其次,如何在高速行驶的列车上覆盖稳定的无线网络是系统使用的主要问题。
总体看来,基于微信公众平台的高铁客运订餐服务系统的优势还是十分突出的。一旦主要问题得以解决,以微信作为基石打造铁路服务平台,必将为铁路服务事业带来巨大的活力。
5 结束语
随着信息化时代的深入,国民经济与社会发展给铁路运输服务部门提出了新的要求:不仅要致力于为旅客提供优质服务,还要充分把握住时代发展的趋势,利用一切资源建立起便捷式服务模式。本次研究工作以微信公众平台为基础,在移动互联网时代对高铁旅客运输服务模式提出了新的建设思路并针对高铁客运点餐服务系统进行设计,通过微信公众平台实现了预想的多项功能。虽然系统仍存在问题,但是经过完善后必将更加适合在铁路服务领域应用。
[1]邱忠权,候雪莉,张德新.基于Android系统的列车移动信息服务平台设计与订餐系统的实现[J].交通运输工程与信息学报,2015(1): 18-25
[2]余佩颖.微信电子商务模式探讨[J].软件,2013(10):124-125
[3]魏永梁,陈恒.线路病害数据智能上报系统的设计与实现[J].铁道建筑技术,2015(10):118-121
[4]Jeffrey L.Whitten,Lonnie D.Bentley.系统分析与设计方法[M].肖刚,孙慧,译.7版.北京:机械工业出版社,2007
[5]程杰.大话设计模式[M].北京:清华大学出版社,2007
[6]方倍工作室.微信公众平台开发最佳实践[M].北京:机械工业出版社,2014
[7]李柯泉.构建跨平台APP:jQuery Mobile移动应用实战[M].北京:清华大学出版社,2014
[8]闫小坤.微信公众平台开发基础与实战[M].北京:机械工业出版社,2014
[9]易伟.微信公众平台服务号开发:揭秘九大高级接口[M].北京:机械工业出版社,2014
(责任编辑:魏艳红)
Research on the Ordering Service System of High Speed Railway Based on WeChat
HUANG Xingjian1,SHI Xiulu2,HUANG Qihe3
(1 Southwest Jiaotong University,School of Transportation and Logistics,Professor,Sichuan Chengdu 610031,China;2,3 Southwest Jiaotong University,School of Transportation and Logistics,Master Degree Candidate,Sichuan Chengdu 610031,China)
Ordering service system is an important part of high speed railway service,currently dominated by artificial service needs to be improved urgently.In order to satisfy the passenger demand,WeChat is chosen to be the platform because of its vast user number.Based on the connection between WeChat platform and the ordering service backstage database,using WeChat and PHP development technology,the online customer service function like ordering,payment,inquiry are achieved.
high speed railway ordering;WeChat public number;Micro network development technology;PHP
A
:1004-9746(2016)03-0042-06
2016-05-15)