微信公众号集成SpingBoot开发---消息收发

Contorller

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* Created by jackiechan on 2018/1/23/ӥ܌7:59
*/
@Controller
@RestController()
public class TestController {
 package com.test.controller;

import com.test.util.MessageUtil;
import com.test.util.SignUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @ProjectName: TestWork-ns
 * @Package: com.test.controller
 * @ClassName: Test2Controller
 * @Author: ningshuai
 * @Description: 文本消息
 * @Date: 2020/6/24 16:27
 * @Version: 1.0
 */
@Controller
@RestController()
public class Test2Controller {
    @RequestMapping("getTest")
    public String getTest(HttpServletRequest request) {
        if (request.getMethod().equalsIgnoreCase("get")) {
            String signature = request.getParameter("signature");
            //时间戳
            String timestamp = request.getParameter("timestamp");
            //随机数
            String nonce = request.getParameter("nonce");
            //随机字符串
            String echostr = request.getParameter("echostr");
            if (SignUtil.checkSignature(signature, timestamp, nonce)) {
                System.out.println("成功");
                return echostr;
            }
            System.out.println("失败");
            return "失败";
        } else if (request.getMethod().equalsIgnoreCase("post")) {
            String respMessage = null;
            //默认返回文本消息信息内容
            String respContent = "未找到相关的消息数据,请确认发送内容";
            String fromUserName = "";
            String toUserName = "";
            String msgType = "";
            try {
                //xml请求解析
                Map<String, String> requestMap = MessageUtil.pareXml(request);
                //发送者的openid
                fromUserName = requestMap.get("FromUserName");
                //公众帐号
                toUserName = requestMap.get("ToUserName");
                //消息类型
                msgType = requestMap.get("MsgType");
                //判断消息类型,然后做消息的具体处理
                String fromContent = requestMap.get("Content");
                if (fromContent.contains("消息")) {
                    respContent = "这是我们的第一个消息!";
                } else if (fromContent.contains("张")) {
                    respContent = "我们找不与" + fromContent + "相关的信息";
                }
                //等等各种判断
                //回复消息文本
                respMessage = ("<xml><ToUserName><![CDATA[" + requestMap.get("FromUserName") +
                        "]]></ToUserName>" + "<FromUserName><![CDATA[" + requestMap.get("ToUserName") +
                        "]]></FromUserName><CreateTime>" + System.currentTimeMillis() +
                        "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + respContent +
                        "]]></Content></xml>");
            } catch (Exception e) {
                respMessage = ("<xml><ToUserName><![CDATA[" + fromUserName +
                        "]]></ToUserName>" + "<FromUserName><![CDATA[" + toUserName +
                        "]]></FromUserName><CreateTime>" + System.currentTimeMillis() +
                        "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[" + respContent +
                        "]]></Content></xml>");
            }
            return respMessage;
        }
        System.out.println("失败了");
        return "";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值