微信企业号开发 公众平台 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 = "UunnFe53Kkt0Nfqyssufqym";// 这个Token是随机生成,但是必须跟企业号上的相同
	String sCorpID = "wx59fec1f586c91217";// 这里是你企业号的CorpID
	String sEncodingAESKey = "oPnaEVwiDyqSToFdmucfNG9RYJKgZk2njg6K9kKXTFc";// 这个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

工程源码及微信开发包

时间: 2024-10-12 09:51:26

微信企业号开发 公众平台 token验证的相关文章

微信公众平台——token验证php版

这几天开始接触微信公众号的开发,注册这些就不说了,我是先弄了个测试号用着.进入正题 所谓token验证,其实就是微信服务器向自己要用到的服务器url发送一段数据,其中有一个参数$_GET['echhostr'],这个参数在经过一系列逻辑判断后再原封不动返回给微信也就是 echo $_GET['echhostr']; 碰到的一些小问题解决方法如下: 1.微信开发后台上的token要与php代码中定义的一致: 2.加header('content-type:text'); 3.还不行就加 ob_cl

java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源

获取[下载地址]   QQ: 313596790官网 http://www.fhadmin.org/A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都

微信公众平台Token验证失败的解决办法

1.可查看url和token是否正确 2.查看服务器端口是否为80端口 3.你可以通过记录log日志来判断是否接受到微信提交过来的信息 1.$fp=fopen("log.txt","w+");2.$strText='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\r\n";3.fwrite($fp,$strText); 把上述代码粘贴到private function checkS

Force.com微信企业号开发系列(一) - 启用二次验证

微信于9月份推出企业号后引起了业界不小的反响,许多企业都在思索企业号将如何影响企业的运营,从本文开始,我将详细阐述微信企业号开发的相关知识,而本文将着重介绍如何实现更高安全机制的二次验证. 申请企业体验号: 企业号顾名思义就是企业来申请的号,申请时就像申请服务号一样,需要提供各种组织证明文件,对广大开发者来说很难操作,好在腾讯公司也像服务号一样开通了体验号申请,留意企业体验号的有效期间非常短,只有90天(服务号测试账号有1年有效期),且如果企业体验号长期不使用还会收到腾讯公司的提前失效提醒邮件.

微信企业号开发php版1-接口验证

普通模式类似公众号的编辑模式,很简单不再介绍,回调模式类似开发模式,略有不同. 下载模板http://qydev.weixin.qq.com/php.zip 接口文件为sample.php进行如下修改,找到corpId,AK和token自己改写或用模板的.提交sample.php路径后,验证成功. <?php //更改第8行corpID,token和encodingAesKey可选用代码里的参数填写 include_once "WXBizMsgCrypt.php"; // 假设企

Thinkphp5 微信公众号token验证不成功的原因

最近要启动微信项目,上个月就开始了解微信的开发,这个月要启动项目,配置微信公众号信息一直失败.为此,我甚至手工写了微信提交过来的记录,如: &timestamp=1510210523&nonce=2414550015&signature=30b9eeb6b1134d0a53623375c48ca734c41facb5&echostr=6863786913073725439 我眼睛看着验证信息没错,输出的echostr跟get提交来的一模一样,但是还是会出错.忍无可忍,一直无

微信企业号开发一:主动调用模式之TOKEN申请

微信企业号开发,数据访问格式分为以下三种: 1.企业应用调用企业号提供的接口,管理或查询企业号后台所管理的资源.或给成员发送消息等,以下称主动调用模式. 2.企业号把用户发送的消息或用户触发的事件推送给企业应用,由企业应用处理,以下称回调模式. 3.用户在微信中阅读企业应用下发的H5页面,该页面可以调用微信提供的原生接口,使用微信开放的终端能力,以下称JSAPI模式: 官方文档地址:http://qydev.weixin.qq.com/wiki/index.php 现在我们来看一下主动调用模式的

微信企业号开发之回调模式的接口开发

一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信的信息,转发到用户提供的一个回调接口上,该接口解析用户发送过来的信息,解析后进行相应,而且回调模式中,可以调用的东西不少,扫码,图片,视频,地理位置信息等. 在应用的模式下,选择回调模式,之后,需要设置3个参数(1.回调接口URL:2.token:3.ASESKey),URL就是提供的回调接口,微信

.net之微信企业号开发(三) 回调模式的接口开发

一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信的信息,转发到用户提供的一个回调接口上,该接口解析用户发送过来的信息,解析后进行相应,而且回调模式中,可以调用的东西不少,扫码,图片,视频,地理位置信息等. 在应用的模式下,选择回调模式,之后,需要设置3个参数(1.回调接口URL:2.token:3.ASESKey),URL就是提供的回调接口,微信