资源简介
微信公众平台,开发者模式下的Java实现。实现菜单,自动回复,关注事件等!利用SpringMVC框架实现。如有疑问,可以关注我的博客~
代码片段和文件信息
package com.duowan.yymobilegame.controller.wechat;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.duowan.yymobilegame.exception.YymobilegameException;
import com.duowan.yymobilegame.model.GTextInfo;
import com.duowan.yymobilegame.model.WeChatReceiveMsg;
import com.duowan.yymobilegame.service.GTextInfoService;
/**
* 微信设置控制器
* @author Administrator
*
*/
@RequestMapping(“/client“)
@Controller
public class WeChatController{
private static final Log log = LogFactory.getLog(WeChatController.class);
public final String TOKEN = “ziqiangbuxi“;
private final String SUBSCRIBE_EVENT = “subscribe“;//订阅事件
private final String MENU_CLICK_EVENT = “CLICK“;
@Autowired
private GTextInfoService gTextInfoService;//图文信息服务
/**
* 验证微信URL的合法性,申请开发者模式
* @param request
* @param response
* @throws IOException
*/
@RequestMapping(“/valid.do“)
public void weChatService(HttpServletRequest request HttpServletResponse response InputStream is) throws IOException{
String method = request.getMethod();
if(method.equals(“GET“)){
valid(request response);
}else{
doPost1(request response is);
}
}
/**
* 微信服务器验证
* @param request
* @param response
*/
private void valid(HttpServletRequest request HttpServletResponse response){
String signature = request.getParameter(“signature“);//微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
String timestamp = request.getParameter(“timestamp“);//时间戳
String nonce = request.getParameter(“nonce“);//随机数
String echostr = request.getParameter(“echostr“);//随机字符串
try {
boolean result = checkSignature(signature timestamp nonce TOKEN);
if(result == true){
PrintWriter pw = response.getWriter();
pw.write(echostr);
}
}catch (Exception e) {
log.error(e.getMessage() e);
}
}
/**
* 响应微信发来的消息
* @param request
* @param response
*/
private void doPost1(HttpServletRequest request HttpServletResponse response InputStream is){
try {
WeChatReceiveMsg msg = getMsg(is);
String msgType = msg.getMsgType();//获得信息类型
if(msgType == null || msgType.length() == 0)
throw new YymobilegameException(“----------公众平台服务器返回的信息不实标准格式,请检查!-
- 上一篇:JavaWeb聊天室毕设项目.txt
- 下一篇:JavaWeb项目:邮件收发系统
相关资源
- 微信小程序:电商类小程序
- 一个完整的点餐微信小程序(附后台
- 3.3.6微信支付JAVA版demo
- 微信企业号回调模式Java版
- 微信支付java demo V3版本
- Java SpringBoot 支付宝和微信支付整合
- 微信公众平台完整源码JAVA
- 微信刷卡支付
- 微信三级分销java后台完整源码.rar
- Java微信小程序商城
- Java仿微信飞机大战--Swing界面
- 微信支付jssdk,java版
- java微信登陆demo
- 微信公众号爬取数据
- 微信公众平台与小程序开发 从零搭建
- 微信公众平台与小程序开发 从零搭建
- Unity微信登陆分享SDK
- 一个辅助打卡的模拟软件
- 微信秒抢红包
- 微信虚拟定位_双开.apk
- 微信支付包unity可接入
- 微信公众号java开发代码
-
Android qq微信空间刷赞 包含ja
vasc - 安卓 android Wechat微信开源代码分享
- QQ、微信自动接听辅助工具 Android
- android微信支付(代码请完整带走)保
- android仿微信聊天软件源代码
- android 仿微信界面 ViewPager+Fragment
- android 仿微信语音聊天demo
- 微信扫码支付JavaDemo
评论
共有 条评论