基于php的微信商城的设计与实现

基于php的微信商城的设计与实现

ID:13303608

大小:4.78 MB

页数:40页

时间:2018-07-21

上传者:jjuclb
基于php的微信商城的设计与实现_第1页
基于php的微信商城的设计与实现_第2页
基于php的微信商城的设计与实现_第3页
基于php的微信商城的设计与实现_第4页
基于php的微信商城的设计与实现_第5页
资源描述:

《基于php的微信商城的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

年月日目录摘要IABSTRACTII1绪论11.1研究的背景、目的和意义11.2国内外文献综述11.3研究的主要内容22需求分析与可行性研究42.1市场定位分析42.2可行性分析42.3需求目标42.3.1概述42.3.2商城整体说明53系统解决方案63.1设计方案的论证63.1.1设计方案的选择63.1.2工具的选择63.2设计方案的说明73.2.1系统总体描述73.2.2系统角色类型73.2.3系统规划8 3.2.4预期目的93.2.5技术要求94系统详细设计104.1系统模块架构104.2系统功能说明104.2.1系统登录模块104.2.2盒子设置模块114.2.3盒子内容更改模块124.2.4盒子管理员模块134.2.5基本商城功能模块144.3数据字典155系统实现185.1模块实现的理论基础185.2系统登录模块的实现185.3设置学校信息模块的实现185.4盒子选货模块的实现225.4.1选货模块225.4.2选货后编辑及提交模块235.5管理员审核模块275.6人人商城到盒子模块的跳转295.7双支付接入296系统测试30 6.1概述306.2系统测试用例306.3测试总结327结束语33参考文献34致谢35 摘要随着电商的不断发展和新老电商品牌的更新换代,电商行业似乎已经进入一个饱和的阶段,另一方面,其以淘宝京东为大的垄断性质也越发明显。传统电商的模式现在很难再发展出来新兴门户了,但是,电商现在的覆盖面还不是百分百的,有很多有待开发的“蓝海”正亟待接入互联网,所以在传统电商的基础上,开发出一套新的商业模式,避开当下电商“领头羊”的锋芒,是一种比较好的创业方法。而商城盒子就是这样一种模式,它是先消费后付款的,所以可以达到传统电子商城不可能达到的时效性和便捷性。其发展前景是巨大的,完全可以发展成一个集粉丝活跃度和用户消费量于一身的平台。本设计课题的任务就是基于传统商城的模式给商城盒子定制开发出来一套专用的电子商城模式,让用户的体验更好,商家的入驻和管理也更方便。采用了PHP作为后台开发语言,HTML+JS+CSS作为前端开发语言,遵守微信的开发规范,完成了零食盒子的基本功能,系统运行流畅,可以正常使用。关键词:电商;PHP;微信II ABSTRACTWiththecontinuousdevelopmentofelectricityandnewandoldelectricbusinessbrandreplacement,electricityindustryseemstohaveenteredasaturatedstage,ontheotherhand,itsTaobaoJingdonglargemonopolynatureismoreandmoreobvious.Thetraditionalelectricbusinessmodelisnowdifficulttodevelopoutofthenewportal,buttheelectricitybusinessisnownot100%coverage,therearemanytobedeveloped"BlueOcean"isurgentlytoaccesstheInternet,sothebasisofthetraditionalelectricitybusinessOnthedevelopmentofanewbusinessmodel,toavoidthecurrentleaderintheedgeofelectricity,isabetterwaytostart.Themallboxissuchamodel,usingthefirstpaymentafterthepaymentmodel,toachievethetraditionale-mallcannotachievethetimelinessandconvenience.Itsdevelopmentprospectsarehuge,canbedevelopedintoasetoffanactivityanduserconsumptioninaplatform.Thetaskofthisdesigntaskisbasedonthetraditionalmallmodeltothemalltocustomizethedevelopmentofasetofdedicatede-mallmodel,sothatusersexperiencebetter,businessmensettledandmanagementisalsomoreconvenient.UsingPHPasabackgrounddevelopmentlanguage,HTML+JS+CSSasafront-enddevelopmentlanguage,tocomplywiththedevelopmentofWeChatnorms,thecompletionofthebasicfunctionsofthesnackbox,thesystemrunssmoothly,canbeusednormally.Keywords:electricitybusiness,PHP,WeChatII 1绪论1.1研究的背景、目的和意义当代,互联网发展迅速,基于互联网而产生的应用正在改变人们的生活[1],电子商务作为一种新的消费形式,以各种出众的开发语言为动力[2],正在以其势如破竹之势,迅速改变的人们的生活。互联网继续只用于做信息的话,显然是大材小用了,互联网应该为人们带来更多的便利。在信息化发达的国家,一些商家门户,如沃尔玛等都利用先进的开发框架[3]纷纷开展了自己的网上业务。本世纪初的一份调查就早早表明:网上购物从诞生之初就已经被现代家庭接受并且慢慢成为现代家庭的习惯,而PHP作为开发电子商城的主要开发语言,其开发框架也在不断增加[4]。有资料表明:2001年,越来越多的商家开始在网上销售自己的商品[5],中国网民中的31.6%都在网上买过商品,大约有1060人,在当时这个比例已经很接近发达国家。2003年全年,我国的网上商城上交易额比2002年上升了190%,而近期的发展速度更是令人咂舌,从淘宝网里程碑式的双十一开始,每一年,网上购物都在刷新交易金额记录,2016年底,淘宝网更是拿出了日交易额1207亿的骇人成绩。由此可见,短短的几十年,发展是如此迅速,“网上创业”已经从当初的山野小径变成了当今的商业发展高速大道。在国内,大规模网上销售平台都已成形并且不断有新兴事物的出现,而移动端代替了电脑端之后,变化更大[6]。互联网在中国已经改变了人民的生活和工作方式。而当前,网上商城看似已经被几大巨头所垄断,但是其待发掘资源还是有很多的,比如京东的逆境存亡就是一个很好的例子。我们应该在新形式下抓住机遇,随着用户的习惯来发掘和优化技术,让网络可以更好的造福人民。全球经济一体化是个大趋势,大力发展网络,是全球经济一体化最有效的推动力。发展与创新是并存的,只有不断有创新的发展,才是良性的,所以开发一个有针对性的新形式的网上商城是很值得一试的。1.2国内外文献综述虽然业内对电子商务的研究非常多,但是其针对性和深度都多少有点欠缺或者不太吻合本次研究,因此本节将对此进行总结和深入研究。Abraham曾经对印度51家企业进行过专门的研究,35 很明显,接入了网上营销的公司的绩效要比没有接入的好的多。Michelle和Gabrielle利用波特的竞争优势框架模型,针对电子商务对旅游业的影响做了深入研究,发现其对旅游业带来的效益也是巨大的。而Cecilia(2006)也对《运营成本和电子商务》进行了深入研究,结果是电子商务的作用是积极的。LefebvreLouis-A对B2B和中小企业收益进行了研究之后,认为中小企业也非常适合接入电子商务。C.Freund和D.Weinhold的研究项目是电子商务对国际贸易的影响,他们研究了56个国家得出了最终结论:电子商务刚出现的前两年,对国际贸易影响甚微,但是平均从第三年开始,国际总贸易流将会因为电子商务发生显着变化。董佳(2011)在《国际贸易与电子商务》一文中指出,电子商务在国际贸易组成中是重要的一部分。她的结论是电子商务的快速发展是国际贸易快速发展的重要推动力,跟上电子商务的发展步伐,既是机遇也是挑战。1.3研究的主要内容零食盒子是一种新的消费模式,采用线上线下结合的消费模式,线下消费,线上付款。对于线下,其形式是:放一个盒子到学生宿舍,这个盒子归宿舍的人所共享,盒子运营商放固定数量的商品进盒子,用户消费的时候,直接拿盒子里的东西,然后往盒子里丢钱,自己找零,盒子运营商定期去维护盒子里的商品,是一种只适用于大学校园的高自觉、高素质人群的消费模式。而这次我的开发任务是,将这个模式转移到线上,对用户而言,在用户端盒子模块就相当于自己的一个“收藏夹”,用户可以定义这个“收藏夹”里放什么东西,后台商家收到用户的自定义信息之后,将会上门把客户选择的商品放进盒子里,这个过程是免费的,因为用户还没有产生真正的消费。在线下,实体纸箱盒子就是用户可以随时消费的“寝室超市”,其消费流程很简单,从盒子里拿东西,在“收藏夹”(线上盒子模块)快速找到商品进行线上付款,一切基于诚信。微信已经通过它的大数据改变了当下的广告营销市场[7],而且因为它的轻量化和跨平台化,所以没有选择APP开发,避开了开发攻坚,安卓IOS双平台同步,软件推广三大难题,在电子商务发展的过程中,微信是一个很好的营销平台[8]。35 整个商城是基于微擎版人人商城的二次开发,我的开发任务就是对人人商城进行数据库和代码逻辑分析,然后完成零食盒子的功能开发以及盒子数据库和人人商城数据库的融合,相当于在一块打了地基的土地上盖房子,用成熟的底层写自己的逻辑模块。35 2需求分析与可行性研究2.1市场定位分析主打线上零食盒子的微信商城的构建初始目标是在校大学生,针对于在校大学生的消费能力,微信商城在具有自己特色的同时应当适应大学生的消费需求。因此,以零食作为切入点,加上日用品,文具办公用品,以及各类生活服务,可以很快的占领大部分学生市场。同时,商品的保质保量,以及别的电子商城无法比拟的配送速度,会让粉丝的粘性大大增加。2.2可行性分析商城的建设需要有服务器资源,公司资质(用来申请、认证微信服务号),商品仓库,配送员开销。这些开销加在一起,与实体店的前期投入相比,大约只是实体店的十分之一。所以其在经济上是完全可行的。商城不牵扯到侵权,其在法律上是可行的。对于网页开发来说,PHP是比较流行的开发语言,而且网上有着海量的PHP开源程序,其中不乏优质源代码,所以,没有必要从头开始写底层功能,只需要拿成熟技术做底层,然后自己做定制二次开发就可以了,所以,其在技术上是完全可行的。由于人人商城的操作以及后续我所做的定制开发的操作都是基于浏览器的网页操作,简单明了,对于经常网购的大学生群体来说,是操作是完全没问题的,而对于后台管理人员来说,也有专门的可视化管理页面,所以管理员也无需具备专业知识,只需要对一些数据进行简单的输入、修改、删除和日常的维护就够了。2.3需求目标2.3.1概述该商城的目的是开发一个带盒子功能(相当于个人收藏夹,不过还是有很大区别)的微信商城,在用户端要实现的基本主要功能有:(1)商品选购(可按分类方式查找商品,也可模糊全局搜索)(2)购物车功能(3)查看商品详细情况35 (4)用户自动登录(5)查看用户的订单信息(6)查看用户的订单信息(7)修改用户信息后台管理部分有:(1)商店商品管理:添加、修改、删除、查看(2)用户信息管理:查看、修改(3)订单信息管理:查看订单清单,更新订单状态(4)盒子管理:查看盒子申请,更新盒子状态2.3.2商城整体说明微信商城的主要参与者是顾客和商家以及管理员,顾客端是一个完整的消费体验,商家只需负责线下的服务,而管理员负责后台的运行、管理,以及信息的审核。网上商店的操作流程都类似,操作步骤说明如下:(1)顾客在公众号点击特定按钮进入微信商城(2)后台调用微信接口,拉取用户openid完成静默登录(3)用户设置学校信息(4)用户设置盒子内容,提交申请(5)后台管理员审核申请,点击通过(6)用户在“我的盒子”里点击商品完成购买(7)后台自动收集信息(8)晚上6点,导出一整天的订单信息,排版分类,开始补货35 3系统解决方案3.1设计方案的论证3.1.1设计方案的选择所谓B/S,是指“Browser/Server(浏览器/服务器)”应用模式,客户端/服务器模式C/S(Client/Server)架构的发展,这种设计模式的好处是,用户不需要下载任何软件(或者只需下载一些基本的功能插件),就可以利用浏览器完成一些业务逻辑,和平常上网的过程没有区别。这种模式最大的优势是广域网下的业务处理,即使是拨号上网的用户也不会感觉很慢。另外,无需繁杂的软件安装和后期维护方便也是其优势之一。其工作原理是,在客户端浏览器对服务器发送HTTP请求,WEP服务器通过PHP文件进行数据库操作和业务逻辑处理,并将操作结果以静态HTML页面的形式返回给前端浏览器[9]。如图1:图1B/S工作流程图3.1.2工具的选择工欲善其事必先利其器,开发工具的选择对于程序开发来说是个很重要的过程,它关乎开发的效率和最终的代码质量,所以选择合适的开发工具,是一个好的开始。(1)前台开发技术的选择:AdobeDreamweaver,中文名称"梦想编织者",是美国MACROMEDIA公司开发的一款优秀网页设计软件,AdobeDreamweaver是第一套针对网页设计师开发的视觉化设计工具。它的代码提示和纠错机制非常好用,可以让PHP编程的过程非常高效,而且大大减少了语法错误,格式错误出现的几率,提升了编码效率。(2)后台数据库管理工具的选择:Navicatpremium是一款数据库管理工具。因为Mysql本身提供的网页式数据库管理工具不是很好用,所以利用NavicatPremium35 这一款第三方PC端数据库管理工具进行可视化操作来提高效率。而且Navicatpremium还提供了一些类似于数据库查询结果导出成xls等非常好用的小功能。(3)FTP文件管理工具的选择:FileZilla是一个免费开源的FTP软件,其简洁的界面给人印象良好,而且其功能也不弱,具有FTP软件所有应该具备的功能,对于文件的上传下载,其多窗口的操作模式,将效率提升了好几倍。3.2设计方案的说明3.2.1系统总体描述因为电子商城架构过于庞大,凭一个人的力量,短期内不可能完成全部功能的开发。所以本系统采用微擎版的人人商城,进行二次开发,完成一些定制性的功能,人人商城的兼容性很强,可以把自己想要的功能做成插件,一些需要特殊权限的功能(例如微信付款),只需要将数据写回人人商城,剩下的业务逻辑它就会帮我的系统完成。因为选择了微信端,所以用人人商城等同于用自己的模板引擎[10]把微信接口再次封装了一下,让开发的目的性更强。3.2.2系统角色类型该系统有三类用户,分别是人人商城管理员,盒子模块管理员,普通用户。如图2所示:图2用户类别总图人人商城管理员信息储存在人人商城原版数据库里,是已经建好的一张表,这个系统用户的权限是最高的,他可以接入微信公众号,配置服务器资源信息,查看其他用户信息,上下架商品,查看订单,发货退货等等。如图3所示:35 图3人人商城管理员权限用例图盒子模块管理员:其基本功能和普通用户是一样的,比普通用户多了个审核盒子申请的功能。普通用户:权限最低,可浏览网页,商品,下单,提交盒子申请等等。如图4所示:图4用户权限用例图3.2.3系统规划对于数据库系统,前期的规划和设计工作是非常有必要的,因为数据库是整个系统的核心和最大的兼容性限制,如果最初的设计是不合理的,对后期设计的影响将会是毁灭性的。系统采用支持事务的Mysql[11]。而盒子模块的主要系统功能规划如下:35 ▶设计不同用户的操作权限和登陆方法 ▶对所有用户开放的页面查看、商品查看以及下单 Ø ▶根据下单情况对数据库进行操作 Ø ▶根据退款情况对数据库进行操作 Ø ▶根据关注、跑路情况对数据库进行操作 Ø ▶维护用户、商品、订单以及管理员信息 3.2.4预期目的▶提高盒子维护的工作效率Ø▶通过全面简洁的信息查询、删除和修改方式,提高订单配送的工作效率▶通过使用本系统,能达到全面高效的提高系统的管理水平、降低人力资源消耗、提高工作效率的目的3.2.5技术要求▶数据库设计满足功能要求 ▶数据库冗余度小,尽量满足三范式要求 Ø ▶绘制数据库各数据表之间的关系图 ▶建立数据库访问接口类,实现对数据库的访问 ▶完成功能模块中的一个较小的功能,以测试数据库接口的正确性35 4系统详细设计4.1系统模块架构系统模块架构图如图5所示:图5系统模块架构图4.2系统功能说明4.2.1系统登录模块(1)功能说明这个模块是用的微信openid,一个用户在一个公众号上的openid是唯一的[12],以此为用户账号,同时无需密码,不用用户手动填写登录信息,达到“静默登录”的效果。(2)功能特性35 普通用户静默登录。(3)输入、输出输入:▶用户openid输出:▶登录反馈(4)前提条件用户关注服务号。4.2.2盒子设置模块盒子设置模块的流程图如图6所示。图6盒子设置流程图35 (1)功能说明此模块为用户使用盒子功能的关键模块,主要完成盒子内容的设置和使用宿舍的创建以及加入。(2)功能特性普通用户基本操作。(3)输入、输出格式输入:▶微信接口提供的信息▶用户填写信息▶商品信息输出:▶提示信息▶操作反馈(4)前提条件用户关注服务号。4.2.3盒子内容更改模块盒子内容更改模块的流程图如图7所示。(1)功能说明此模块为用户使用盒子功能的关键模块,主要完成盒子内容的日常更改。(2)功能特性普通用户基本操作。(3)输入、输出格式输入:▶微信接口提供的信息▶用户填写信息▶商品信息输出:▶提示信息35 ▶操作反馈图7更改盒子内容流程图(4)前提条件用户关注服务号。4.2.4盒子管理员模块盒子管理员模块的流程图如图8所示。(1)功能说明此模块为管理员审核盒子申请的关键模块,主要完成商家盒子内容把控的主动性。(2)功能特性管理员特殊操作。(3)输入、输出格式输入:▶用户提交的申请信息35 ▶商品信息输出:▶审核结果图8盒子管理员流程图(4)前提条件操作人有管理员权限。4.2.5基本商城功能模块商城基本功能模块流程图如图9所示。图9商城基本功能模块流程图(1)功能说明此模块人人商城的基础功能模块。(2)功能特性面向全网所有用户。(3)输入、输出格式35 输入:▶用户提交的各种行为信息▶商品信息输出:▶商城信息反馈(4)前提条件商城正常运行即可。4.3数据字典本系统模块一共有九张表,分别是:存储盒子管理员信息的盒子管理员表tbl_admin,存储盒子内容信息的盒子表tbl_box,存储地址信息的学校表tbl_school,宿舍楼表tbl_building,宿舍号表tbl_dorm,学校宿舍号表tbl_school_dorm,存储申请的申请表tbl_submit,存储修改时间的时间表tbl_time,存储用户信息的用户表tbl_user。盒子管理员表见表1。表1盒子管理员信息表名类型长度是否主键能否为空备注Idint11是否主键openidVarchar80否能管理员openidnamevarchar10否能管理员姓名盒子信息表见表2。表2盒子信息表名类型长度是否主键能否为空备注Idint11是否主键school_dorm_IdInt20否否宿舍idgoods_Idint11否否商品idboolInt1否否是否存在numInt11否否商品数量35 nowUseInt1否否是否在使用,0代表编辑状态,1正常使用状态,2代表中间状态学校表,楼栋表,以及宿舍表分别见表3,4,5。表3学校表名类型长度是否主键能否为空备注Idint11是否主键schoolNamevarchar50否否学校名字表4宿舍楼栋表名类型长度是否主键能否为空备注Idint11是否主键school_IdInt11否否学校IDdormvarchar50否否宿舍楼栋名表5宿舍号表名类型长度是否主键能否为空备注Idint11是否主键school_buiding_IdInt11否否宿舍楼IDdormNumvarchar50否否宿舍号学校宿舍表见表6。表6学校宿舍表名类型长度是否主键能否为空备注Idint11是否主键schoolNamevarchar50否否学校名字dormitoryNovarchar50否否宿舍楼号dormNovarchar50否否宿舍号35 creditValueInt11否能信用值isnewInt11否否累计更改盒子次数申请表见表7。表7申请表名类型长度是否主键能否为空备注Idint20是否主键school_buiding_IdInt11否否宿舍楼IDopenidvarchar80否否申请人idtimedatetime否否申请时间时间表见表8。表8时间表名类型长度是否主键能否为空备注Idint11是否主键school_IdInt11否否学校IDsetTimedatetime否否修改时间用户表见表9。表9用户信息表名类型长度是否主键能否为空备注Idint11是否主键school_IdInt11否否学校IDopenidVarchar80否能用户openidnamevarchar20否能用户姓名Phonevarchar20否能用户手机号35 5系统实现5.1模块实现的理论基础这次选用的数据库是Mysql,利用HTML+JS+CSS技术完成前端页面的设计开发,用PHP+AJAX技术完成后台逻辑功能的实现[13]。系统一共有五大模块,其详细实现方法见以下各小节。5.2系统登录模块的实现系统登录模块的逻辑是静默登录,采用微信接口拉取用户信息,因为人人商城又对这个接口做了封装,所以本系统选择在人人商城里AJAX传值到我的页面,完成openid的传值,具体代码如下:5.3设置学校信息模块的实现首先通过用户的openid获取用户的名字以及头像信息,如图10所示,然后用户填写信息,(其间有输入验证,如图11所示)。填写完成后,点击提交,完成信息的填写,仅可填写一次,再次进入就只可以查看信息,如图12所示。此模块分别和两个页面有关系,一个是填写信息页面,一个是选择学校宿舍页面。图10信息页面图35 图11输入验证示意图图12填写完成示意图35 其关键逻辑有三个,第一是信息的拉取以及显示,关键代码如下:

'.$rows['schoolName'].'';}?>第二个是信息输入的验证控制模块,关键代码如下:35 $("#submit").click(function(){load_re2();vardeal=true;if($.cookie('school')==null){deal=false;$("#w_school").css({display:""});}if($.cookie('building')==null){deal=false;$("#w_building").css({display:""});}if($.cookie('dorm')==null){deal=false;$("#w_dorm").css({display:""});}if($("#name").val()==""){deal=false;$("#w_name").css({display:""});}if($("#phone").val()==""){deal=false;$("#w_phone").css({display:""});}35 第三个是提交信息后的数据库操作,关键代码如下:0)//{echo'有学校';//说明已经有学校了}else{echo'没学校';}?>5.4盒子选货模块的实现5.4.1选货模块用户在商品的罗列页以及详情页都有一个“添加”的按钮,点击这个按钮,将通过Ajax把值传到一个后台处理的PHP文件,完成数据库盒子表记录的插入和修改操作。如图13所示。其实现方式主要分为两部分,第一部分是在人人商城添加点击事件。具体代码如下:{$goods['title']}添加到盒子varxhr=newXMLHttpRequest();//ajax事件设置,以便接收返回的信息xhr.onreadystatechange=function(){if(xhr.readyState==4){alert(xhr.responseText);}}xhr.open('get','http://buman.baizhinian.com/index.php?i=7&c=entry&m=ewei_shopv2&do=mobile&r=member.ajaxceshi&goodsid='+goodid);xhr.send(null);35 xhr.onreadystatechange=function(){if(xhr.readyState==4){alert(xhr.responseText);}}xhr.open('get','http://buman.baizhinian.com/index.php?i=7&c=entry&m=ewei_shopv2&do=mobile&r=member.ajaxceshi&goodsid='+goodid);xhr.send(null);图13盒子选货图5.4.2选货后编辑及提交模块选货之后,进入“盒子设置”35 页面,就可以看到已经选择的商品,在这个页面上可以修改商品的梳理,左滑出现删除按钮,点击可以删除商品,左侧有选中按钮,选中后下方有个实时的数值计算,点击提交按钮就可以提交。如图14所示。图14盒子设置编辑演示图此模块的关键有四部分,第一部分是商品罗列,其代码如下所示:if(mysql_num_rows($rs_dorm)>0)//预留判定条件{$rows_dorm=mysql_fetch_assoc($rs_dorm);$rs_goods=mysql_query('selectgoods_Id,numfromtbl_boxwherenowUse=0andschool_dorm_Id='.(int)$rows_dorm['school_dorm_Id']);//根据组名选出所有商品while($rows_goods=mysql_fetch_assoc($rs_goods))//依次获取这个宿舍下的每个商品的商品id{$nm=$rows_goods['num'];$goodsId=$rows_goods['goods_Id'];//存的是这个宿舍里的所有的商品id$rs_detail=mysql_query('selecttitle,thumb,marketpricefromims_ewei_shop_goodswhereid='.(int)$goodsId);//从老表里获取每个商品的详情$str=$str.'''.$goodsId.'':''.$nm.'',';$rows_detail=mysql_fetch_assoc($rs_detail);$title=$rows_detail['title'];$IMG="http://buman.baizhinian.com/attachment/".$rows_detail['thumb'];$price=$rows_detail['marketprice'];echo'';echo'删除
';echo'
';//在这里用数组写购物车echo'
';echo'
'.$title.'
';echo'
¥'.$price.'
';echo'
';echo'-';echo'';echo'+

';echo'
';echo'';echo'';}35 {$nm=$rows_goods['num'];$goodsId=$rows_goods['goods_Id'];//存的是这个宿舍里的所有的商品id$rs_detail=mysql_query('selecttitle,thumb,marketpricefromims_ewei_shop_goodswhereid='.(int)$goodsId);//从老表里获取每个商品的详情$str=$str.'''.$goodsId.'':''.$nm.'',';$rows_detail=mysql_fetch_assoc($rs_detail);$title=$rows_detail['title'];$IMG="http://buman.baizhinian.com/attachment/".$rows_detail['thumb'];$price=$rows_detail['marketprice'];echo'';echo'删除';echo'
';//在这里用数组写购物车echo'
';echo'
'.$title.'
';echo'
¥'.$price.'
';echo'
';echo'-';echo'';echo'+

';echo'
';echo'';echo'';}35 echo'+

';echo'';echo'';echo'';}第二部分是选中设置和实时计算数值,因篇幅问题,在这里简述一下它的逻辑:获取罗列商品页的所有选中按钮的状态,然后完成根据每个商品的单价,数量,完成相乘相加得出总的数值,填到固定位置。第三部分是滑动删除特效,这里是调用一个第三方插件,具体代码如下:varcountStr=$.cookie("sql_countStr");//获取cookievarstatus_process=eval("("+countStr+")");mui.init();(function($){$('#OA_task_1').on('tap','.mui-btn',function(event){varelem=this;varli=elem.parentNode.parentNode;varstr=li.id;varxhr=newXMLHttpRequest();xhr.open('get','./php/delete.php?goodsid='+str);xhr.send(null);li.parentNode.removeChild(li);});varbtnArray=['确认','取消'];//第二个demo,向左拖拽后显示操作图标,释放后自动触发的业务逻辑})(mui);35 第四部分是提交后后台数据库处理,这一步完成后将会跳到审核页面,等待管理员审核其盒子请求,此时用户可以看到自己提交了什么商品,但是是黑白颜色的,如图15所示。图15等待审核示意图5.5管理员审核模块首先,在后台管理员表里有记录的用户,是管理员,管理员的盒子界面的右下角比普通用户多了个圆形的按钮,上面有“审核”的字样,点击之后,就会跳转到审核页面。在审核页面罗列着最近七天的盒子请求条目,其中第一次请求的条目上多了“NEW”字样,单击每个条目会下拉展开显示请求的具体内容,左滑会出现审核选项按钮。如图16所示。此模块主要有两部分组成,第一是请求的罗列与编辑,这一部分的逻辑和本章第四节的罗列编辑商品是一样的,所以不予重复粘贴代码。第二部分是后台数据库的操作。当选择审核通过时,将会更新用户请求的所有商品的状态,接下来用户在48小时内不得再次修改,其代码如下:35 mysql_query('setnamesutf8');mysql_query("DELETEFROMtbl_boxwhereschool_dorm_Id=$schoolandnowUse=1");//清空mysql_query("UPDATEtbl_school_dormsetisnew=isnew+1whereId=$school");//变成mysql_query("UPDATEtbl_boxsetnowUse=1,bool=1whereschool_dorm_Id=$schoolandnowUse=2");//重新加入?>图16审核页示意图审核通过后将会跳往“我的盒子”页面,接下来就可以正常使用盒子了,如图17所示,用户在审核页的黑白色商品将会全部转移到“我的盒子”里,并且变成彩色,点击这些商品,就会跳转到所选商品的详情页面35 商品详情页,然后就可以进行商品购买。图17正常盒子页面5.6人人商城到盒子模块的跳转系统采用了在首页放了一个悬浮按钮的方案,并且通过绝对路径,将其点击事件设置为跳往盒子页面。同时在个人中心增加了到盒子设置和学校设置的跳转,到此为止,人人商城盒子模块的开发,告一段落。5.7双支付接入微擎提供了一个支付封装类,比直接调用微信以及支付宝要方便,在任意一个界面调用父类的this->pay方法,然后传入订单号,金额等信息即可完成支付。其底层其实还是两个支付接口的调用。35 6系统测试6.1概述测试就是做查漏补缺的工作[14],程序开发是不可能一步到位的,其间好多问题都是通过系统测试发现并解决的,系统也需要反复的修改才能完善,从而才能慢慢的契合用户的需求。这样,整个开发过程才是完整的[15]。6.2系统测试用例系统测试用例表见表10。表10系统测试用例表用例编号测试项目输入及操作预期结果实际结果是否通过BMHZ-01用户登录点击进入商城自动进入商城,无需登录与预期相同通过BMHZ-02进入学校设置点击个人中心,点击我的学校进入我的学校设置页,并且显示微信头像与预期相同通过BMHZ-03学校、宿舍选择点击各个选项进入选项页面,选中某个选项后跳回设置页面,并将选择结果显示出来与预期相同通过BMHZ-04姓名与电话的填写以及输入验证控制部分信息没填提示信息填写不完善,无法跳转与预期相同通过BMHZ-05默认套餐填写信息完整后点击提交如果是同寝室第一个设置的,会跳到盒子设置页面,与预期相同通过35 页面上有默认套餐可供编辑,如果不是第一个,则会直接跳到正常盒子页面BMHZ-06盒子内容的添加在商品列表页或者详情页点击添加提示“已加入盒子”,进入盒子页面也可以看到已添加的商品与预期相同通过BMHZ-07盒子内容的修改/删除点击加减按钮,或者直接填写数值,左滑点击删除商品的数量会出现变化,下面的数值也会随之变化,删除后商品将消失与预期相同通过BMHZ-08管理员权限后台添加管理员管理员多了一个“审核”按钮与预期相同通过BMHZ-09审核通过管理员点击审核通过用户的盒子状态变成正常,48小时内不能再次提交申请与预期相同通过BMHZ-10审核不通过管理员点击审核不通过用户的状态被重置与预期相同通过BMHZ-11商品的正常购买在“我的盒子”里点击任意商品跳往人人商城商品详情页与预期相同通过35 6.3测试总结对于本系统,我设计了一系列的针对性极强的测试用例,而测试结果和预期都是基本吻合的,基本上完成了这次对系统的测试任务。通过全面的测试工作,使系统的性能得到了明显的提高,解决了一些不易发现的BUG。经历过测试用例测试之后,系统又投入线上测试了半个月,出现了一次数据写入为空的BUG,查看源代码,原因是cookie的时间设置出现了空白期,导致cookie过期,延长cookie的生命周期之后,系统恢复正常。总而言之,系统经受住了考验,已经可以正常投入线上使用。7结束语35 这一次基于PHP的程序设计,我是从零开始的,边学边做,此论文花了我大量的时间编写代码,查找资料,撰写论文。虽然时间花费巨大,但是它给我带来的好处同样也是巨大的,我从一个什么都不懂的小白到一只脚跨入PHP开发者大门的程序员,这样的结果是很让我兴奋的。通过这一次的开发任务,我对自己充满了信心,对未来充满了希望,接下来我会更加努力的学习新知识,让自己越来越强大,来做更深层次的开发。参考文献35 [1]高洛峰.细说PHP[M].2版.北京:电子工业出版社,2012:580~595[2]徐康明,辛洪郁,实战突击:PHP项目开发案例整合[M].2版.北京:电子工业出版社,2014:121~122[3]BchleMichael,KirchbergPaul.RubyonRails[J].IEEESoftWare,2007,24(6):176~181[4]ErwinEarlet.PHPFrameworks[J].SystemiNEWS,2009,15(1):351~352[5]刘敏.基于PHP+MySQL的网上购物系统设计与实现[J].科技信息,2010,24(10):20~25[6]吕芹.移动广告:动起来的价值[J].互联网周刊,2014,16(11):38~39[7]吕清远.大数据时代下的微信营销价值[J].现代经济信息,2013,27(10):279~280[8]李清忠.电子商务如何利用微信营销[J].科技视界.2013,2(35):165[9]JasonE.Sweat.PHPArchitect’sGuidetoPHPDesignPatterns[M].Canada:MarcoTabni&Associates,Inc,2005:261~281[10]崔伟,胥立,黄林.PHP开发框架关键技术分析[J].计算机光盘软件与应用,2012,32(20):229~230[11]王留洋.基于PHP的企业门户网站的设计与实现[D].长春:吉林大学,2015[12]陈静,李红灵.基于B/S的多层分布式结构应用[J].计算机与现代化,2013,28(11):52-57[13]潘凯华,刘中华.PHP从入门到精通[M].北京:清华大学出版社,2014:114~129[14]赵洁红.PHP范例完全自学手册[M].北京:人民邮电出版社,2010,43~64[15]张海藩.软件工程导论[M].北京:清华大学出版社,2013:16~1835 35

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭