首页 Java java教程 Java+微信公众号开发过程步骤详解

Java+微信公众号开发过程步骤详解

Aug 10, 2018 pm 02:44 PM

这两天自己想学习微信公众号开发,于是在网上搜索并上手练习,在这个过程中因为各种问题,(描述不完整,有的文章不知道怎么就蹦出个新的常量,也没说在哪定义的,还有jar包版本的问题坑了我一天的时间)所以特此在这记录。

1.首先,先得注册一个微信公众号,上度娘搜索微信公众平台,进入这个页面注册(已有账号的跳过这个步骤):

1.png

2.然后用Eclipse新建一个项目,这里我建的是web项目,jdk是1.8,tomcat是8.5.

1.png

3.为了和微信建立连接,建好工程后先新建一个类,命名为:CheckUtil,它的作用是作为和微信连接的校验工具,代码如下:

import java.security.MessageDigest;
import java.util.Arrays;

public class CheckUtil {
	public static final String  tooken = "自行定义"; //开发者自行定义Tooken
	public static boolean checkSignature(String signature,String timestamp,String nonce){
		//1.定义数组存放tooken,timestamp,nonce
		String[] arr = {tooken,timestamp,nonce};
		//2.对数组进行排序
		Arrays.sort(arr);
		//3.生成字符串
		StringBuffer sb = new StringBuffer();
		for(String s : arr){
			sb.append(s);
		}
		//4.sha1加密,网上均有现成代码
		String temp = getSha1(sb.toString());
		//5.将加密后的字符串,与微信传来的加密签名比较,返回结果
		return temp.equals(signature);
	}

	public static String getSha1(String str){
        if(str==null||str.length()==0){
            return null;
        }
        char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
                'a','b','c','d','e','f'};
        try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));
            byte[] md = mdTemp.digest();
            int j = md.length;
            char buf[] = new char[j*2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
                buf[k++] = hexDigits[byte0 & 0xf];      
            }
            return new String(buf);
        } catch (Exception e) {
            // TODO: handle exception
            return null;
        }
    }
}
登录后复制

4.然后新建一个servlet,重写doGet方法接收微信发来的GET请求,部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html");
		String signature = request.getParameter("signature");
		String timestamp = request.getParameter("timestamp");
		String nonce = request.getParameter("nonce");
		String echostr = request.getParameter("echostr");
		PrintWriter out = response.getWriter();
		if(CheckUtil.checkSignature(signature, timestamp, nonce)){
			//如果校验成功,将得到的随机字符串原路返回
			out.print(echostr);
		}
	}
登录后复制

5.代码写完后,这里需要一个工具将我们的内网链接映射为公网,这样微信才能访问到我们的后台,这里我采用的是一款免费的映射工具ngrok,去度娘搜索下载即可,下载完后解压放在一个指定位置,同时按住win键+R键,输入cmd,回车进入dos环境,切换到ngrock所在盘符,输入ngrock http 8080 回车(在这之前先启动tomcat):

1.png

6.回车后等待一会,即可得到公网链接,下图所示阴影区域给出的链接,即可直接访问本机127.0.0.1:8080下的链接内容,分别是http协议和https协议对应的地址:

1.png

7.登录微信公众号平台,滑到最下面,点击左下角的开发——基本配置:

1.png

点击提交按钮,提示提交成功就说明微信能访问到我们自己的后台了。

相关推荐:

Java实现微信公众平台开发的图文代码实例

微信公众号支付开发(java)实例详解

以上是Java+微信公众号开发过程步骤详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)