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

一、前沿

  微信公众平台由于没有提供针对语言的开发包,只公布了一个基于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.

它的优点有这些:

    • 功能强大;包括公众号和企业号两个组件,公众号几乎所有的api都支持,若不知的还可以调用高级接口。
    • 扩展性强;weixin-java-mp的代码结构设计合理,预留了较多扩展点,很容易自行扩展。
    • 代码质量高;看了一些weixin-java-mp的代码,感觉该组件的质量非常高,设计精良,而且有大量的单元测试更加对该组件质量信心;
    • 性能良好;上述测试结果表明该组件自身代码在多线程并发测试的场景下并未发现性能和质量问题;
    • 通用性强;weixin-java-mp组件的第三方依赖较小,不依赖任何IOC、MVC容器,也不依赖于servlet,只是一个基础的微信api包装服务,可以在任何java项目中集成。
    • 有非常详细的文档,见:https://github.com/chanjarster/weixin-java-tools/wiki

它的局限性有这些:

    • 缺少与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来介绍一些微信开发,欢迎各位持续关注,谢谢~

时间: 2024-10-22 17:44:33

微信开发之如何使用开发工具--weixin-java-tools的相关文章

微信公众平台消息接口开发-封装weixin.class.php(转)

一.封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理. 我们就考虑在这个基础上做一次封装,weixin.class.php,代码如下: <?php class Weixin {     public $token = '';//token     public $debug =  false;//是否debug的状态标示,方便我们在调试的时候记录一些中间数据     public $setFlag = false;

微信公众平台消息接口开发-封装weixin.class.php

原文:微信公众平台消息接口开发-封装weixin.class.php 一.封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理. 我们就考虑在这个基础上做一次封装,weixin.class.php,代码如下: <?php class Weixin {     public $token = '';//token     public $debug =  false;//是否debug的状态标示,方便我们在调试的时候记录一

微信应用号小程序开发(金华火爆版)

想必大家都关心微信应用号的最终形态到底是什么样子?怎样将一个「服务号」改造成为「小程序」? 金华腾云科技分享:开发过程吧. OK,为了让大家尽快看到这份教程!今晚开始更新,希望明天一早就能发布第一篇教程!记录开始!看看几天能完成变身吧! 序言开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开

运用Java对微信公众平台二次开发技术——开发者模式接入

当初我在这碰到了很多问题,市面上以及网络上的资料特别少,所以当初碰了很多壁,所以现在跟大家分享一下,如何用Java,对微信公众平台进行二次开发. 一.开发预备知识: 最基本的JavaSE与JavaWeb知识:JSP/Servlet/JDBC/EL 二.开发环境 Eclipse EE JDK 1.7(用JDK1.8会报错!用JDK1.8会报错!用JDK1.8会报错!用JDK1.8会报错!重要的事情说4遍,当初被坑了,愣是不知道错在哪,检查了无数遍代码,就是不知道哪里错了) 三.注册微信号 http

微信公众平台搭建与开发(二)开发模式的搭建和关键词回复

在第一部分介绍了编辑模式,但是编辑模式有较大局限性,下面主要开始介绍开发模式,这一部门先简单介绍下开发模式的环境搭建和关键词回复. 开发模式首先要有一个虚拟主机,本人使用的是新浪开发者平台的虚拟主机,使用云豆计算流量,若成为新浪开发者用户基本上就可以免费使用了,本人注册用户所赠送的云豆不知道能用多久.当然国内比较大还有就是百度开发者平台,注册后发现部署还没有新浪的方便,并且在BAE3.0以后好像也是要收费的.有兴趣的朋友可以研究下google的开发者平台,不知道是否要收费. 在注册新浪开发者平台

微信公众平台自定义菜单开发——创建菜单

自己从不会到最后做出来,所以好东西必须分享,所以我就给大家写一下过程 1.首先必须是成为微信的开发者,这样才有AppId 和AppSecret 2步就是获取access_token 在你的浏览器上输入https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET (注意连接中得appid=APPID&secret=APPSECRET 分别是你自己在微信

学习node js 之微信公众帐号接口开发 准备工作之三

app.js文件介绍,由于也是初学,下面的内容是个人的理解,有些不对的地方请评论中指证:以注解的形式说明. //依赖组件[模块]导入 var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var

微信收货地址共享开发接口讲解

写在前面的话:微信开发者文档写的比较清楚,也不容易出错,可是偏偏收货地址共享那儿写的比较绕,同时也会有很多坑,这里总结一下. ======正文开始====== 微信收货地址共享开发接口基本使用场景是: 用户点击按钮----->弹出微信收货地址选择页面---->用户选择收货地址,点击确定后,用户能够获取用户收货地址信息. 1.增加页面按钮标签: <div id="select-address">选择收货地址</div> 2.引用相关javascript

微信公众号平台接口开发:基础支持,获取access_token

新建Asp.net MVC 4.0项目 WeChatSubscript是项目UI层 WeChatTools是封装操作访问公众号接口的一些方法类库 获取AccssToken 我们要的得到AccessToken,这是所有接口访问的基础,我们看看官方给出的接口调用文档 很简单明了,grant_type=client_credential,这是固定的不会变 appid与secret就是前面一章我叫大家记起来的那个认证口令数据. 下边我们来实现这个功能,新建WeCharBase.cs 1 public c