用Servlet开启企业微信通用开发配置详解
官方文档地址:http://qydev.weixin.qq.com/wiki/index.php?title=回调模式;

URL配置的就是请求路径,我们要做的就是在后台处理这个请求,话不多说,上代码:
package com.ornos.net.servlet; import java.io.IOException; import java.io.PrintWriter; import java.io.Writer; import java.net.URLEncoder; import java.security.NoSuchAlgorithmException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import com.qq.weixin.mp.aes.AesException; import com.qq.weixin.mp.aes.WXBizMsgCrypt; /** * @author Gsc * @category 企业微信通用开发配置 */ public class QyWeixinServlet extends HttpServlet { Logger log = Logger.getLogger(QyWeixinServlet.class); // 企业微信通用开发配置GET请求处理 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) { String token = "你的token值"; String encodingAesKey = "你的encodingAesKey值"; String corpId= "你的corpId值"; // 微信加密签名 String msg_signature = req.getParameter("msg_signature"); // 时间戳 String timestamp = req.getParameter("timestamp"); // 随机数 String nonce = req.getParameter("nonce"); // 加密的随机字符串 String echostr = req.getParameter("echostr"); System.out.println("微信加密签名的值是:"+msg_signature); System.out.println("时间戳的值是:"+timestamp); System.out.println("随机数的值是:"+nonce); System.out.println("加密随机字符串:"+echostr); System.out.println("=============调试==================="); log.debug("微信加密签名的值是:"+msg_signature); log.debug("时间戳的值是:"+timestamp); log.debug("随机数的值是:"+nonce); log.debug("加密随机字符串:"+echostr); try { Writer w = resp.getWriter(); WXBizMsgCrypt crypt = new WXBizMsgCrypt(token, encodingAesKey, corpId); //校验请求返回echostr解密后的值 String echoStr = crypt.VerifyURL(msg_signature, timestamp, nonce, echostr); w.write(echoStr); w.flush(); w.close(); req.getRequestDispatcher("/index.html").forward(req, resp); } catch (AesException | IOException | ServletException e) { e.printStackTrace(); } } // 处理微信其他的请求 @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getRequestDispatcher("/jf/index.html").forward(req, resp); super.doPost(req, resp); } }
Servlet的代码就是上述部分,其实缕清了思路就没啥问题,简单的很
校验并解密echostr的参数用的方法是用官方的,下载地址:http://qydev.weixin.qq.com/wiki/index.php?title=加解密库下载与返回码;
其实这个东西最麻烦的东西已经被官方写了,我们只用做最简单的工作就行了,没什么难度。
最后源代码下载地址附上:http://download.csdn.net/download/crazilyer/10219188;

浙公网安备 33010602011771号