毕业论文易生活微信公众平台_第1页
毕业论文易生活微信公众平台_第2页
毕业论文易生活微信公众平台_第3页
毕业论文易生活微信公众平台_第4页
毕业论文易生活微信公众平台_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文_易生活微信公众平台【精品】开题报告Ⅰ河南大学本科毕业论文易生活微信公众平台EasyLifeMicro-channelPublicPlatform河南大学毕业设计(论文、创作)开题报告学号1045040455姓名沈冬冬导师姓名职称梁胜彬(讲师)开题时间2013年10月15日课题题目易生活微信公众平台课题来源□导师指定□自定■其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1.目的:将以往以发传单方式进行打折促销的方式建立在手机端的微信上进行,以微信公众平台的方式呈现,只需要关注该微信公众平台,即可获得打折促销商家的信息。2.意义:改变了传统的靠发传单进行促销的方式,用微信公众平台进行优惠信息发布以及优惠券的发放,不仅节约商家的促销成本,而且低碳环保。3.现状:微信是唯一渗透所有人群的营销利器,与以往那些互联网产品不同的是,微信用户全部是手机用户,未来世界,方寸之间智能手机将影响世界格局,从出租车司机到扫地阿姨,从初中生到退休老人,从大学生到上市公司董事长等等,从没有一款产品能像微信这样渗透到各类人群中。微信已经深入人们生活的方方面面,具有超强的实用性,几乎每个人都在使用,所以微信营销价值无法估量。研究目标、研究内容和准备解决的问题:1.目标:通过调用微信公众平台提供的接口,实现关注该公众账号的微信用户可以通过微信获得商家提供的优惠信息,然后在手机端领取优惠券,到商铺进行消费时只需提供优惠券号即可享受优惠。2.内容:需要做一个易生活的后台管理系统,功能包括商户管理、活动管理、礼物管理、兑换管理、类别管理、用户管理、用户审查以及系统设置。3.准备解决的问题:如何调用微信公众平台提供的接口,如何做好优惠内容在手机端格式正确的显示,如何将优惠信息保存到数据库在读取出来时按原样显示。开题报告Ⅱ拟采取的方法、技术或设计(开发)工具:手机端需要:市场上流行的大多智能手机,已安装微信5.0以上版本后台管理平台:WindowsXP,Windows7等开发工具和语言:开发工具拟采用eclipse,语言采用java数据库:拟采用MySQL服务器:拟采用tomcat预期成果:1.源程序2.毕业论文进度计划与阶段要求:1.数据库设计;2.框架的搭建,Entity类建立;3.service层和dao层基本增删改查实现;4.前台页面的设计及实现;5.后台controller层业务逻辑实现。开题报告Ⅲ开题前收集的资料和参考文献(5-8种)[1]MartyHall,LarryBrown.Servlet与JSP核心编程(第二版).赵学良,译。北京清华大学学研大厦A座:清华大学出版社,2008年第6月.[2]许勇,王黎等.Struts2+Hibernate+Spring整合开发深入剖析与典例应用.北京清华大学学研大厦A座:清华大学出版社,2013年7月.[3]DhrubojyotiKayal.JavaEE设计模式Spring企业级开发最佳实践.张平,龚波,李平方等译.人民邮电出版社,2010年2月[4]常建功,王向华.搞定J2EE核心技术与企业应用.电子工业出版社,2012年6月.[5]GaryMak,JoshLong,DanielRubio.Spring攻略(第2版).人民邮电出版社,2012年3月.[6]程小勇,李建国.微信营销解密.机械工业出版社,2013年7月指导教师对开题报告的意见:同意按开题报告的题目和设计思路开题。指导教师签名:2013年11月5日任务书河南大学2014届毕业论文(设计、创作)任务书(导师根据学生的开题报告填写)题目名称易生活微信公众平台学院软件学院学生姓名沈冬冬所学专业软件工程学号1045040455毕业论文(设计、创作)要求1.设计内容通过调用微信接口用微信作为中间媒介实现用户跟本网站的交互。2.基本要求利用微信接口实现该网站与用户之间信息的交互。对于该微信公众平台,要求至少实现以下内容:(1)后台管理。(2)微信交互。3.要解决的问题如何在微信公众平台接口调用中判断消息类型,还有自定义菜单的创建及菜单事件的响应。4.要求提交的成果(1)毕业设计源程序(2)论文 指导教师签名: 2013年12月5日中期检查表河南大学2014届毕业设计(论文、创作)中期检查表(导师只填写评语,其他由学生填写)题目名称:易生活微信公众平台学院软件学院学生姓名沈冬冬所学专业软件工程学号104540455一、毕业设计(论文、创作)进展情况目前,项目设计的大致框架已基本完成,程序能够正常运行。但是还有一部分没有实现,有待进一步完善。已经完成的模块有后台管理系统中的会员管理、商户管理、活动管理等。经测试模块运行基本正常,但还有少量bug。二、毕业设计(论文、创作)存在的问题及解决方案存在的问题:微信公众平台接口调用中判断消息类型比较繁琐,还有自定义菜单的创建及菜单事件的响应。解决方案:将所有消息进行总结分析,将各种消息以及自定义菜单统统封装成pojo类进行操作。三、学生本人对毕业设计阶段所做工作及进展情况的评价在做毕业设计期间,我积极认真,严格要求自己,并在代码设计过程中及时解决了遇到的大部分问题。但是在微信公众平台接口调用中判断消息类型以及自定义菜单的创建及菜单事件的响应中遇到问题,目前正在通过学过的知识和搜集的参考资料,想办法尽快解决这个问题。四、指导教师对学生毕业设计(论文、创作)中期检查的评语根据该生提交的毕业设计成果,以及该生和导师交流的情况,同意该生通过中期检查。允许该生根据本人搜集的参考资料和已经完成的设计成果,开始整理毕业论文文档。指导教师签名2014年3月5日综合成绩表(一)河南大学2014届毕业论文(设计、创作)教师评阅成绩表学院名称:计算机与信息工程学院学号1045040455姓名沈冬冬专业软件工程指导教师梁胜彬(讲师)教师评阅平均得分论文题目易生活微信公众平台指导教师评语及得分指导教师评语该生的选题有现实意义,按时完成了所要求的功能。论文叙述条理清晰、详略得当,是一篇优秀的本科论文。评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分指导教师签名2014年5月18日评阅教师评语及评分评阅教师评语该生论文结构合理,论文语句流畅,思路清晰,表达准确,是一篇优秀的本科论文。评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述满分15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分评阅教师签名2013年5月19日此表由教师填写综合成绩表(二)河南大学2014届毕业论文(设计、创作)综合成绩表学号11012345姓名韩亮所在学院软件学院答辩委员会评语及评分答辩委员会评语该生答辩过程中思路清晰,反应敏捷,论文结构合理,条理清楚,达到本科毕业设计和毕业论文要求的标准,经答辩小组评议,同意通过论文答辩。答辩委员签字(4名以上):2014年5月22日评分项目分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分答辩委员会主任签字:2014年5月22日毕业论文(设计、创作)成绩综合评定(百分制):分(教师评阅表平均成绩占40%,答辩成绩占60%)综合评定等级(优、良、中、差):备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。承诺书河南大学本科生毕业论文(设计、创作)承诺书论文题目易生活微信公众平台姓名沈冬冬所学专业软件工程学号1045040455完成时间2014年3月20日指导教师姓名职称梁胜彬(讲师)承诺内容:1.本毕业论文(设计、创作)是学生沈冬冬在导师梁胜彬的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2.学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:该项目属公司项目,请勿将该成果作为商业用途。学生签名:指导教师签名:2014年5月20日2014年5月20日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。河南大学本科毕业生学士学位论文目录目录 1摘要 3ABSTRACT 4前言 5第1章绪论 61.1课题来源 61.2课题背景 6第2章任务描述 72.1 目标 72.1.1 作用范围 72.1.2 应用目标 72.2 运行环境 82.2.1 硬件设备 82.2.2 支持软件 8第3章数据描述 93.1 静态数据 93.1.1 用户方面 93.1.2 系统方面 93.2 动态数据 93.2.1 输入数据 93.2.2 输出数据 93.3 数据流图 103.3.1 用户基本信息数据流图 103.3.2 用户金币数据流图 10第4章功能需求 114.1 功能划分 114.1.1 后台管理功能 114.1.2 手机微信功能 114.2 状态图 124.2.1 手机微信端的状态图 124.2.2 后台管理功能状态图 13第5章概要设计 145.1 总体设计 145.1.1 总体结构 145.1.2 功能分配 145.2 数据结构设计 155.2.1 逻辑结构设计 155.2.2 物理结构设计 155.2.3 数据结构和程序关系 175.3 运行设计 175.3.1 运行模块组合 175.3.2 运行控制 185.3.3 运行时间 185.4 出错处理设计 185.4.1 数据库连接错误 195.4.2 输入错误 195.4.3 乱码 195.4.4 操作错误 195.4.5 不可预知错误 195.5 安全保密设计 195.5.1 系统安全 195.5.2 数据安全 205.6 维护设计 20第6章详细设计 216.1 后台管理 216.1.1 商户管理 216.1.2 活动管理 236.1.3 礼物管理 246.1.4 兑换管理 246.1.5 商圈管理 246.1.6 类别管理 266.1.7 用户管理 266.1.8 用户审查 276.1.9 图片链接 286.1.10 系统设置 296.2 微信交互 316.2.1 易生活门户 316.2.2 签约商户 326.2.3 热门活动 336.2.4 金币兑换 346.2.5 热门工具 346.2.6 我的会员卡 356.2.7 我的金币 366.2.8 我的资料 366.2.9 我的交友 366.2.10 我的关注 376.2.11 签到有礼 376.3 微信接口的调用 396.3.1 消息及消息处理工具的封装 396.3.2 创建公众帐号后台接口程序 426.3.3 各种消息的接收与响应 45结论 50参考文献 51河南大学本科毕业生学士学位论文摘要近些年,传统广告的效果不断下降,而随着移动互联网,尤其是微信的出现,企业对于广告的需求也开始发生变化。本文首先分析了传统广告效果下降的原因,然后介绍了一种全新的市场营销方式——微信营销。在此基础上,微信公众平台就诞生了。微信营销遍布各个领域。易生活微信公众平台只是众多领域中的冰山一角。该平台设计部分基于Eclipse平台,采用Java语言和MySQL数据库,主要实现后台管理和以微信作为中间媒介实现网站与用户的交互的二大核心需求。关键词微信;公众平台;生活服务;河南大学本科毕业生学士学位论文ABSTRACTInrecentyears,Theeffectofthedecliningtraditionaladvertising,withmobileInternet,especiallytheemergenceofmicro-channel,Companieshavebeguntochangethedemandforadvertising.Thispaperanalyzesthereasonsforthedeclineoftraditionaladvertisingeffectiveness,thenIntroducedanewmarketingapproach,Micro-channelmarketing.Onthebasisoftheintroduction,Micro-channelpublicplatformwasborn.Micro-channelmarketingacrossallareas.Easylifemicro-channelpublicplatformisjusttipoftheiceberginmanyareas.TheplatformisbasedontheEclipseplatformdesignsection,usingJavalanguageandtheMySQLdatabase.Themainachievementofthebackgroundtomicro-manageandrealizetheletterasanintermediarysitesthatinteractwiththeuser'stwomajorcorerequirements.Keywords:Micro-channel;Publicplatform;LivingServices前言近些年,传统广告的效果不断下降,而随着移动互联网,尤其是微信公众平台的出现,企业对于广告的需求也开始发生变化。微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这一平台,个人和企业都可以打造一个微信的公众号,可以群发文字、图片、语音、视频、图文消息五个类别的内容。目前微信公众平台支持PC,移动互联网网页登录,并可以绑定私人帐号进行群发信息。微信公众平台是一个自媒体平台,它是微信系统的重要组成部分,微信整个板块包含个人微信、二维码、公众平台。微信公众平台是腾讯公司布局电商网络的重要一步,2014年,腾讯公司将其升级为公司战略级。微信公众平台分为微信大陆版与微信海外版。第51页第1章绪论随着移动互联网,尤其是微信的出现,企业对于广告的需求也开始发生着变化。微信营销越来越受到人们的重视。该文提出了一个易生活微信公众平台,该平台将以往用发传单方式进行打折促销的方式建立在手机端的微信上进行,以微信公众平台的方式呈现,只需要关注该微信公众平台,即可获得打折促销商家的信息可见,意义在于用微信公众平台进行优惠信息发布以及优惠券的发放,不仅节约商家的促销成本,而且低碳环保。1.1课题来源该课题为自选课题。1.2课题背景众所周知,微信是唯一渗透所有人群的营销利器,与以往那些互联网产品不同的是,微信用户全部是手机用户,未来世界,方寸之间智能手机将影响世界格局,从出租车司机到扫地阿姨,从初中生到退休老人,从大学生到上市公司董事长等等,从没有一款产品能像微信这样渗透到各类人群中。微信已经深入人们生活的方方面面,具有超强的实用性,几乎每个人都在使用,所以微信营销价值无法估量。……第2章任务描述经过需求分析初步得到本平台需要完成的任务。目标该部分主要描述本平台的预期目标。作用范围系统后台管理包括主要的功能:商铺管理功能(包括:查询、增加、删除和修改)、类别管理功能(包括:查询、增加、删除和修改)、热门活动管理功能(包括:查询、增加、删除和修改)、礼物管理功能(包括:查询、增加、删除和修改)、兑换管理功能(包括:查询、增加、删除和修改)、带链接的图片管理功能(包括:查询、增加、删除和修改)、用户管理、用户审查和系统设置等功能,可以满足后台管理员的需要。手机微信端包括主要的功能:查看商家优惠信息、领取优惠券、关注商户、查看热门活动信息、金币兑换礼物、热门工具查询、会员卡查询、金币查询、资料完善和查看、交友功能、查看已关注的商户、签到赚金币等功能,可以满足广大微信用户对本平台需要的功能。后台管理系统预期的目的是做成交互式的网页,方便服务器和浏览器端之间的信息同步。通过后台管理,管理员能够及时上传更多优惠信息和热门活动,使已关注该平台的微信用户能最快最大化的接收到当前最新的信息。应用目标易生活杭州是一个微信公众平台。已关注该平台的微信用户可以查看商家优惠信息、领取优惠券、关注商户、查看热门活动信息、金币兑换礼物、热门工具查询、会员卡查询、金币查询、资料完善和查看、交友和签到。后台管理员能够管理商家优惠信息和热门活动信息、还可以增加或删除类别和商圈信息、以及礼物的增加、删除和发货、审核用户头像,对于不健康或是不利于社会稳定的头像能进行重置操作和系统设置等等运行环境该平台的运行环境要求不高,下面从硬件和软件两方面说明。硬件设备本系统在本地机上进行开发、测试。然后部署到远程服务中,设备主要是服务器和本地机。服务器处理器型号及内存容量:双核3.0GHz以上CPU,4G以上RAM外存容量、媒体及其存储格式、设备的型号及数量:硬盘500G以上输入级输出设备的型号和数量,联机或脱机:考虑到数据的安全性问题,要求使用磁盘阵列。本地机处理器型号及内存容量:双核2.5GHz以上CPU,2G以上RAM外存容量、媒体及其存储格式、设备的型号及数量:硬盘500G以上支持软件操作系统:利用WINDOWS操作系统进行开发(Win7/WinXP)开发软件前台开发工具使用:AdobeDreamweaverCS6后台开发工具使用:Eclipse应用服务器使用:Tomcat第3章数据描述经过需求分析初步得到本平台需要用到的数据。静态数据静态数据就是后面不会发生更该的数据。用户方面用户基本信息,包括用户姓名、用户性别、用户电话号码、用户QQ号、用户生日、用户地址用户头像用户使用信息,包括用户ID、用户标识、用户会员卡号、用户金币总数用户其它信息,包括头像审查标志信息系统方面页面设计数据,包括页面内容、填出对话框内容、链接地址等数据。动态数据动态数据则是后面操作中会不断发生变化的数据。输入数据用户完善资料时输入的基本信息等输出数据用户查询自己当前的金币数信息等数据流图简单的数据流图更容易看到数据的动向。用户基本信息数据流图用户的基本信息数据在整个平台的变化如图3-3-1所示。用户用户易生活微信公众平台数据库完善资料审核通过读取信息查看资料图3-3-1用户信息数据流图用户金币数据流图用户的金币数在整个平台的变化如图3-3-2所示。用户用户数据库金币增加金币减少签到消费兑换增加图3-3-2用户金币数据流图第4章功能需求 功能需求部分对该系统进行了详细分析,然后划出要实现的模块,每个模块都进行了具体的设计,包括需要输入什么数据,要得到什么结果,最后应输出什么。功能划分功能划分主要包括了后台管理功能和微信前段功能。后台管理功能商户管理:对商户信息的增加、删除、修改和查看等。活动管理:对热门活动信息的增加、删除、修改和查看等。礼物管理:对礼物信息的增加、删除、修改和查看等。兑换管理:兑换信息的查看和兑换物品的发货等。商圈管理:对商圈信息的增加、删除、修改和查看等。类别管理:对类别信息的增加、删除、修改和查看等。用户管理:对用户基本信息的查看等。用户审查:对刚更新头像的用户进行头像审查等。图片管理:对带链接的图片的增加、删除、修改和查看等。系统设置:修改登录密码、设置签到奖励金币和重置商户登录密码等。手机微信功能易生活门户模块:签约商户、热门活动、礼品兑换、交友和关注商户。签约商户模块:查看商户信息,领取优惠券和关注商户。热门活动模块:查看热门活动信息。金币兑换模块:金币兑换礼物。热门工具模块:快递、违章、公交和大巴等信息。我的会员卡模块:查看会员卡号。我的金币模块:查看当前金币以及最近五次金币变动信息。我的资料模块:查看、添加及更新个人资料。我的关注模块:查看已关注的商户信息及取消关注。我的交友模块:寻找好友和查看已结交好友的基本信息。签到有礼模块:签到奖励金币。状态图该部分描述了用户对各个事件反应的动态行为,显示了用户实体如何根据当前所处的状态对不同的事件做出反应的。手机微信端的状态图手机微信用户状态图如图4-2-1所示。用户自定义菜单用户自定义菜单微信公众平台关注完善资料数据更新其它服务数据更新数据查询后台管理功能状态图后台管理员状态图如图4-2-2所示管理员管理员输入登录地址登录页面管理员登录登录失败成功管理后台数据更新图4-2-2后台管理员状态图第5章概要设计总体设计下面来介绍一下本系统的总体设计思路。总体结构首先是结构图如图5-1-1所示。易生活微信公众平台易生活微信公众平台微信前端后台管理信息管理数据更新系统设置资料更新其它服务图5-1-1总体结构图功能分配通过对上面功能需求的分析总结得出,各项功能需求的实现同各块程序的分配关系如表5-1-2所示。表5-1-2功能分配表商户热门活动礼物兑换礼物会员审核商圈类别图片添加√√√√√√修改√√√√√√删除√√√√√√查看√√√审核√发货√数据结构设计数据结构是代码实现的先决条件,一个良好的数据设计可以使各部分功能实现起来更加轻松。逻辑结构设计 数据库的逻辑设计是将各局部的结构图进行分解、合并后重新组织起来形成数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构、所建立的各个数据之间的相互关系。根据本系统需求分析,系统的数据库包括了身份验证、管理员身份、用户身份、数据同居和论坛检索等几个部分。物理结构设计此处只列举出部分数据库表的设计金币变动表表5-2-2(1)金币变动表名称金币变动表代码goldCoinsChanged备注字段名称字段代码数据类型数据长度字段说明主键/约束IDIDInt11主键会员IDMemberIDInt11时间TimeData0变动金币个数GoldCoinsChangedNumInt11调整后金币个数GoldCoinsCountNumInt11变动说明captionVarchar100关注关系表表5-2-2(2)关注关系表名称关注关系表代码prevenance备注字段名称字段代码数据类型数据长度字段说明主键/约束IDIDInt11主键会员IDMemberIDInt11商户IDStoreIDInt11签到记录表表5-2-2(3)签到记录表名称签到记录表代码signIn备注字段名称字段代码数据类型数据长度字段说明主键/约束IDIDInt11主键会员IDMemberIDInt11时间TimeData0奖励金币数量GoldCoinsNumInt11兑换详情表表5-2-2(4)兑换详情表名称兑换详情表代码trades备注字段名称字段代码数据类型数据长度字段说明主键/约束IDIDInt11主键会员IDMemberIDInt11物品IDgoodsIDInt11发货标志Flagint110:未发货;1:已发货数据结构和程序关系数据结构为关系型数据库,所以,在程序中可以通过标准的SQL语句与数据结构进行交互,交互过程中采用通用的数据库访问接口。为了保持良好的程序架构,对数据库访问采用DAO设计模式实现,提高维护性及扩展性。物理数据结构主要用于各模块之间信息的传递,借口传递的信息将是以数据结构封装了得数据,以参数传递或返回值的形式在各模块之间传输。运行设计运行设计包括运行模块组合、运行控制和运行时间。运行模块组合本程序主要是以一个网页为模块,一般一个网页完成一个特定的功能,主网页通过打开另一个子网页来实现各个模块之间不同的功能的连接和组合。各个模块之间相对独立,程序的可移植性好。各个模块之间主要以传递数据项的引用来实现模块之间的合作和数据共享。 所有有联系的模块之间关系如图5-3-1所示。用户关注用户关注完善资料后台管理奖励金币审核领优惠券签到有礼礼物兑换兑换管理发货进店消费图5-3-1模块关系图运行控制只要符合操作说明书,用户可以自由控制,不额外限定用户输入,异常程序内部进行处理,给出相应的提示信息。运行时间由用户决定,但每次操作的响应时间上限控制在3s以内出错处理设计我认为,只要是人做出来的系统是不可能没有出错的时候,更何况是我这样刚毕业的新手。所以我还设计了出错处理,主要是对我能想到的可能出现的错误或者说bug进行的分析和处理。数据库连接错误这类错误主要是数据库设置不正确引起的,我们只要取消本次操作,提醒维护人员自己检查数据库问题即可。输入错误主要是用户输入不规范造成的,我们在尽量减少用户出错的条件的情况下对用户进行提醒,然后再次操作。乱码主要发生在提交汉字信息的情况下,这是我们只需要对提交的汉字从新进行编码即可。操作错误对于用户的不正当操作,有可能是程序发生错误。我们主要是种植操作,并提醒用户种植的原因和操作规范。不可预知错误程序也会有一些我们无法预知或没有考虑完全的错误,我们对此不可能做出完全的异常处理,为了保证数据的安全,要经常对数据库进行备份。然后犯规错误信息,以逐步完善程序。安全保密设计系统安全常见的系统安全有网络蠕虫侵害,系统漏洞与补丁,以及客户信息丢失等。应对知识库进行安全的开发与管理。以及定时发布安全信息警告。常用的系统安全措施有:安装安全工具,在使用论坛时,一定要为电脑安装安全工具,同时把效验码放到安全的地方,以便日后对系统进行检查。配置防火墙对网络进行预防。根据CERT的UNIX/NT配置指南检查系统的安全性。CERT的UNIX/NT配置指南可以帮助你检查系统中容易被入侵者利用的配置问题。数据安全数据安全主要包括以下几个方面:对数据用户进行身份鉴别。访问主体、访问对象的控制策略和实现方法。数据加密方法。维护设计基础数据维护:对于一些基础数据,安排管理员进行维护数据库备份和恢复:利用NavicatforMySQL自身提供的备份和恢复功能实现。系统升级维护:根据用户使用效果调查表,筛选用户提出的功能要求,对于合理的要求予以采纳,并安排人员对系统进行修改和完善。定期建立数据库备份,一旦服务器数据库被破坏,可以使用最近的一份数据库副本进行还原。为防止服务器故障,预备另外一台服务器,主要主服务器出现故障,可以迅速启动预备服务器运行系统。恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。第6章详细设计本章从平台的整体出发,主要分为二大核心需求。一是需要做一个管理员用的后台管理系统,二是要做关于微信交互的模块。下面介绍一下该平台的整个流程:用户关注该微信公众平台后,立刻成为会员,系统会分配一个唯一的卡号给用户,并且还会奖励一定的金币数,这个金币达到一定数量可以用来换取礼物或抽奖,至于金币还可以通过每天的签到和领取优惠券进行消费来获取。关注之后,需要完善个人信息,个人信息可用来交友或将来换取礼物时可以通过用户录入的地址信息进行发货等。完善信息以后就可以在公众平台里浏览感兴趣的商家,领取优惠券,也可以参加一些优惠活动等。该平台也会定期发布一些公告直接到微信上。后台管理 后台管理系统需要对商户、活动、用户、礼物、类别、兑换详情进行管理,具体功能如下。商户管理 商户信息的查询、增加、修改、删除功能的实现,查询页面如图6-1-1(1)所示,增加及修改(使用同一页面)页面如图6-1-1(2)所示。 该模块主要克服的难点也就是本平台的一个重要难点,就是在增加商户信息时,需要一个jsp网页编辑器,功能是在此页面编辑好的商户信息需将格式带内容存放到数据库,当用户发送查看请求时,从数据库读出内容显示到页面上时,还是按照原来的样式显示。另外一个难点就是分页显示和按照类别搜索以后分页显示。图6-1-1(1)商户列表页面图6-1-1(1)商户添加页面活动管理 活动信息的查询、增加、修改、删除功能的实现,查询页面如图6-1-2(1)所示,增加及修改页面如图6-1-2(2)所示。图6-1-2(1)活动列表页面图6-1-2(2)活动添加页面礼物管理 礼物信息的查询、增加、修改、删除功能的实现。注意:由于此模块功能类似HYPERLINK6.1.2活动管理,考虑到篇幅问题,此处不再贴出截图,望读者谅解。兑换管理 礼物兑换情况的查询和发货功能的实现,页面如图6-1-4所示。 该模块模仿了支付宝中查询订单功能,可以按照未发货、已发货和所有三种状态查询发货情况,查出来的结果依然分页,未发货的兑换礼物可以在发货后在这里改变状态为已发货。图6-1-4兑换管理页面商圈管理 商圈的查询、增加、修改、删除功能的实现,查询页面如图6-1-5(1)所示。增加及修改页面较上面的比较简单,如图6-1-5(2)所示。图6-1-5(1)商圈列表页面图6-1-5(1)商圈增加页面类别管理 类别的查询、增加、修改、删除功能的实现。注意:由于此模块功能类似HYPERLINK6.1.5商圈管理,考虑到篇幅问题,此处不再贴出截图,望读者谅解。用户管理 用户的查询、查看详情页面功能的实现,查询页面如图6-1-7(1)所示,查看详情页面如图6-1-7(2)所示。图6-1-7(1)用户列表页面图6-1-7(2)用户详情页面用户审查 用户的查询、查看详情以及审查功能的实现,查询页面类似HYPERLINK6.1.7用户管理中查询页面,如图6-1-7(1)所示,审查用户信息如图6-1-8所示。图6-1-8用户审查页面图片链接易生活门户中签约商户的广告位显示的图片以及点击图片后的链接地址修改功能的实现,查询页面如图6-1-9(1)所示,添加以及修改页面如图6-1-9(2)所示。图6-1-9(1)图片列表页面图6-1-9(2)添加广告位页面系统设置修改密码、设置签到奖励金币数量和重置商户密码功能的实现,修改密码页面如图6-1-10(1)所示。图6-1-10(1)修改密码页面设置签到奖励金币数量如图6-1-10(2)所示。图6-1-10(2)设置签到奖励金币页面重置商户密码如图6-1-10(3)所示。图6-1-10(3)重置商户密码页面微信交互 首先要注册一个微信公众平台账号,通过成为开发者才能调用平台的接口,接口主要接收以下几种消息:文本消息、图片消息、地理位置消息、链接消息、音频消息、事件推送消息(包括订阅事件、取消订阅事件、自定义菜单点击事件

)。用户通过该平台发送以上各种消息到微信后,微信将接收到的消息封装成预先定义好的XML格式的数据包发送到本网站,当系统接收到请求后,对请求进行一系列操作后将返回结果也封装成预先定义好的XML格式的数据包发送给微信平台,微信平台则将其解析成可视的消息返回给微信用户。易生活门户签约商户、热门活动、礼品兑换、我的交友和我的关注链接的集合,手机页面如图6-2-1所示。图6-2-1易生活门户手机页面签约商户查看商户信息,领取优惠券和关注商户,该页面分类查询商户信息,还可以根据不同商圈分类查找商户信息如图6-2-2(1)左所示。点击某个商户进入详情后页面,如图6-2-2(1)右所示。如果该商户尚有优惠券提供,可以在此处领取,领取的优惠券信息会保存起来,等用户消费的时候只需报上手机号即可查询是否领取过优惠券。图6-2-2(1)签约商户手机页面商户详情页面还提供地图查看功能,如图6-2-2(2)左所示。当用户浏览完商户信息后来到页面底部,如图6-2-2(2)右所示。如果用户对该商户比较感兴趣,可以关注该商户,当然已关注的商户可以取消关注,这里就不再贴图了。已关注的商户可以在HYPERLINK6.1.4兑换管理中进行发货管理等。图6-2-4金币兑换手机页面热门工具热门工具提供快递、违章、公交和大巴查询功能,页面如图6-2-5左所示,快递查询页面如图6-2-5右所示,其余查询页面不过多在此处展示。图6-2-5热门工具手机页面我的会员卡查看会员卡号,返回图文信息如图6-2-6所示。图6-2-6我的会员卡返回信息图6-2-7我的金币返回信息我的金币 查看当前剩余金币数以及最近五次金币变动信息,返回文字消息如图6-2-7所示(上面)。我的资料 查看、更新个人资料以及查看兑换礼品发货情况,返回文字消息如图6-2-8所示。图6-2-8我的资料返回信息我的交友 寻找好友和查看已结交好友的基本信息,部分页面如图6-2-9所示图6-2-9我的交友手机页面我的关注 查看已关注的商户信息及取消关注。注意:该部分和HYPERLINK6.2.2签约商户使用页面相同,考虑到篇幅问题,此处不再贴出截图,望读者谅解。签到有礼 签到奖励金币,已实现每天只能签到一次功能,并且返回当地最近三天天气状况和其它几个模块的链接。返回多条图文消息如图6-2-11所示。图6-2-11签到返回信息以上是整个易生活平台的后台管理和微信交互的详细设计,除了这些必不可少的就是商户管理系统,当已领优惠券的用户去商家消费的时,需要做验证,并在成功使用优惠券后增加相应的金币数,这才是用户金币数的主要来源。商户管理页面如图6-3所示。图6-3商户管理页面微信接口的调用要做微信公众平台,最主要也是最重要的就是与微信打交道的部分,那就要调用微信公众平台提供的各种接口,下面我就讲解一下微信公众平台提供的接口要怎样调用。消息及消息处理工具的封装微信上可以发各种各样的消息,比如:文本消息、语音消息、图片消息、地理位置消息等,以上这些属于普通消息。还有一类就是事件推送,比如:关注事件、扫描二维码事件和自定义菜单事件。所以当我们接收到这些不同种类的消息后首先要区分出是什么消息,然后要做出相应的回应。经过对以上各种消息的分析后,我是这样做的。把公众平台API中所有的消息种类全部封装成java类,然后写一个公众的方法叫xml2bean,每次当将接收到消息(xml格式)时,直接调用这个方法将之转换成java类。还有一个公众的方法叫bean2xml,这个方法是将要发送的消息转换成xml格式后发送给公众平台,然后公众平台解析后发送给用户。微信公众平台xml格式消息的例子如图6-3-1所示。消息封装的javabean结构如图6-3-2所示。可以看到分别包含两个包,其中req包中的是接收到的消息,resp包中是即将发给用户的消息。图6-3-1文本消息xml格式图6-3-2微信消息封装结构图由于消息中都包含有公共的部分,因此封装了一个共同的父类Message.javapublicabstractclassMessage{ publicStringToUserName; publicStringFromUserName; publiclongCreateTime; publicStringMsgType; publicMessage(){ } publicMessage(StringToUserName,StringFromUserName,StringMsgType){ this.ToUserName=ToUserName; this.FromUserName=FromUserName; this.MsgType=MsgType; this.CreateTime=System.currentTimeMillis()/1000L; } publicStringgetToUserName(){ returnToUserName; } publicvoidsetToUserName(StringToUserName){ this.ToUserName=ToUserName; } publicStringgetFromUserName(){ returnFromUserName; } publicvoidsetFromUserName(StringFromUserName){ this.FromUserName=FromUserName; } publiclonggetCreateTime(){ returnCreateTime; } publicvoidsetCreateTime(longCreateTime){ this.CreateTime=CreateTime; } publicStringgetMsgType(){ returnMsgType; } publicvoidsetMsgType(StringMsgType){ this.MsgType=MsgType; }}其它的消息都会继承这个父类。如文本消息接收的ReqTextMessage.javapublicclassReqTextMessageextendsMessage{ privateStringContent;//文本消息内容 privateStringMsgId;//消息id,64位整型 publicStringgetContent(){ returnContent; } publicvoidsetContent(StringContent){ this.Content=Content; } publicStringgetMsgId(){ returnMsgId; } publicvoidsetMsgId(StringMsgId){ this.MsgId=MsgId; }}创建公众帐号后台接口程序创建一个JavaWeb工程,并新建一个能够处理请求的Servlet,命名任意,我在这里将其命名为CoreController,代码如下:importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.liufeng.course.util.SignUtil;publicclassCoreControllerextendsHttpServlet{ privatestaticfinallongserialVersionUID=4440739483644821986L; /** *确认请求来自微信服务器 */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //微信加密签名 Stringsignature=request.getParameter("signature"); //时间戳 Stringtimestamp=request.getParameter("timestamp"); //随机数 Stringnonce=request.getParameter("nonce"); //随机字符串 Stringechostr=request.getParameter("echostr"); PrintWriterout=response.getWriter(); //通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败 if(SignUtil.checkSignature(signature,timestamp,nonce)){ out.print(echostr); } out.close(); out=null; } /** *处理微信服务器发来的消息 */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //TODO消息的接收、处理、响应 }}接下来解决请求消息的解析问题。微信服务器会将用户的请求通过doPost方法发送给我们,让我们再来回顾下上一章节已经写好的doPost方法的定义:/***处理微信服务器发来的消息*/publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODO消息的接收、处理、响应}doPost方法有两个参数,request中封装了请求相关的所有内容,可以从request中取出微信服务器发来的消息;而通过response我们可以对接收到的消息进行响应,即发送消息。那么如何解析请求消息的问题也就转化为如何从request中得到微信服务器发送给我们的xml格式的消息了。这里我们借助于开源框架dom4j去解析xml(这里使用的是dom4j-1.6.1.jar),然后将解析得到的结果存入HashMap,解析请求消息的方法如下:/***解析微信发来的请求(XML)**@paramrequest*@return*@throwsException*/@SuppressWarnings("unchecked")publicstaticMap<String,String>parseXml(HttpServletRequestrequest)throwsException{ //将解析结果存储在HashMap中 Map<String,String>map=newHashMap<String,String>(); //从request中取得输入流 InputStreaminputStream=request.getInputStream(); //读取输入流 SAXReaderreader=newSAXReader(); Documentdocument=reader.read(inputStream); //得到xml根元素 Elementroot=document.getRootElement(); //得到根元素的所有子节点 List<Element>elementList=root.elements(); //遍历所有子节点 for(Elemente:elementList) map.put(e.getName(),e.getText()); //释放资源 inputStream.close(); inputStream=null; returnmap;}到这里关于消息及消息处理工具的封装就讲到这里,其实就是对请求消息响应消息建立了与之对应的Java类、对xml消息进行解析、将响应消息的Java对象转换成xml。各种消息的接收与响应从微信公众平台接口消息指南中可以了解到,当用户向公众帐号发消息时,微信服务器会将消息通过POST方式提交给我们在接口配置信息中填写的URL,而我们就需要在URL所指向的请求处理类CoreControl的doPost方法中接收消息、处理消息和响应消息。下面先来看我已经写好的CoreControl中doPost的完整代码:/***处理微信服务器发来的消息*/publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //将请求、响应的编码均设置为UTF-8(防止中文乱码) request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); //调用核心业务类接收消息、处理消息 StringrespMessage=CoreScessRequest(request); //响应消息 PrintWriterout=response.getWriter(); out.print(respMessage); out.close(); }从doPost方法的实现可以看到,它是通过调用CoreControl类的processRequest方法接收、处理消息的,这样做的目的是为了解耦,即业务相关的操作都不在Servlet里处理,而是完全交由业务核心类CoreService去做。下面来看CoreService类的代码实现:packageorg.liufeng.course.service;importjava.util.Date;importjava.util.Map;importjavax.servlet.http.HttpServletRequest;importorg.liufeng.course.message.resp.TextMessage;importorg.liufeng.course.util.MessageUtil;/***核心服务类**@authorliufeng*@date2013-05-20*/publicclas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论