微信企业号开发 公众平台 token验证

百度了很多,发现很多旧的,要么就是不完整。

首先需要的是腾讯的一些java文件(主要是加解密用),放到自己的包下即可。

然后自己定义个servlet,token和随机数必须和微信平台上的一致。

package com.qj;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.qq.weixin.mp.aes.AesException;
import com.qq.weixin.mp.aes.WXBizMsgCrypt;


/**
 * 核心请求处理类
 * 
 * @author heqian
 * 
 */
public class WechatCallbackApi extends HttpServlet {
	private static final long serialVersionUID = 4440739483644821986L;
	String sToken = "UunnFe53ufqym";// 这个Token是随机生成,但是必须跟企业号上的相同
	String sCorpID = "wx59fec11217";// 这里是你企业号的CorpID
	String sEncodingAESKey = "oPnaEVwiYJKgZk2njg6K9kKXTFc";// 这个EncodingAESKey是随机生成,但是必须跟企业号上的相同

	/**
	 * 确认请求来自微信服务器
	 * 
	 * @throws IOException
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		// 微信加密签名
		String sVerifyMsgSig = request.getParameter("msg_signature");
		// 时间戳
		String sVerifyTimeStamp = request.getParameter("timestamp");
		// 随机数
		String sVerifyNonce = request.getParameter("nonce");
		// 随机字符串
		String sVerifyEchoStr = request.getParameter("echostr");
		String sEchoStr; // 需要返回的明文
		PrintWriter out = response.getWriter();
		WXBizMsgCrypt wxcpt;
		try {
			wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID);
			sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,
					sVerifyNonce, sVerifyEchoStr);
			// 验证URL成功,将sEchoStr返回
			out.print(sEchoStr);
		} catch (AesException e1) {
			e1.printStackTrace();
		}
	}

	/**
	 * 处理微信服务器发来的消息
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO 消息的接收、处理、响应
	}

}

然后就是配置servlet:

<servlet>
		<servlet-name>wechat</servlet-name>
		<servlet-class>com.qj.WechatCallbackApi</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>wechat</servlet-name>
		<url-pattern>/wechat</url-pattern>
	</servlet-mapping>

然后运行(需要外网可访问的ip地址,可以放到第三方,新浪云等)

然后复制URL,验证即可。验证的URL要在域名后加上你servlet的url-pattern.  例: www.xxxx.com/wechat

工程源码及微信开发包

转载于:https://my.oschina.net/qiaojj/blog/488471

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值