资源简介
微信公众平台,开发者模式下的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项目:邮件收发系统
相关资源
- 小程序微信支付后台Java
- android微信分享demo
- check_all_input_v1.1.zip
- WeChatLuckyMoney-5.0.1.zip
- Android仿照微信App功能代码
- 共享单车微信小程序源码
- 微信APP支付服务端和Android 端详解及其
- 微信公众号中获取微信用户基本信息
- 微信商城小程序带JAVA后台
- java 微信版飞机大战完整的图片资源和
- 微信公众号自定义菜单
- java微信开发API解析四-自定义菜单以及
- 微信小程序支付demo后端(springboot)
- JAVA微信开发之AirKiss 简单demo
- JavaH5微信支付
- Android 微信摇骰子
- 微信支付服务端JavaEE
- Android 签名生成工具
- 微信公众平台的开发java——视频教程
- java后台微信支付工具类
- java 微信公众号支付完整版 demo自己刚
- java 抓取微信公众号文章
- 微信小程序版AutoCompleteTextView(自动完
- 人工智能微信小程序之识别图片上的
- 微信扫码支付和支付宝扫码支付代码
- java 微信小程序 文件上传
- 微信企业号OAuth2验证接口的2种(使用
- Java SSM框架三端在线教育平台
- java微信小程序支付
- java后台获取微信用户的openId并返回
评论
共有 条评论