• springmvc 整合微信



    springmvc 整合微信

    
      
    方式一:
     ①  配置验证
       @RequestMapping(value = "/into", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
        public void validate(WeChat wc, PrintWriter out) {
            String signature = wc.getSignature(); // 微信加密签名
            String timestamp = wc.getTimestamp(); // 时间戳
            String nonce = wc.getNonce();// 随机数
            String echostr = wc.getEchostr();// 随机字符串
            System.out.println("加密的签名字符串:" + signature);
            System.out.println("时间戳:" + timestamp);
            System.out.println("随机数:" + nonce);
            System.out.println("随机字符串:" + echostr); // 验证请求确认成功原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败
            if (ValidationUtil.checkSignauer(signature, timestamp, nonce)) {
                // 随机字符串
                System.out.println("我进来了");
                out.print(echostr);
            } else {
                System.out.println("不是微信服务器发来的请求,请小心!");
            }
            out.flush();
            out.close();
        }
    ② 数据处理
        @RequestMapping(value = "/into", method = RequestMethod.POST, produces = "application/xml;charset=UTF-8")
        public void dispose(HttpServletRequest req, HttpServletResponse resp)
                throws IOException {
            // 调用核心业务类接收消息、处理消息
            // 从请求中读取整个post数据
            // 将请求、响应的编码均设置为UTF-8(防止中文乱码)
            req.setCharacterEncoding("UTF-8");
            resp.setCharacterEncoding("UTF-8");
            PrintWriter out = resp.getWriter();
            InputStream inputStream = req.getInputStream();
            String datapacket = IOUtils.toString(inputStream, "UTF-8");
            String respMessage = CoreService.processRequest(datapacket);
            log.info(respMessage);
            // 响应消息
            out.print(respMessage);
            out.close();
        }
    
    方式二:
    @RequestMapping(value = "/into", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
        @ResponseBody
        public String validate(WeChat wc) {
            String signature = wc.getSignature(); // 微信加密签名
            String timestamp = wc.getTimestamp(); // 时间戳
            String nonce = wc.getNonce();// 随机数
            String echostr = wc.getEchostr();// 随机字符串
            System.out.println("加密的签名字符串:" + signature);
            System.out.println("时间戳:" + timestamp);
            System.out.println("随机数:" + nonce);
            System.out.println("随机字符串:" + echostr); // 验证请求确认成功原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败
            if (ValidationUtil.checkSignauer(signature, timestamp, nonce)) {
                // 随机字符串
                System.out.println("我进来了");
                return echostr;
            } else {
                System.out.println("不是微信服务器发来的请求,请小心!");
                return "error";
            }
        }
        @RequestMapping(value = "/into", method = RequestMethod.POST, produces = "application/xml;charset=UTF-8")
        public void dispose(HttpServletRequest req, WeChat wc,
                HttpServletResponse resp) throws IOException {
            String signature = wc.getSignature(); // 微信加密签名
            String timestamp = wc.getTimestamp(); // 时间戳
            String nonce = wc.getNonce();// 随机数
            String echostr = wc.getEchostr();// 随机字符串
            System.out.println("加密的签名字符串:" + signature);
            System.out.println("时间戳:" + timestamp);
            System.out.println("随机数:" + nonce);
            System.out.println("随机字符串:" + echostr); // 验证请求确认成功原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败
            resp.setCharacterEncoding("UTF-8");
            PrintWriter out = resp.getWriter();
            if (ValidationUtil.checkSignauer(signature, timestamp, nonce)) {
                // 调用核心业务类接收消息、处理消息
                // 从请求中读取整个post数据
                InputStream inputStream = req.getInputStream();
                String datapacket = IOUtils.toString(inputStream, "UTF-8");
                String respMessage = CoreService.processRequest(datapacket);
                log.info(respMessage);
                // 响应消息
                out.print(respMessage);
            }
            out.flush();
            out.close();
        }
    
    方式三:(推荐使用)
    @RequestMapping(value = "/into", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
        @ResponseBody
        public String validate(WeChat wc) {
            String signature = wc.getSignature(); // 微信加密签名
            String timestamp = wc.getTimestamp(); // 时间戳
            String nonce = wc.getNonce();// 随机数
            String echostr = wc.getEchostr();// 随机字符串
            if (ValidationUtil.checkSignauer(signature, timestamp, nonce)) {
                // 随机字符串
                log.info("我进来了");
                return echostr;
            } else {
                log.error("不是微信服务器发来的请求,请小心!");
                return "error";
            }
        }
        @RequestMapping(value = "/into", method = RequestMethod.POST, produces = "application/xml;charset=UTF-8")
        @ResponseBody
        public String dispose(HttpServletRequest req, WeChat wc) throws IOException {
            String signature = wc.getSignature(); // 微信加密签名
            String timestamp = wc.getTimestamp(); // 时间戳
            String nonce = wc.getNonce();// 随机数
            if (ValidationUtil.checkSignauer(signature, timestamp, nonce)) {
                // 调用核心业务类接收消息、处理消息
                // 从请求中读取整个post数据
                InputStream inputStream = req.getInputStream();
                String datapacket = IOUtils.toString(inputStream, "UTF-8");
                String respMessage = CoreService.processRequest(datapacket);
                log.info(respMessage);
                // 响应消息
                return respMessage;
            }else{
                log.error("数据处理失败!");
                return "error";
            }
        }  
    
    
  • 相关阅读:
    Python语言基础03-分支和循环结构
    Python语言基础01-初识Python
    李宏毅深度学习笔记08---Bert、ELMO、GPT
    李宏毅深度学习笔记07---Transformer
    李宏毅深度学习笔记06---word embedding(词嵌入也称词向量)
    李宏毅深度学习笔记05---RNN 循环神经网络02
    李宏毅深度学习笔记04---RNN 循环神经网络01
    李宏毅深度学习笔记03---CNN 卷积神经网络
    李宏毅深度学习笔记02---深度学习的发展历程、3大研究步骤、
    李宏毅深度学习笔记---课程介绍
  • 原文地址:https://www.cnblogs.com/qixidi/p/10221977.html
走看看 - 开发者的网上家园