1、首先,去官网注册一个微信公众号

2、点击开发者中心,填写服务器配置信息

3、通过ngrok来映射本地的请求到服务器端

4、通过代码来验证请求,并给出相应的回复,不多说,贴代码

package com.weixin.action;

import java.io.IOException;
/*
 * 第一次请求的时候是get请求,用户验证
 * 第二次请求就是Post请求,传递消息和返回消息
 */
import java.io.PrintWriter;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class WeixinServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        /*
         * 获取参数,然后验证是否是正确的连接应用
         */
        String signature = req.getParameter("signature");
        String timestamp = req.getParameter("timestamp");
        String nonce = req.getParameter("nonce");
        String echostr = req.getParameter("echostr");
        PrintWriter out = resp.getWriter();
        if(CheckUtil.checkSignature(signature, timestamp, nonce)){
            out.print(echostr);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        Map<String,String> map = MessageUtil.readStringXmlOut(req, null);
        String ToUserName = map.get("ToUserName");
        String FromUserName = map.get("FromUserName");
    //    String CreateTime = map.get("CreateTime");
        String Content = map.get("Content");
    //    String MsgId = map.get("MsgId");
        String MsgType = map.get("MsgType");
        PrintWriter writer = resp.getWriter();
        String msg = null;
        if(MessageUtil.MESSAGE_TEXT.equals(MsgType)){
            if("1".equals(Content)){
                Content = "你好";
            }else if("2".equals(Content)){
                Content = "暂时";
            }
            msg = MessageUtil.initText(ToUserName, FromUserName, Content);
        }else if(MessageUtil.MESSAGE_EVENT.equals(MsgType)){
            String event = map.get("event");
            if(MessageUtil.MESSAGE_SUBSCRIBE.equals(event)){
                msg = MessageUtil.initText(ToUserName, FromUserName, MessageUtil.menuText());
            }
        }
        writer.print(msg);
        writer.close();
        
    }
    
    

}
View Code

相关文章:

  • 2021-07-23
  • 2022-12-23
  • 2021-11-26
  • 2021-09-27
  • 2021-12-04
  • 2021-08-19
  • 2022-12-23
  • 2021-11-30
猜你喜欢
  • 2021-05-15
  • 2021-05-12
  • 2021-12-10
  • 2021-12-04
  • 2021-04-20
  • 2021-08-31
相关资源
相似解决方案