您的位置:首页 > 移动开发 > 微信开发

微信企业号开发1--连接

2016-02-22 14:31 567 查看

1.官方文档:http://mp.weixin.qq.com/wiki/10/6380dc743053a91c544ffd2b7c959166.html

2.查看文档中的接入方法和接入成功的判断标准



返回解密后的明文即为调用成功

3.下载官方文档中解密提供的源码

http://qydev.weixin.qq.com/wii/index.php?ktitle=%E5%8A%A0%E8%A7%A3%E5%AF%86%E5%BA%93%E4%B8%8B%E8%BD%BD%E4%B8%8E%E8%BF%94%E5%9B%9E%E7%A0%81

4.创建web项目,将下载好的java项目中的src下的包导入这个web项目src包下,创建servlet,调用源码中已有的方法

package com.baosight.wechat.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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;

/**
* Servlet implementation class connect
*/
public class connect extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public connect() {
super();
// TODO Auto-generated constructor stub
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String sVerifyEchoStr = request.getParameter("echostr");
String sEchoStr=null; //需要返回的明文
try {
String token = "yourToken";
String encodingAesKey = "yourAesKey";
String corpId = "yourCorpId";

WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAesKey, corpId);
String sVerifyMsgSig = request.getParameter("msg_signature");
String sVerifyTimeStamp = request.getParameter("timestamp");
String sVerifyNonce = request.getParameter("nonce");

sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,
sVerifyNonce, sVerifyEchoStr);
} catch (AesException e1) {
sEchoStr="ERR: "+e1.getCode()+ "\n\n";
e1.printStackTrace();
}

response.getWriter().print(sEchoStr);
response.getWriter().flush();

}

/**
* 解析post提交的数据,并转交给处理程序
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获得请求参数
String token = "yourToke";
String encodingAesKey = "yourAesKey";
String corpId = "yourCorpID";
String sReqMsgSig =  request.getParameter("msg_signature");
String sReqTimeStamp = request.getParameter("timestamp");
String sReqNonce = request.getParameter("nonce");
//获得post提交的数据
BufferedReader br=new BufferedReader(new InputStreamReader(request.getInputStream()));
StringBuilder sbuff=new StringBuilder();
String tmp=null;
while((tmp=br.readLine())!=null){
sbuff.append(tmp);
}
String sReqData = sbuff.toString();
String sEchoStr=null;
try {
WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token,encodingAesKey, corpId);
String sMsg = wxcpt.DecryptMsg(sReqMsgSig, sReqTimeStamp, sReqNonce, sReqData);

sEchoStr = wxcpt.EncryptMsg(sEchoStr, sReqTimeStamp, sReqNonce);
} catch (AesException e1) {
sEchoStr="ERR: "+e1.getCode()+ "\n\n";
e1.printStackTrace();
}
response.getWriter().print(sEchoStr);

}
}


5.在服务器上部署项目,并运行

6.登录启用回调模式,设置url token aesKey

url为所访问的servlet



点击完成,显示:成功配置企业服务器

注意问题:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信 企业号 微信