前言

浅谈一下微信,也真的只是浅谈,就是cnsoft结束之后的总结。代码写得急,也写得挺烂的,也只是大概总结一下用了哪些技术(主要是我负责的这一块)。还算拿了个名次,但我觉得真的是写得不行,这里也只是总结一下,为自己及他人开发微信提供一些小小的参考。

正文

准备

公众号

微信开发怎么说,你得要用微信吧,首先必须得准备一个公众号才行。一般来说,个人号的测试号基本能够满足需求,JSSDK测试号也是支持的。你是否需要花三百去注册一个服务号的重要判定条件即是否需要微信支付,如果需要微信支付的话必须是服务号。虽说三百很多而且还有审核不过的风险,但是腾讯只要给钱事情就能办好,你只要材料都有,第二天就给你过了,这波投资现在看了高效而且不亏。。如果没有支付要求,一个测试号也基本能够满足要求了。

服务器

服务器虽说可以用自己的电脑代替,但是一直开机也不大现实,所以还是有一台服务器比较好。一直用的是腾讯云的一元学生机,不过现在好像已经不能再申请了,暗自开心一会。其他阿里云什么的也都有,反正最好有一台,不然不大方便。

域名

域名而且是需要备案过的域名,因为很多地方都需要你认证过的域名,比如支付以及JSSDK,如果有一个已经备案过的域名可以防患于未然。而且域名备案周期相对较长,江苏地区的话一周左右吧,有些地区可能要一个月,所以说还是要提前开始准备的,准备过程中也可以将其他不需要域名的工作先做完。

前台

weui+

微信开发,归根到底还是网页的开发,整套的设计也基本是用网页的模式设计的,两者有着紧密的联系。微信本身提供了一套很好的UI叫做weui,这套UI可以统一整个网站的风格,使其微信化,是一个很好的选择。我们选择的是weui+,它基于weui进行了许多扩展,具体的功能大家去github上好好看看就行了,不过因为是个人项目作者维护得比较少了,在这里还是要感谢他的付出。

javascript(jQuery)

网页前端用的最多,当然是最经典的jQuery了,作为老牌的js库,它的使用不知道简化了多少代码,我这里就主要讲一下重要的使用以及坑。

  1. ajax&json
    ajax是网页前后台交互经常使用的方式,异步方式局部刷新的方式提升了网页整体的响应速度。而一般返回值都是json,因为比较好处理,js自身也支持json的处理。不过我一直在想的是,ajax对接口的保护可能存在问题,写在前台无疑就是暴露接口,安全性仍待商榷。

  2. 冲突
    有时候为了前端特效,经常会使用多个js库,往往他们都会使用 $ 作为关键词,这时候不可避免地产生了库与库之间的冲突,我一般是自定义jQuery别名,如下面的代码所示(当然其他方法也有):
    var $j=JQuery.noConflict();

  3. 节点操作
    倘若想要前端完全没有后台语言的代码,同时又要求动态刷新,无非就是使用一下js的节点。一般获取json数据之后进行拆分,然后用节点动态插入网页之中,虽然有点繁琐,但是这样就可以完全使用html文件来写代码,倘若想用electron将其打包成exe也是可以的。

JSSDK

微信网页开发,不得不提的就是JSSDK,它的作用就是直接通过微信能够调用手机的硬件,并且已经完成了许多功能,比如扫一扫、处理声音等。这里也仅仅是讲一下我用到的地方与坑

  1. 使用权限
    JSSDK的使用在测试号上很简单,配个域名就行了,根本不用检测。
    但是服务号有限制,一个月只能修改三次配置,而且需要将一个文件放到根目录下。根目录这个坑了我很久,使用的tomcat作为容器,一开始直接将文件放于webapps中,不行!因为根目录其实是webapps中的ROOT文件夹,放进去就可以通过验证了。
  2. 扫一扫
    其实也是微信帮你都做好了,调用一个接口而已,但是处理扫描出来的字符就是自己的工作了,二维码生成的话可以使用上面说的weui+ ,处理就用这个处理好了。
  3. 声音处理
    说过微信可以调用硬件,录音机就是其中之一,最最方便的一点就是他有直接的智能接口,可以直接进行语音转文字

后台

微信支持的后台太多了,这也是它生生不息的原因之一,基本主流的语言都支持。官方给的样例基本都是PHP,所以PHP确实是开发微信最方便的语言,不过我们使用的是Java,因为本身对Java比较熟悉,而且Java在微信开发的资源也不算少。

框架

当时采用的是struts2框架,框架简单的使用来说并不复杂,其实也就是加了个过滤器,高级的功能也没有加多少。个人对框架了解也不算很多,老牌的也好,流行的也好,用得顺手就行。反正说实话,这么小的项目,框架的优势也体现不出来,不过要找工作还是得多练练。

具体功能

赛题的具体要求就看cnsoft官网第六届赛题好了,这里也不加以赘述了,反正赛题是所有题目中最简单的(手动滑稽)。也就是一个要求做在线图书馆,然后加管理后台,我这里主要讲一下微信端,也就是在线图书馆。

1.图书数据

要有一个图书馆,首先你要有数据吧。不过数据着实是不好找,最后找了一个聚合数据的免费接口。毕竟免费的,图书数目少,数据不全,ISBN作者什么的都缺,最后花了几个小时手动补了几百条,序和简介什么的,反正也不会具体看,大概有个内容就行了,代码直接操作数据库加满。

2.智能推荐

智能推荐用的东西挺高级的,叫Mahout,中文翻译过来就是协同过滤喽。也是Java的开源库,用着应该是挺高深的,可以和spark什么的一起处理数据。我们的项目就一点点数据,当然没用什么大数据啦,也就是网上找了一些教程,自己设计了一套规则而已。

简单思路就是,每个用户对每本书都有评分,评分是根据用户的行为进行动态变化的,比如喜欢就加个五分、浏览一次就加个一分之类的,最后直接引用Mahout的jar提供的接口,就把几个推荐结果给算出来了。算出来之后就是处理了,把图书序号抽出,再写一个定时器微信客服消息接口发送生成的图文消息。

3.图书搜索

这里我是真的不大好意思写了,根本不算什么索引,搜索方式也是low到爆炸,最简单的数据库select。写这个的原因主要还是因为对拼音搜索稍微研究了那么一下。

说是研究了一下,其实也就是用了一个 pinyin4j 的库。它对中文的拼音解析来说还是比较精确的,也可以自定义解析格式,我定义的方式是加”’“号,比如“你好”的转化:你好->ni’hao,然后就看自己解析了。对于中文和拼音的输入,后台是先对其进行判断,然后全部将其转化成拼音搜索然后进入我自己书名的拼音集合中进行搜索,拼音集合当然也是用这个库提前处理好的啦。

当然对于混合输入来说还有局限性,这点还是可以提升一下的。

4.语音识别

当时是想用讯飞的,结果发现我做的时候讯飞的H5接口已经不做了。绝望之下,发现微信自己就有。语音消息XML中的Recongnition字段就是解析,当然目前只能处理中文。

5.微信支付

微信支付真的是头疼了很久,也研究了很久,这里有篇不错的博文 ,也是靠了这位大佬才把这微信支付给搞出来的。


总结

毕竟过了很久了,很多细节的东西也都不知道,也只是大概总结了那么一下啊。

评价cnsoft,我觉得算是二流吧,毕竟C9来的很少,大多数都是211和普通高校,但是作为学生时代积累项目经验的比赛确实是不错的,也以此来警告自己其实还是很菜的。

微信图书馆开发——cnsoft总结相关推荐

  1. java 对比两个表的字段的差异_Joolun小程序商城 2.2.2版本上线了——Java微信快速开发平台...

    Joolun是一款基于spring-boot的微信快速开发平台,目前拥有公众号基础版和小程序商城版两个版本.Joolun采用目前流行的前后端分离技术所写,是一款高效.易用的java微信开发框架平台,二 ...

  2. atitit.微信项目开发效率慢的一些总结

    atitit.微信项目开发效率慢的一些总结 #---理念问题..这个是最大的问题.. 要有专人提升开发效率才好.. #---没有一个好的开发方法体系.... ini deve 法. fell asd+ ...

  3. 微信服务号 微信支付开发

    微信支付,须要通过微信支付验证 眼下.支付仅限服务号, 做微信支付开发,主要看开发文档 统一下单. 订单查询 退款等 1.发起支付.都是通过h5发起的,首先获取prepay_id 发起支付,须要统一下 ...

  4. 微信支付通知 php,微信支付开发交易通知实例

    一.交易通知 用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果.商户可以使用notify_url的通知结果进行个性化页面的展示. 对后台通知交互时,如果微信收到 ...

  5. 微信支付 php编程,PHP编程:微信支付开发交易通知实例

    <PHP编程:微信支付开发交易通知实例>要点: 本文介绍了PHP编程:微信支付开发交易通知实例,希望对您有用.如果有疑问,可以联系我们. 一.交易通知 用户在成功完成支付后,微信后台通知( ...

  6. 微信企业号开发:启用回调模式

    微信企业号开发怎样启用回调模式?就是简单的登陆PC版微信,点击应用中心,选择须要应用,再点击回调模式启用? 似乎不是这么简单.! 能够看到核心的仅仅有三个URL.Token,EncodingAESKe ...

  7. java 绑定微信号开发_Java开发中的更多常见危险信号

    java 绑定微信号开发 在< Java开发中的常见危险信号>一文中,我研究了一些不一定本身就是错误或不正确的做法,但它们可能表明存在更大的问题. 这些"红色标记"类似 ...

  8. java 绑定微信号开发_Java开发中的常见危险信号

    java 绑定微信号开发 在开发,阅读,复审和维护成千上万行Java代码的几年中,我已经习惯于看到Java代码中的某些" 危险信号 ",这些信号通常(但可能并非总是)暗示着代码有问 ...

  9. 【渝粤题库】广东开放大学 微信平台开发与应用 形成性考核 (2)

    选择题 题目: 以下哪些功能是属于微信的? 题目: 认证过的订阅号的底部是否可以直接链接到外部链接? 题目: 下面哪些属于页面前端开发技术? 题目: 那种情况下的公众号可以申请微信支付? 题目: 单选 ...

最新文章

  1. Codeforces 359D Pair of Numbers | 二分+ST表+gcd
  2. Feign 简介和使用
  3. 所谓工作能力强,就看这5件事
  4. Spark报错 Failed to send RPC xxx to/ip:43074 java.nio.channels.ClosedChannelException
  5. 5课件制作_【计算机论文】虚拟现实技术下多媒体课件开发的流程
  6. 百度输入法、QQ 浏览器竟都在窃取用户隐私?
  7. 开源 免费 java CMS - FreeCMS-数据对象-answer
  8. c语言中通过指针将数值赋值到制定内存地址
  9. matlab直观数据处理,霍尔效应实验数据处理 [霍尔效应实验的MATLAB数据处理]
  10. Adobe Acrobat Pro 2017安装
  11. 考研心得--一个差劲的ACMer
  12. 神经网络控制的基本原理,神经网络技术及其应用
  13. 鼠标点击右键,反应慢,解决方法!
  14. Amcharts曲线图,简单明了,看完立马就上手
  15. 大脑构造图与功能解析_大脑结构与功能
  16. LoRa节点如何以OTAA方式入网TTN服务器?
  17. 计算机中的表格中怎么排序,如何设置Excel表格的横向排序功能
  18. 基于L298N的电机驱动电路
  19. 【python turtle小demo分享】一闪一闪亮晶晶,祝你每天都开心~
  20. **网站被黑后和官网被入侵更好的处理解决办法

热门文章

  1. DB2的rollforward前滚恢复
  2. POJ 3627 Bookshelf
  3. 第8章 Drupal 主题系统( Drupal theme)(2) 安装主题
  4. Python爬虫编程思想(104):Splash基础(支持Lua的轻量级浏览器)
  5. OGRE 1.8 Animation ,动画部分
  6. 【注册表大法】教你如何给 Win11 开启传统右键菜单
  7. 关于极域的那些事------学生机连不上教师机
  8. Python连接数据库pyodbc
  9. 共赢数据时代,释放无限可能!Smartbi受邀出席明道云合作伙伴大会!
  10. Java实现斗地主升级版