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

微信开发框架Java版

2017-10-17 17:29 106 查看
首先感谢liuhf等大佬的代码。

前些日子封装了一个微信开发框架,也没必要起名字,毕竟不是什么大项目,个人自用妥妥的。

使用方法:

新建一java web项目

新建servlet作为微信接口:

/**
* Servlet implementation class WxInterface
*/
@WebServlet(name = "/WxInterface", loadOnStartup = 1, urlPatterns = "/WxInterface")
public class WxInterface extends HttpServlet {
private static final long serialVersionUID = 1L;

public static final boolean ENABLE_ACCESS_TOKEN_MAINTAIN = true;

// 预读取文本资源
private String menuTpl = null;
private String subscribeMessage = null;
private String bindTip = null;
private String unbindTip = null;

public static WxBot wxBot;
private MessageHandler handler = new MessageHandler(wxBot) {
public String onTextMessage(java.util.Map<String, String> requestMap) {
return "success";
};

public String onGetAccessToken(String accesstoken) {
System.out.println("获取到了Access Token");
String resultMenu = wxBot.setMenu(menuTpl);
System.out.println("更新菜单请求的返回:" + resultMenu);
return null;
};

public String onEventClickMessage(java.util.Map<String, String> requestMap) {
// NetUtil.dumpMap(requestMap);
String eventKey = requestMap.get("EventKey");
String fromUserName = requestMap.get("FromUserName");
String toUserName = requestMap.get("ToUserName");
if (eventKey.equals("V1001_BIND")) {
String finalBindTip = String.format(bindTip, "http://www.baidu.com/");
return WxBot.makeSimpleMessage(toUserName, fromUserName, finalBindTip);
} else if (eventKey.equals("V1001_UNBIND")) {
String finalUnBindTip = String.format(unbindTip, "http://www.baidu.com/");
return WxBot.makeSimpleMessage(toUserName, fromUserName, finalUnBindTip);
}
return "success";
};

public String onEventSubscribeMessage(java.util.Map<String, String> requestMap) {
// 发送方帐号
String fromUserName = requestMap.get("FromUserName");
// 开发者微信号s
String toUserName = requestMap.get("ToUserName");
// 回复文本消息
return WxBot.makeSimpleMessage(toUserName, fromUserName, subscribeMessage);
};

};

/**
* @see HttpServlet#HttpServlet()
*/
public WxInterface() {
super();
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
wxBot.checkSignature(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
wxBot.processRequest(request, response);
// doGet(request, response);
}

@Override
public void init() throws ServletException {
menuTpl = IoUtil.ReadFile(getServletContext().getRealPath("wx/menu.json"));
subscribeMessage = IoUtil.ReadFile(getServletContext().getRealPath("wx/subscribe.txt"));
bindTip = IoUtil.ReadFile(getServletContext().getRealPath("wx/bindTip.txt"));
unbindTip = IoUtil.ReadFile(getServletContext().getRealPath("wx/unbindTip.txt"));

wxBot = new WxBot("token", "appid", "secret",
"aes");
wxBot.setMessageHandler(handler);
super.init();
}

@Override
public void destroy() {
wxBot.release();
super.destroy();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息