收藏
回答

公众号文本消息直接回复“success”或者空串 报公众号故障?

如题

回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2021-12-02

    别如题了,亮代码吧,怎么个直接

    2021-12-02
    有用 1
    回复 12
    • 童鑫
      童鑫
      2021-12-02
      response.getOutputStream().println("success");
      2021-12-02
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-12-02回复童鑫
      前提,你收到请求了没有?
      2021-12-02
      回复
    • 童鑫
      童鑫
      2021-12-02
      断点都走了
      2021-12-02
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-12-02回复童鑫
      亮所有代码 别只亮这一行
      2021-12-02
      回复
    • 童鑫
      童鑫
      2021-12-02
      @RequestMapping(value="/init",method={RequestMethod.GET,RequestMethod.POST}, produces = MEDIATYPE_CHARSET_JSON_UTF8 )
          public void init(HttpServletRequest request, HttpServletResponse response){
              System.out.println("================================微信URL回调测试=========================");
              SAXReader saxReader = new SAXReader();
              Document document;
              try {
                  try {
                      request.setCharacterEncoding("utf-8");
                      response.setCharacterEncoding("utf-8");
                      String signature = request.getParameter("signature");
                      String timestamp = request.getParameter("timestamp");
                      String nonce = request.getParameter("nonce");
                      String echostr = request.getParameter("echostr");
                      log.info("signature[{}], timestamp[{}], nonce[{}], echostr[{}]", signature, timestamp, nonce, echostr);
                      if (SignUtil.checkSignature(signature, timestamp, nonce)) {
                          //log.info("数据源为微信后台,将echostr[{}]返回!", echostr);
                          response.getOutputStream().println(echostr);
                          // 获得微信端返回的xml数据
                          InputStream is = null;
                          InputStreamReader isr = null;
                          BufferedReader br = null;
                          try {
                              //writer = response.getWriter();
                              is = request.getInputStream();
                              isr = new InputStreamReader(is, "utf-8");
                              br = new BufferedReader(isr);
                              String str = null;
                              StringBuffer returnXml= new StringBuffer();
                              while ((str = br.readLine()) != null) {
                                  //返回的是xml数据
                                  returnXml.append(str);
                              }
                              if (!StringUtils.isEmpty(returnXml.toString())) {
                                  Map<String, String> encryptMap = xmlToMap(returnXml.toString());
                                  //// 区分消息类型
                                  String msgType = encryptMap.get("MsgType");
                                  // 普通消息
                                  if ("text".equals(msgType)) { // 文本消息
                                      // todo 处理文本消息
                                    response.getOutputStream().print("success");
                                  }
      2021-12-02
      回复
    查看更多(7)
登录 后发表内容