微信企业号开发(二)-回调接口

1、根据内网映射外网,给自己的电脑配一个外网域名,http://blog.csdn.net/u014520797/article/details/49667217


2、填写信息



3、回调接口URL

package com.py.weixin.servlet;

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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.py.weixin.util.ParamesAPI;
import com.py.weixin.weixinapi.AesException;
import com.py.weixin.weixinapi.WXBizMsgCrypt;


public class CoreServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	
	private static Logger log = LoggerFactory.getLogger(CoreServlet.class);
	/**
	 * 请求校验(确认请求来自微信服务器)
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 微信加密签名
		String msg_signature = request.getParameter("msg_signature");
		// 时间戳
		String timestamp = request.getParameter("timestamp");
		// 随机数
		String nonce = request.getParameter("nonce");
		// 随机字符串
		String echostr = request.getParameter("echostr");
		/*******pengyou 2015/10/16 start*********************************/
		System.out.println("11CoreServlet doget msgSignature:"+msg_signature);
        System.out.println("22CoreServlet doget nonce:"+nonce);
        System.out.println("33CoreServlet doget timestamp:"+timestamp);
        System.out.println("44CoreServlet doget解密前的  echostr:"+echostr);
		// 打印请求地址
        System.out.println("55CoreServlet doget request=" + request.getRequestURL());  
        
		PrintWriter out = response.getWriter();
		// 请求校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
		String echostr_ret=null;
		try{
			WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(ParamesAPI.token,ParamesAPI.encodingAESKey,ParamesAPI.corpId);
			// 验证URL函数
			echostr_ret=wxcpt.VerifyURL(msg_signature, timestamp, nonce, echostr);  
		}catch (AesException e) {  
            e.printStackTrace();  
            log.error("log 回调连接失败 1",e);
        }  
		if (echostr_ret == null) {  
        	// echostr_ret为空,赋予token
			echostr_ret = ParamesAPI.token;
        }
     
		//回调的数据
        out.print(echostr_ret);
		out.close();
		out = null;
		
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
	
}

4、常量类

package com.py.weixin.util;

/**
 * 参数API类
 */
public class ParamesAPI {

	// token
	public static String token = "Hs4MdnN4lygv2kmAZh";
	// 随机戳
	public static String encodingAESKey = "lKNJEA4vPm9BDbWUjA8txdLHpyUGKgzP8XU8gwkOKyj";
	// 你的企业号ID
	public static String corpId = "wx87be3e764a73bb42";
	// 管理组的凭证密钥,每个secret代表了对应用、通讯录、接口的不同权限;不同的管理组拥有不同的secret
	public static String corpsecret = "Bf7IkOMfDYFs4JJBztKub0z23pI9ZgIlL6sv1IjYkHmqeVEXkbxcR3drUkZ3iKGr";
	// 应用ID,AgentId
	public static String AgentId = "1";



}

5、corpId和corpsecret是管理组的凭证秘钥,可创建管理组,管理组秘钥各不相同。





6、成功回调


7、代码结构



8、代码地址:http://download.csdn.net/detail/u014520797/9252951

9、企业号demo,亲测可用:http://download.csdn.net/detail/u014520797/9726045


10、注意!!!确保自己电脑上或服务器上的jdk的中local_policy.jar和US_export_policy.jar已替换,否则将抛异常

异常java.security.InvalidKeyException:illegal Key Size的解决方案:

在官方网站下载JCE无限制权限策略文件(请到官网下载对应的版本, 例如JDK7的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html ):

http://download.csdn.net/detail/u014520797/9174959

下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。如果安装了JRE,将两个jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。







评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值