首页>代码>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); } } }
最近下载更多
wuying8208 LV15
2023年9月4日
lvllvl LV4
2023年7月18日
tangyongheng08 LV6
2023年6月13日
lilonghui LV3
2023年5月17日
泓鼎168 LV19
2023年5月10日
jimodeai LV14
2023年4月4日
liangju666 LV6
2023年3月14日
liuhongbing123 LV5
2022年11月23日
PaymentCodeSystem LV11
2022年6月9日
jwz jwz LV13
2022年5月1日
最近浏览更多
玖零定制问题修复 LV34
4月4日
Gin19960217 LV4
3月18日
SZEPEZS LV8
3月12日
李朝磊 LV18
3月4日
ljhgff LV1
2月8日
i-caigou
1月18日
暂无贡献等级
微信网友_6786215447367680 LV4
2023年12月20日
2385649653 LV7
2023年12月12日
heqian LV16
2023年12月6日
lasttimeapp
2023年11月27日
暂无贡献等级