init project
This commit is contained in:
52
web/pom.xml
Normal file
52
web/pom.xml
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>forever</artifactId>
|
||||
<groupId>com.love.qn</groupId>
|
||||
<version>1.0.0</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>web</artifactId>
|
||||
<version>${version}</version>
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.love.qn</groupId>
|
||||
<artifactId>common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.love.qn</groupId>
|
||||
<artifactId>dal</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>dom4j</groupId>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<version>1.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.xstream</groupId>
|
||||
<artifactId>xstream</artifactId>
|
||||
<version>1.4.4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.binarywang</groupId>
|
||||
<artifactId>weixin-java-mp</artifactId>
|
||||
<version>3.9.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
29
web/src/main/java/com/qn/controller/HomeController.java
Normal file
29
web/src/main/java/com/qn/controller/HomeController.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.qn.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
@Controller
|
||||
public class HomeController {
|
||||
/**
|
||||
* 表白
|
||||
*/
|
||||
@RequestMapping(value = "/", method = RequestMethod.GET)
|
||||
public void enter(HttpServletResponse response) throws IOException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><head></head>");
|
||||
sb.append("<body><h1>欢迎光临QN恋爱中!</h1>");
|
||||
sb.append("<p>此网站没有网页,只为【惊喜女友的微信小程序】提供必要的后台支持,该网页为备案号专用网页。</p>");
|
||||
// 设置备案号
|
||||
sb.append("<a href = 'https://beian.miit.gov.cn'>浙ICP备2020031991号</a>");
|
||||
sb.append("</body></html>");
|
||||
response.setStatus(200);
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.getWriter().write(sb.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
}
|
||||
33
web/src/main/java/com/qn/controller/TestController.java
Normal file
33
web/src/main/java/com/qn/controller/TestController.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package com.qn.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
@Controller
|
||||
public class TestController {
|
||||
|
||||
/**
|
||||
* 表白
|
||||
*/
|
||||
@RequestMapping(value = "/to/{name}", method = RequestMethod.GET)
|
||||
public void enter(@PathVariable("name") String name, HttpServletResponse response) throws IOException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><head></head>");
|
||||
sb.append("<body><h1>");
|
||||
if (name==null || "".equals(name)){
|
||||
name = "王娜";
|
||||
}
|
||||
sb.append(name);
|
||||
sb.append(",I love you!!!</h1></body></html>");
|
||||
response.setStatus(200);
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.getWriter().write(sb.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
}
|
||||
75
web/src/main/java/com/qn/controller/WXTokenController.java
Normal file
75
web/src/main/java/com/qn/controller/WXTokenController.java
Normal file
@@ -0,0 +1,75 @@
|
||||
package com.qn.controller;
|
||||
|
||||
import com.qn.controller.utils.MessageUtils;
|
||||
import com.qn.utils.SignUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
public class WXTokenController {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger("WXTokenController");
|
||||
|
||||
/**
|
||||
* 微信TokenCheck
|
||||
*/
|
||||
@RequestMapping(value = "/wx", method = RequestMethod.GET)
|
||||
public void wxTokenCheck(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
if (!StringUtils.isEmpty(request.getParameter("signature"))) {
|
||||
String signature = request.getParameter("signature");
|
||||
String timestamp = request.getParameter("timestamp");
|
||||
String nonce = request.getParameter("nonce");
|
||||
String echostr = request.getParameter("echostr");
|
||||
logger.info("signature[{}], timestamp[{}], nonce[{}], echostr[{}]", signature, timestamp, nonce, echostr);
|
||||
if (SignUtils.checkSignature(signature, timestamp, nonce)) {
|
||||
logger.info("数据源为微信后台,将echostr[{}]返回!", echostr);
|
||||
response.getOutputStream().println(echostr);
|
||||
response.flushBuffer();
|
||||
}
|
||||
}else {
|
||||
logger.info("不是微信请求,不操作");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信TokenCheck
|
||||
*/
|
||||
@RequestMapping(value = "/wx", method = RequestMethod.POST)
|
||||
public void wxMessage(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
Map<String,String> map = MessageUtils.xmlToMap(request);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
map.forEach((x,y) ->
|
||||
sb.append(x + "===" + y + ";"));
|
||||
logger.info("此次微信请求的消息内容为:" + sb.toString());
|
||||
String toUserName = map.get("ToUserName");
|
||||
String fromUserName = map.get("FromUserName");
|
||||
String msgType = map.get("MsgType");
|
||||
String content = map.get("Content");
|
||||
String message = null;
|
||||
// HTTPUtils.doPost()
|
||||
if ("text".equals(msgType)){
|
||||
//回复文本信息触发的消息
|
||||
message = MessageUtils.initText(toUserName,fromUserName,"text",fromUserName + "您好!" + content);
|
||||
}else if ("text".equals(msgType)){
|
||||
//关注时触发的消息
|
||||
String event = map.get("Event");
|
||||
if ("subscribe".equals(event)){
|
||||
message = MessageUtils.initText(toUserName,fromUserName,"text","Welcome lmq love nn");
|
||||
}
|
||||
}
|
||||
logger.info("返回微信的数据为" + message);
|
||||
response.setContentType("text/xml;charset=utf-8");
|
||||
response.getWriter().write(message);
|
||||
response.flushBuffer();
|
||||
}
|
||||
}
|
||||
69
web/src/main/java/com/qn/controller/utils/MessageUtils.java
Normal file
69
web/src/main/java/com/qn/controller/utils/MessageUtils.java
Normal file
@@ -0,0 +1,69 @@
|
||||
package com.qn.controller.utils;
|
||||
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import model.wx.TextMessage;
|
||||
import org.dom4j.Document;
|
||||
import org.dom4j.Element;
|
||||
import org.dom4j.io.SAXReader;
|
||||
|
||||
import javax.servlet.ServletInputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class MessageUtils {
|
||||
/**
|
||||
* xml转Map
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
public static Map<String,String> xmlToMap(HttpServletRequest request) {
|
||||
Map<String,String> map = new HashMap<>();
|
||||
SAXReader reader = new SAXReader();
|
||||
ServletInputStream in = null;
|
||||
try{
|
||||
in = request.getInputStream();
|
||||
Document doc = reader.read(in);
|
||||
Element root = doc.getRootElement();
|
||||
List<Element> list = root.elements();
|
||||
for (Element e: list){
|
||||
map.put(e.getName(),e.getText());
|
||||
}
|
||||
in.close();
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文本对象转换成xml
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
public static String textMessageToXml(Object message){
|
||||
XStream xStream = new XStream();
|
||||
xStream.alias("xml",message.getClass());
|
||||
return xStream.toXML(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化文本信息
|
||||
* @param toUserName
|
||||
* @param fromUserName
|
||||
* @param msgType
|
||||
* @param content
|
||||
* @return
|
||||
*/
|
||||
public static String initText(String toUserName,String fromUserName,String msgType,String content){
|
||||
TextMessage textMessage = new TextMessage();
|
||||
textMessage.setFromUserName(toUserName);
|
||||
textMessage.setToUserName(fromUserName);
|
||||
textMessage.setMsgType(msgType);
|
||||
textMessage.setCreateTime(new Date().getTime());
|
||||
textMessage.setContent(content);
|
||||
return MessageUtils.textMessageToXml(textMessage);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user