网站首页  词典首页

请输入您要查询的论文:

 

标题 微信公众号订餐平台系统设计与实现
范文 周功建



摘 要:从微信公众号的开放应用入手,分析了基于公众号订餐平台系统的基本逻辑结构和前后台功能模块;详述了微信自定义菜单的设置和创建、消息的接收和发送、图文消息的后台管理与动态更新等功能模块的实现方法;对系统进行了效益评估,印证了微信订餐的可行性及商业价值。
关键词关键词:微信订餐; 微信公众平台; PHP;开发模式
DOIDOI:10.11907/rjdk.161155
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2016)008-0074-03
0 引言
微信公众平台是腾讯公司在微信的基础上新增的开放功能模块,用于实现微信与第三方平台的对接,提供内容更加丰富、功能更加全面的平台服务,相当于一个轻量级的开放App[1];开发者可以基于开放的数据接口进行一些应用开发,依托微信扩展商业应用。借助微信公众号的多媒体消息群发功能,可将企业营销推广活动或广告直接送达到关注用户手机,从而精准定位营销,具有开发简单、便捷、费用低等特点,应用前景非常广阔[1]。
1 系统分析
本系统在功能上继承了传统PC端的大部分功能,通过与微信公众号绑定,结合电话订餐和手机APP的灵活性,商家可以在微信公众平台上建立网上餐厅,消费者只需关注微信公众帐号[5]即可浏览某地域范围内众多商家网上餐厅的菜品信息,轻松完成下单;系统通过微信公众账号的群发功能,为活动商家推送图文促销信息,实现精准营销。
2 系统设计
2.1 系统逻辑结构
本系统采用典型的C/S网络架构,由客户端微信、微信公众号、开发者服务器、数据库服务器4部分组成。正常工作时,微信公众号相当于一个消息转发器,微信用户通过手机、平板等终端发送请求给微信公众号,微信公众号收到用户请求后将其组装成XML 格式的数据,通过POST 方式提交给开发者服务器[3];开发者服务器获取请求后从数据库中提取数据并响应给微信公众号,微信公众号再将数据响应给用户,从而完成订餐,如图1所示。
(1)微信公众号:作为引流的数据入口,一方面为关注用户提供一个浏览界面和订餐菜单,实现用户通过移动微信端选择餐厅、浏览菜品、下单;另一方面为商家用户提供一个在线餐厅展示界面,接受用户浏览和订餐,并群发推送促销信息,实现精准营销。
(2)开发者服务器:所有业务处理模块全在此实现,是整体应用系统建设的基础保障。一方面接收并处理用户请求,为用户提供在线注册、登陆、购买、下单等功能;另一方面为商家提供管理后台,在PC端以网页形式展现,包括添加和删减食物、处理订单、对注册用户进行分组管理、对后台数据库进行修改和维护等。
(3)数据库服务器:用于存储各种数据,如订单记录、菜品类型和价格、会员信息、商家信息、配送信息等。
2.2 系统功能模块设计
2.2.1 前台显示功能模块
前台显示功能模块如图2所示。
(1)最新美食:按时间顺序推荐,展示销量最高、最新、最热门等美食,按美食种类分类查看。
(2)用户中心:主要用于用户注册和登录,可在线修改个人资料,对已订餐店家进行留言和评论等。
(3)购物车:用户登录后,对感兴趣美食进行查询、下单购买。
(4)订单查询:用户登录后,可查询已生成的订单配送及成交情况。
(5)商家加盟:与有意向入驻平台的商家进行洽谈和联系。
2.2.2 后台处理功能模块
后台业务处理功能模块如图3所示。
(1)统计功能:统计显示在某个时间段的营业额、订单数量、顾客数量、商品销量额、配送员配送数量、访问量。
(2)订单管理:对未处理订单、已确认订单、成功订单、失败订单、已取消订单查看管理。
(3)店铺管理:建立店铺、管理店铺,对营业状态、配送、店铺营销进行管理,订单提醒管理、商品状态管理。
(4)客户管理:详细显示顾客个人信息、积分、充值记录、累计消费金额等功能;会员设置、会员充值、升级会员、退款、冻结会员等功能;恶意下单顾客移至黑名单功能。
(5)交流回复:顾客消费成功后可对店铺进行评论打分,商家收到留言评论等信息并及时回复。自动回复功能可编辑关键词、非关键词、图文素材、链接第三方接口。
(6)在线支付:支持会员在线充值、顾客在线付款。主要通过财付通和支付宝的支付端口支付。
(7)应用添加:添加快递查询、城市天气、火车票查询等应用功能。
(8)营销推广:可设置优惠券、大转盘抽奖、签到和积分等营销功能。
3 系统实现
3.1 开发环境
为了和微信公众平台的开放接口对接,采用Apache+Php+Mysql+Linux搭建開发者服务器, 用PHP5.5 Zend Studio开发业务模块、 MySQL5.5进行数据存储。商家后台管理需要IE 6.0及以上版本,用户手机端需要微信6.0及以上版本。
启用微信公众平台的开发者模式,首先登陆微信公众平台进行开发者服务器网址接入,接入后在开发者服务器上进行功能实现。
3.2 数据库设计
结合系统分析和功能模块实际,建立wxShop 数据库,内部主要数据见表1。
3.3 微信自定义菜单创建
平台是对微信公众号的二次开发实现。采用POST请求方式(使用https协议)连接到接口地址:https ://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN ,向微信服务器获得菜单接口[2]。Access_token对应公众号是全局唯一的票据,有效期是7200s,官方限制每日调用限额2000次。通过POST的特定结构体,实现在微信客户端创建自定义菜单,POST 的菜单数据为JSON 格式,具体过程详见官方开发者文档。
3.4 微信消息的接收和回复
微信目前支持图片消息、语音消息、文本消息、视频消息、链接消息、地理位置消息等6种。当用户向公众号发送消息时,微信服务器可自动识别消息种类,将消息按不同的格式包装成不同的XML数据包POST到开发者服务器上[4]。以图文消息$ newsTpl模板格式举例如下:
$newsTpl ="< xml >
< ToUserName > <! [CDATA[% s]] > < /ToUserName >
< FromUserName > <! [CDATA[% s]] > < /FromUserName >
< CreateTime > %s < /CreateTime >
< MsgType > <! [CDATA[news]] > < /MsgType >
< ArticleCount > 1 < /ArticleCount >
< Articles >
< item >
< Title > <! [CDATA[%s]] > < /Title >
< Description > <! [CDATA[% s]] > < /Description >
< PicUrl > <! [CDATA[%s]] > < /PicUrl >
< Url > <! [CDATA[%s]] > < /Url >
< /item >< /xml >"
微信官方提供了基于PHP的接口实现方案,程序员可根据需要实现消息接口代码,具体步骤如下:
(1) 接收微信服务器POST的数据:
$postStr = $GLOBALS["HTTP_RAW_POST_DATA" ];
(2)将$ postStr 载入到对象里:
$ postObj = simplexml_load_string( $ postStr,'SimpleXMLElement',LIBXML_NOCDATA)。
(3)获取消息:
$from Username = $postObj->From UserName; / /获取发送者账号信息
$toUsername = $postObj->ToUserName; / /获取开发者账号信息
$type = $postObj->MsgType; / /获取消息类型
$customevent = $postObj->Event; / /获取事件类型
$keyword = $postObj->Content; / /获取文本消息内容
开发者服务器获取到消息后,可根据消息类型分发给不同的功能模块处理,将结果重新封装成XML数据包格式,通过调用封装好的消息发送sendMsg 返回给微信服务器,由微信服务器解析XML数据返回给用户浏览。
3.5 图文消息动态更新
图文消息动态更新的重难点在于图片的保存和读取。管理员通过微信公众号后台管理界面增加新的图文消息时,如果有新的图片上传,被上传的图片url和消息内容将保存到数据库wxshop_news表的content字段中[3]。微信APP前端在读取遍历数据库时,需要通过正则表达式从content字段中将图片url 分离出来。图文消息动态更新的关键代码如下:
$result = $mysqli->query( " select id, title,description,content from wxshop_news where pid = 7 orderby id desc limit 1" ) ;
//按id 倒序查询pid 为7 的最新1 条消息的结果集
$rows = $result->fetch_assoc( ) ; //从结果集中获取数据赋给数组$ rows
if( preg_match( '/ < img. * src \ s* = \ s* [\ " | \']? \\s* ( [^ > \ " \ '\ s]* ) /i ',$ rows['content '],$ picArr) )
{$ picUrl = str _replace ( array ( " "; " ," '; " ) ,array( " \" " ," '" ) ,$ picArr[0]) ;
$ title = $ rows['title'];$ des = $ rows['description'];$ url = " http://localhost/weixin/index.php/news/detail/id/{ $ rows['id']} " ;}
$ resultStr = sprintf ( $ newsTpl,$ fromUsername, $ toUsername, $ time, $ title,$ des,$ picUrl,$ url) ;
echo $ resultStr
以上代码可实现1条消息的动态更新,如需要实现最新几条消息的动态更新,只需要在查询数据库时通过修改limit限制记录数重新遍历结果集即可,在此不再赘述。
4 系统效益评估
系统从消费者自助点击屏幕下单到商家接收订单都是全自动对接,有效改善了消费者点餐体验,节省了开支,有良好的市场前景,具体体现在:①微信信息订阅,消息推送及时,增加了店家和平台的知名度;②改善了餐饮商家的销售方式和渠道,降低了营销资源成本;③能为商家留住固有消费者、吸引新进消费者,增加平台和店家的营售收入;④充分满足了用户的订餐需求,方便快捷的特点提高了消费者的忠诚度;⑤促进了信息资源的整合,提高了订单的处理效率,降低了店家和消费者的时间成本。
5 结语
本文介绍了基于微信公众号订餐系统的基本逻辑结构和前后台功能板块、系统关键技术,对系统运营进行了效益评估。系统属于B2C中的经纪人模式,通過收取成交订单中介费用的方式实现盈利,也可以看作是O2O模式的应用。送餐(物流)由商家自行解决,平台只负责订餐功能的实现、更新、升级及售后服务质量监控。
通过实际运营发现系统仍有需完善的地方,主要是安全性问题。目前系统安全是通过一些控制语句去验证要登陆的用户身份,没有对网络中的数据进行加密,这样就不能对数据在传输过程中被攻击或者篡改进行有效防御,因此需要增加高级的安全技术来实现这些功能。只有不断完善网上订餐系统功能,才能让所有客户在一个互相信任和安全的环境中享受到订餐的乐趣。
参考文献:
[1] 腾讯公布2014 年第二季度及中期业绩[EB/OL].http://tech.qq.com/a/20140813/058951.htm,2014-08-13.
[2] 微信公众平台开发者文档. 自定义菜单创建接口[EB/OL].http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单创建接口, 2014-08- 11.
[3] 易伟. 微信公众平台服务号开发:揭秘九大高级接口[M]. 北京:机械工业出版社,2014.
[4] 夏凌云,韩立峰,王长庆. 利用微信公众平台打造校园信息移动发布平台[J]. 信息技术,2014(2):183-185.
[5] 方倍工作室. 微信公众平台开发最佳实践[M].北京:机械工业出版社,2014.
(责任编辑:杜能钢)
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/22 22:16:30