首页>代码>SpringMVC+Spring+mybatis+mysql+jsp微信商城系统,有后台管理系统>/chihaodian/src/com/weixin/controller/ReplyController.java
                
                package com.weixin.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
//import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.weixin.entity.ClickText;
import com.weixin.entity.Item;
import com.weixin.entity.RequestTextMessage;
import com.weixin.service.ClickTextService;
import com.weixin.util.ReplyMessage;
import com.weixin.util.SHA1;
@Controller
@RequestMapping("/")
public class ReplyController {
	private static final Logger log =Logger.getLogger(ReplyController.class);
	private String TOKEN = "yqkj";
	//Pattern pattern = Pattern.compile("[0-9]*"); 
	//private Map<String, Object> map = new HashMap<>();
	@Autowired
	private ClickTextService clickTextService;
	
	@RequestMapping(value = "reply.html")
	public void repaly(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		checkToken(request, response); //仅在认证微信开发者模式时调用一次即可
		try {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter pw = response.getWriter();
		String wxMsgXml =IOUtils.toString(request.getInputStream(), "utf-8");
		log.info("获取的数据信息>>>>>"+wxMsgXml);
		
		boolean eventType =wxMsgXml.contains("Event") ;// 如果包含,则是触发事件
		RequestTextMessage textMsg =null ;
		String returnXml = null;
		StringBuffer replyMsg = new StringBuffer();
		if(!eventType){ //信息交互事件
			textMsg = ReplyMessage.getRequestTextMessage(wxMsgXml);
			String receive = textMsg.getContent().trim();
			
			ClickText clickText = clickTextService.selectByPrimaryKey(receive);
			if (clickText.getType()==1) {
				replyMsg.append(clickText.getContent());
				returnXml = ReplyMessage.getReplyTextMessage(replyMsg.toString(), textMsg.getFromUserName(),
						textMsg.getToUserName());
			}else if(clickText.getType()==2){
				List<Item> articleList = new ArrayList<>();
				Item item = null ;
				if(clickText.getIntro().contains("-=")){//多条图文信息
					String[] title =  clickText.getTitle().split("-=");
					String[] intro =  clickText.getIntro().split("-=");
					String[] pic_url =  clickText.getPic_url().split("-=");
					String[] url =  clickText.getUrl().split("-=");
					for(int i =0 ; i < intro.length; i++){
						item = new Item();
						item.setTitle(title[i]); //标题
				        item.setDescription(intro[i]);//介绍
				        item.setPicUrl(pic_url[i]);	//图片链接
				        item.setUrl(url[i]);        //链接指向
				        articleList.add(item);
					}
				}else{ //单条图文信息
					item = new Item();
					item.setTitle(clickText.getTitle()); //标题
			        item.setDescription(clickText.getIntro());//介绍
			        item.setPicUrl(clickText.getPic_url());	//图片链接
			        item.setUrl(clickText.getUrl());        //链接指向
			        articleList.add(item);
				}
				returnXml = ReplyMessage.getReplyTuwenMessage(textMsg.getFromUserName(), textMsg.getToUserName(),articleList);
			}
		}else{
			textMsg = ReplyMessage.getRequestFocus(wxMsgXml);
			if(textMsg.getEvent().equals("subscribe")){ //关注事件
				ClickText clickText = clickTextService.selectByPrimaryKey("subscribe");
				System.out.println();
				replyMsg.append(clickText.getContent());
				log.info("关注回复->"+clickText.getContent());
				returnXml = 
						ReplyMessage.getReplyTextMessage(replyMsg.toString(), textMsg.getFromUserName(),
						textMsg.getToUserName());
			}
		}
		
		log.info("wxMsgXml>>>>>>>>>>>>>>"+wxMsgXml);
		log.info("returnXml>>>>>>>>>>>>>>"+returnXml);
		pw.println(returnXml);
		
		} 
		catch (Exception e) {
			log.info(e.getMessage());
		}
	}
	
	/**
	 * 微信token认证,使用时调用
	 * 
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	
	public void checkToken(HttpServletRequest request, HttpServletResponse response) throws IOException {
		// 微信加密签名
		String signature = request.getParameter("signature");
		// 随机字符串
		String echostr = request.getParameter("echostr");
		// 时间戳
		String timestamp = request.getParameter("timestamp");
		// 随机数
		String nonce = request.getParameter("nonce");
		String[] str = { TOKEN, timestamp, nonce };
		Arrays.sort(str); // 字典序排序
		String bigStr = str[0] + str[1] + str[2];
		// SHA1加密
		String digest = new SHA1().getDigestOfString(bigStr.getBytes()).toLowerCase();
		// 确认请求来至微信
		if (digest.equals(signature)) {
			response.getWriter().print(echostr);
		}
	}
}
最近下载更多
                
                lilitu     LV6
                2024年5月30日
            
            
        
                wuying8208     LV15
                2023年9月4日
            
            
        
                lvllvl     LV4
                2023年7月18日
            
            
        
                tangyongheng08     LV6
                2023年6月13日
            
            
        
                lilonghui     LV3
                2023年5月17日
            
            
        
                泓鼎168     LV20
                2023年5月10日
            
            
        
                jimodeai     LV15
                2023年4月4日
            
            
        
                liangju666     LV6
                2023年3月14日
            
            
        
                liuhongbing123     LV5
                2022年11月23日
            
            
        
                PaymentCodeSystem     LV11
                2022年6月9日
            
            
        
                
                
                
最近浏览