MsgHandler.java 3.4 KB
package org.theyeasy.weixin.handler;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.theyeasy.weixin.builder.TextBuilder;
import org.theyeasy.weixin.service.WxOpenMpService;
import org.theyeasy.weixin.service.WxOpenService;
 
 

import com.w1hd.zzhnc.util.CommonUtil;

import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;

/**
 * 
 * @author Binary Wang
 *
 */
@Component
public class MsgHandler extends AbstractHandler {
	private final static Logger log = LoggerFactory.getLogger(SubscribeHandler.class);
	
	@Autowired
	WxOpenService wxOpenService;
		
    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
      Map<String, Object> context, WxMpService wxMpService,
            WxSessionManager sessionManager)    {

    	String appid =   wxMpService.getWxMpConfigStorage().getAppId();
        if (!wxMessage.getMsgType().equals(WxConsts.XML_MSG_EVENT)) {
            //TODO 可以选择将消息保存到本地        
        }

        	
		  	 if(wxMessage.getContent()!=null&&wxMessage.getContent().indexOf("QUERY_AUTH_CODE:")!=-1){//全网发布测试代码
		  		 
	        	 String QUERY_AUTH_CODE= wxMessage.getContent().replace("QUERY_AUTH_CODE:", "");
	        	
	        	  log.info("进入关键字回复");
	        	  try {
	        		String  Access_token=	wxOpenService.getApiGetAuthorizerInfo(QUERY_AUTH_CODE, 1);
					log.info("Access_token=" + Access_token);
	        		QUERY_AUTH_CODE+="_from_api";
					
	        	        String strJson = "{\"touser\" :\""+wxMessage.getFromUser()+"\",";
	        	        strJson += "\"msgtype\":\"text\",";
	        	        strJson += "\"text\":{";
	        	        strJson += "\"content\":\""+QUERY_AUTH_CODE+"\"";
	        	        strJson += "}}";
	        	        String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?&body=0&access_token=" + Access_token;
	        	        
	        	        log.info("url=" + url);
	        	        log.info("strJson=" + strJson);
	        	        
	        	        CommonUtil.sendPost(url, strJson);
	        	        log.info("CommonUtil.sendPost(url, strJson)之后");
				} catch (WxErrorException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
        	 
        	 return null;
         }else{
		  	//关键字回复
		  	if(wxMessage.getContent()!=null&&wxMessage.getContent().equals("TESTCOMPONENT_MSG_TYPE_TEXT")){//全网发布测试代码
	        //TODO 组装回复消息
		  	 WxMpXmlOutMessage msg=new TextBuilder().build("TESTCOMPONENT_MSG_TYPE_TEXT_callback", wxMessage, wxMpService);
		  	 log.info(msg.toString());
		  	 
		  	 return new TextBuilder().build("TESTCOMPONENT_MSG_TYPE_TEXT_callback", wxMessage, wxMpService);
		  	}else{
		  		if(wxMessage.getContent()!=null&&wxMessage.getContent().equals("测试"))
		  		{
		  			return new TextBuilder().build("收到...", wxMessage, wxMpService);
		  		}
//		  		autoreplyService.keywordReply(appid, wxMessage.getContent(),wxMessage.getFromUser());
		  		return null;
		  	}
         }
		  	
		  
         }


}