Kaynağa Gözat

微信公众号服务配置-关注回复

chao 3 yıl önce
ebeveyn
işleme
3aa4dc3b80

+ 2 - 1
src/main/java/com/caimei365/wechat/controller/WechatServerApi.java

@@ -79,6 +79,7 @@ public class WechatServerApi {
                         default:
                             break;
                     }
+                    break;
                 // 图片消息
                 case WeChatConstant.MESSAGE_TYPE_IMAGE:
                 // 语音消息
@@ -100,7 +101,7 @@ public class WechatServerApi {
             if (!StringUtils.hasLength(respXml)) { respXml = "success"; }
         } catch (Exception e) {
             log.info(">>>>>>>>>>微信公众号消息处理时出现异常:" + e);
-            respXml = "success";
+            if (!StringUtils.hasLength(respXml)) { respXml = "success"; }
         }
         log.info(">>>>>>>>>>微信回复用户消息:" + respXml);
         long endProcessTime = System.currentTimeMillis();

+ 4 - 1
src/main/java/com/caimei365/wechat/service/impl/WechatServerServiceImpl.java

@@ -65,7 +65,8 @@ public class WechatServerServiceImpl implements WechatServerService {
         String nonce = request.getParameter("nonce");
         String echostr = request.getParameter("echostr");
         log.info("验证消息的确来自微信服务器,signature:"+signature+",timestamp:"+timestamp+",nonce:"+nonce+",echostr:"+echostr);
-        boolean flag = SignUtil.checkSignature(signature, timestamp, nonce);
+        boolean flag = StringUtils.hasLength(signature) && StringUtils.hasLength(timestamp) && StringUtils.hasLength(nonce);
+        flag = flag && SignUtil.checkSignature(signature, timestamp, nonce);
         if (flag) {
             return echostr;
         } else {
@@ -277,6 +278,7 @@ public class WechatServerServiceImpl implements WechatServerService {
      */
     private String setXmlByDatabaseReply(String openid, String wxType, WechatReply reply) {
         if (null != reply) {
+            log.info(">>>>>>>>>>匹配到自动回复:" + reply.getTitle() + ",素材Id:" + reply.getRelateId());
             if ("news".equals(reply.getResponseType())) {
                 // 回复图文
                 List<WechatArticleDetail> articleList = weChatDao.getArticleDetailList(reply.getRelateId());
@@ -287,6 +289,7 @@ public class WechatServerServiceImpl implements WechatServerService {
             } else {
                 // 回复文本
                 String textContent = weChatDao.getTextContent(reply.getRelateId());
+                log.info(">>>>>>>>>>匹配到回复文本字数:" + textContent.length());
                 if (StringUtils.hasLength(textContent)) {
                     return MessageUtil.setTextXml(openid, wxType, textContent);
                 }