微信开发之如何使用开发工具--weixin-java-tools

时间:2016-05-21 17:35:36   收藏:0   阅读:4286

一、前沿

  微信公众平台由于没有提供针对语言的开发包,只公布了一个基于Http协议的接口和加解密的算法sdk,这样给微信公众号的开发者带来很多工作量,除了实现业务逻辑外,还需要自己处理底层的接口协议细节,因此选择一个良好的sdk能够节省这样的工作量,而目前已经有不少的开源sdk可供使用,java语言的微信公众号sdk也有不少,那么作为java开发者我们应该如何选择呢?我将带着各位对java开源的一些微信公众号的sdk进行各方面的对比分析,为读者选择适合自己的sdk包提供一些帮助。

二、为什么要用weixin-java-tools

  如下是官方给出的推荐。

  1. 不依赖任何mvc框架

  2. 也不依赖servlet,仅仅作为工具使用,可轻松嵌入到任何系统里(可能会有gson,httpclient的版本冲突问题,但是要比依赖spring mvc、struts、或者其他第三方框架好很多)

  3. 同时支持企业号和公众号

  4. 支持Session,实现了类似于HttpSession的WxSession。

二、几种常用的微信java sdk选型对比

  1、初步选型

  技术分享

  2、静态对比图

  技术分享

  3、性能分析

    这里我不多做介绍,已经有网友对此做了分析介绍,原文地址:http://my.oschina.net/ywbrj042/blog/402049?fromerr=NrYoMOTl   

  4、分析总结

 

经过静态分析对比、使用测试和性能测试综合分析,我认为在java平台中开发微信公众号服务端基于weixin-java-mp开源框架是最值得推荐的开源sdk. 

它的优点有这些: 

 

 

它的局限性有这些: 

    • 缺少与Servlet和Spring等同用框架的整合,给开发者增加了更高的学习和使用成本,应该基于weixin-java-mp开发一些快速上手的一些模块,以提高开发者使用效率; 

对于大多数的场景我都推荐使用weixin-java-mp作为基础开发框架,它相对而言确实是一个更好的选择。 

 

三、weixin-java-tools的使用介绍:

  1、工具包下载: weixin-java-common 、weixin-java-mp  

    如果项目不是maven构建,请按照静态对比图,下载依赖jar包。

    maven项目中只需要pom中添加如下依赖:

    注:后续学习都是maven构建项目,如果不了解maven构建项目,请参考我的博文,谢谢~~

<!-- 微信开发工具包 -->
		<dependency>
			<groupId>me.chanjar</groupId>
			<artifactId>weixin-java-mp</artifactId>
			<version>1.3.3</version>
		</dependency>
		<dependency>
			<groupId>me.chanjar</groupId>
			<artifactId>weixin-java-common</artifactId>
			<version>1.3.3</version>
		</dependency>

 

  

 

   2、使用weixin-java-tools接入微信开发者

    使用到两个个比较重要的类 : weixin-java-mp工具包中的  WxMpService (一些API和封装的操作类)、WxMpInMemoryConfigStorage(微信配置参数实体类)

    接入中使用到一个方法:WxMpService中的checkSignature方法,校验接入是否合法。

    创建一个Servlet类,在get方法中 直接调用WxService.checkSignnature来校验接入是否合法 代码如下:

 

/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 * 用于接入
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		//微信服务器get传递的参数
		String signature = request.getParameter("signature");
		String timestamp = request.getParameter("timestamp");
		String nonce = request.getParameter("nonce");
		String echostr = request.getParameter("echostr");
		
		//微信工具类
		WxMpService wxService=new WxMpServiceImpl();
		
		//注入token的配置参数
		/**
		 * 生产环境 建议将WxMpInMemoryConfigStorage持久化
		 */
		WxMpInMemoryConfigStorage wxConfigProvider=new WxMpInMemoryConfigStorage();
		//注入token值
		wxConfigProvider.setToken("weixin");
		
		wxService.setWxMpConfigStorage(wxConfigProvider);
		
		boolean flag=wxService.checkSignature(timestamp, nonce, signature);
		
		PrintWriter out=response.getWriter();
		if(flag){
			out.print(echostr);
		}
		
		out.close();
		out=null;
	}

  

    3、测试是否能够接入成功,欢迎各位再评论区评论,互相学习。

 

PS:本节就给大家介绍到这里,后续我会持续使用weixin-java-tools来介绍一些微信开发,欢迎各位持续关注,谢谢~

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!