论文部分内容阅读
摘要:微信的普遍使用,推动了基于微信平台的公众号的发展,在研究如何引导用户从互联网式片段式阅读重新回到优秀内容系统阅读上时,本文使用了基于微信公众号的图书分享解决方案,通过使用微信端特有的用户交互功能再结合网页形式展现丰富内容的功能,将优质的图书分享给用户。系统后台使用SpringMVC作为控制层,Hibernate来实现数据持久化,Spring管理的形式搭建MVC三层结构,并使用Maven进行项目结构搭建,Git进行项目版本控制,GitHub项目在线托管。
关键词:图书推广;Hibernate;Spring
引言
微信逐渐成为中国人日常使用的交流工具,在庞大的用户基数前提下,截至2017年,我们发现以“图书推广”为关键字的公众号数量却寥寥无几,通过对这些公众号的了解,发现很难找到自己需要的图书,无法实现获取有价值图书这一目的,所以对于这一块的研究还处于一个空白。
微信公众号推广渠道便捷,虽然没有APP的功能那么丰富,但随着公众平台接口的逐步实现,通过自主实现或者依赖第三方都可以实现想要的功能,它以一款轻应用存在微信中,微信公众号逐渐被商家或开发者选择以替代独立APP;在维持这种以用户为主导提供高质量图书信息的模式中,提供推荐图书购买功能,这不仅让推荐者赚取图书提供商家提供的推广费,也促进了用户推荐优秀图书的积极性,这种模式所產生的实际价值也需要继续研究验证,这也成为我选择该课题的目的之一。
1.功能设计
本系统使用Eclipse作为开发工具,选择Git作为版本控制;我没有选择本地仓库进行管理代码,一方面是担心自己的电脑出问题,另一方面是因为本人也是作为一个开源软件的热爱者,去践行开源软件这一使命,选择将项目直接放到GitHub的公共仓库,以便其他人可以学习和修改软件。
整个项目使用Maven项目构建工具构建项目,Maven可以使项目过程规范化,并提供自动化的项目编译、构建、测试、发布、打包,并可以生成文档、报告,简化了整个项目运作,其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。同时考虑到微信公众号的部分功能,将web应用与公众号功能进行了简单的分离操作,使得两个模块之间的耦合度降低。
系统主要实现两个大的功能模块,包括微信端和web端。微信端需要在用户通过分享或者扫描二维码的关注的情况下给予用户反馈,并可以让用户与公众号进行交互,当用户输入关键字时提供相应回复,输入错误时有错误提醒,发送地址时可以识别并回复地址,还必须通过自定义菜单的功能让用户根据相应菜单按钮导航到web的具体页面;web端必须可以动态获取用户信息,并提供信息查看、修改、增加额外信息等功能,包括用户积分信息,用户地址信息等。
用户进入到主页时提供分享图书列表功能,并提供分页查看,关键字检索,按类别分类查找功能;图书分享详情页面必须提供分享图书的具体信息,包括分享者的信息,图书详细信息等,并提供分享功能,在分享成功时具备锁粉功能;提供图书加入购物车和购买功能,可在购物车查看订单信息并修改购物车中具体商品数量,购买成功时用户可以查看自己的订单详情;提供核心图书分享功能,可以修改自己分享的图书,需要在分享时提供图书的图片信息,作者,价格等详细信息。
2.用户授权及信息管理
(1)用户授权:除了对图书列表未提供用户授权请求外,以便外界用户也可以查看图书列表信息,其它功能都对请求进行了过滤,来判断用户是否已授权,如果已授权,我们将授权信息进行记录,再次请求时将不需要授权,直接访问页面。授权步骤为:获取网页授权的特殊AccessToken,该Token与前面介绍的全局请求调用凭证Token有区别,请求返回结果将包括用户的OpenID,用于微信标识用户编号;通过用户标识OpenID与授权Token使用加密协议请求用户数据,成功将返回JSON格式的用户信息;将JSON格式进行转换并封装为JAVA对象,储存用户授权记录。
(2)用户信息管理:请求授权成功后,将拿到用户的信息,但是微信的用户信息并不足够我们项目使用,因此还需要让用户补充信息,当用户第一次进入用户信息时将提示他补充信息,其余时候可以修改信息。用户详情负责展示除微信用户信息外图书分享系统的用户信息,用户商品发货、积分等;这里都对表单每个输入框允许内容进行了约束,也对整个表单进行了非空限制,院系信息通过动态加载的形式进行转换。
3.图书分享的实现
(1)分享到Web端列表
分享到Web端列表提供了多个入口,用户可以从公众号菜单直接进入,也可以在列表主页左上方添加按钮进入,或者从用户个人中心直接分享图书;在分享图书时,除了填写基本的图书信息,还需要选择图书类别和图书状态,并提供了富文本编辑器允许用户去格式化输入文本,图书分享必须包含图书图片信息,通过异步上传图片的形式,将图片附件上传到服务器,并返回上传成功的图片信息,用户也可以在上传成功后预览图片以及删除上传的图片。异步上传图片主要使用FormData和Ajax结合的方式进行上传,效果如图1所示:
(2)分享给微信用户
在图书详情页面调用微信内置浏览器的分享功能,并重写了其分享功能的具体实现,使其可以在用户分享时显示特定的描述以及分享成功时给用户增加积分的功能。对于重写内置浏览器分享功能的实现,主要是接入微信JS-JDK,主要步骤为:绑定域名,在公众号设置里面填写“JS接口安全域名”;引入JS文件到相应页面;通过Config接口注入权限验证配置;通过ready接口处理成功。效果如图2所示:
4结论
本系统使用常规的B/S架构的分享和交易网上书城,选择免费的社区版Mysql作为后台数据库,Java的Jsp实现Web页面的展示,目前系统已全部实现,除了实现了用户授权、信息管理、图书分享以外,还实现了图书列表展示及分类查询功能,购物车及订单管理等功能,界面美观,运行良好。
参考文献
[1] 刘徽.微信公众号 这么做才有效[M].电子工业出版社,2016.
[2] Christian Bauer,Gavin King著,蒲成译.Hibernate实战[M].清华大学出版社,2016.09.01.
[3] 沃尔斯著,张卫滨译.Spring实战[M].人民邮电出版社,2016.04.01.
[4] 韩路彪.看透Spring MVC:源代码分析与实践[M].机械工业出版社,2015.11.01.
基金项目:西安文理学院大学生创新创业训练计划项目,编号:2358
关键词:图书推广;Hibernate;Spring
引言
微信逐渐成为中国人日常使用的交流工具,在庞大的用户基数前提下,截至2017年,我们发现以“图书推广”为关键字的公众号数量却寥寥无几,通过对这些公众号的了解,发现很难找到自己需要的图书,无法实现获取有价值图书这一目的,所以对于这一块的研究还处于一个空白。
微信公众号推广渠道便捷,虽然没有APP的功能那么丰富,但随着公众平台接口的逐步实现,通过自主实现或者依赖第三方都可以实现想要的功能,它以一款轻应用存在微信中,微信公众号逐渐被商家或开发者选择以替代独立APP;在维持这种以用户为主导提供高质量图书信息的模式中,提供推荐图书购买功能,这不仅让推荐者赚取图书提供商家提供的推广费,也促进了用户推荐优秀图书的积极性,这种模式所產生的实际价值也需要继续研究验证,这也成为我选择该课题的目的之一。
1.功能设计
本系统使用Eclipse作为开发工具,选择Git作为版本控制;我没有选择本地仓库进行管理代码,一方面是担心自己的电脑出问题,另一方面是因为本人也是作为一个开源软件的热爱者,去践行开源软件这一使命,选择将项目直接放到GitHub的公共仓库,以便其他人可以学习和修改软件。
整个项目使用Maven项目构建工具构建项目,Maven可以使项目过程规范化,并提供自动化的项目编译、构建、测试、发布、打包,并可以生成文档、报告,简化了整个项目运作,其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。同时考虑到微信公众号的部分功能,将web应用与公众号功能进行了简单的分离操作,使得两个模块之间的耦合度降低。
系统主要实现两个大的功能模块,包括微信端和web端。微信端需要在用户通过分享或者扫描二维码的关注的情况下给予用户反馈,并可以让用户与公众号进行交互,当用户输入关键字时提供相应回复,输入错误时有错误提醒,发送地址时可以识别并回复地址,还必须通过自定义菜单的功能让用户根据相应菜单按钮导航到web的具体页面;web端必须可以动态获取用户信息,并提供信息查看、修改、增加额外信息等功能,包括用户积分信息,用户地址信息等。
用户进入到主页时提供分享图书列表功能,并提供分页查看,关键字检索,按类别分类查找功能;图书分享详情页面必须提供分享图书的具体信息,包括分享者的信息,图书详细信息等,并提供分享功能,在分享成功时具备锁粉功能;提供图书加入购物车和购买功能,可在购物车查看订单信息并修改购物车中具体商品数量,购买成功时用户可以查看自己的订单详情;提供核心图书分享功能,可以修改自己分享的图书,需要在分享时提供图书的图片信息,作者,价格等详细信息。
2.用户授权及信息管理
(1)用户授权:除了对图书列表未提供用户授权请求外,以便外界用户也可以查看图书列表信息,其它功能都对请求进行了过滤,来判断用户是否已授权,如果已授权,我们将授权信息进行记录,再次请求时将不需要授权,直接访问页面。授权步骤为:获取网页授权的特殊AccessToken,该Token与前面介绍的全局请求调用凭证Token有区别,请求返回结果将包括用户的OpenID,用于微信标识用户编号;通过用户标识OpenID与授权Token使用加密协议请求用户数据,成功将返回JSON格式的用户信息;将JSON格式进行转换并封装为JAVA对象,储存用户授权记录。
(2)用户信息管理:请求授权成功后,将拿到用户的信息,但是微信的用户信息并不足够我们项目使用,因此还需要让用户补充信息,当用户第一次进入用户信息时将提示他补充信息,其余时候可以修改信息。用户详情负责展示除微信用户信息外图书分享系统的用户信息,用户商品发货、积分等;这里都对表单每个输入框允许内容进行了约束,也对整个表单进行了非空限制,院系信息通过动态加载的形式进行转换。
3.图书分享的实现
(1)分享到Web端列表
分享到Web端列表提供了多个入口,用户可以从公众号菜单直接进入,也可以在列表主页左上方添加按钮进入,或者从用户个人中心直接分享图书;在分享图书时,除了填写基本的图书信息,还需要选择图书类别和图书状态,并提供了富文本编辑器允许用户去格式化输入文本,图书分享必须包含图书图片信息,通过异步上传图片的形式,将图片附件上传到服务器,并返回上传成功的图片信息,用户也可以在上传成功后预览图片以及删除上传的图片。异步上传图片主要使用FormData和Ajax结合的方式进行上传,效果如图1所示:
(2)分享给微信用户
在图书详情页面调用微信内置浏览器的分享功能,并重写了其分享功能的具体实现,使其可以在用户分享时显示特定的描述以及分享成功时给用户增加积分的功能。对于重写内置浏览器分享功能的实现,主要是接入微信JS-JDK,主要步骤为:绑定域名,在公众号设置里面填写“JS接口安全域名”;引入JS文件到相应页面;通过Config接口注入权限验证配置;通过ready接口处理成功。效果如图2所示:
4结论
本系统使用常规的B/S架构的分享和交易网上书城,选择免费的社区版Mysql作为后台数据库,Java的Jsp实现Web页面的展示,目前系统已全部实现,除了实现了用户授权、信息管理、图书分享以外,还实现了图书列表展示及分类查询功能,购物车及订单管理等功能,界面美观,运行良好。
参考文献
[1] 刘徽.微信公众号 这么做才有效[M].电子工业出版社,2016.
[2] Christian Bauer,Gavin King著,蒲成译.Hibernate实战[M].清华大学出版社,2016.09.01.
[3] 沃尔斯著,张卫滨译.Spring实战[M].人民邮电出版社,2016.04.01.
[4] 韩路彪.看透Spring MVC:源代码分析与实践[M].机械工业出版社,2015.11.01.
基金项目:西安文理学院大学生创新创业训练计划项目,编号:2358