From e6d1cb162a7688030983d27375570ce2d52f69ff Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 15 六月 2020 15:35:14 +0800
Subject: [PATCH] 上传代码
---
service-front/src/main/java/com/java110/front/controller/WechatGatewayController.java | 185 ++++++++++++++++++++--------------------------
1 files changed, 80 insertions(+), 105 deletions(-)
diff --git a/service-front/src/main/java/com/java110/front/controller/WechatGatewayController.java b/service-front/src/main/java/com/java110/front/controller/WechatGatewayController.java
index 02fb909..5433ed5 100644
--- a/service-front/src/main/java/com/java110/front/controller/WechatGatewayController.java
+++ b/service-front/src/main/java/com/java110/front/controller/WechatGatewayController.java
@@ -1,15 +1,21 @@
package com.java110.front.controller;
+import com.alibaba.fastjson.JSONObject;
import com.java110.core.base.controller.BaseController;
+import com.java110.core.context.IPageData;
+import com.java110.core.context.PageData;
import com.java110.core.factory.AuthenticationFactory;
-import com.java110.core.factory.WechatFactory;
+import com.java110.front.smo.wechatGateway.IWechatGatewaySMO;
+import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.util.StringUtil;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
@@ -34,19 +40,19 @@
private final static Logger logger = LoggerFactory.getLogger(WechatGatewayController.class);
+ @Autowired
+ private IWechatGatewaySMO wechatGatewaySMOImpl;
+
/**
* 寰俊鐧诲綍鎺ュ彛
*
- * @param param
* @param request
*/
- @RequestMapping(path = "/gateway", method = RequestMethod.POST)
- public ResponseEntity<String> auth(@RequestBody String param, HttpServletRequest request) {
- logger.debug("寰俊浼犲叆淇℃伅" + param);
+ @RequestMapping(path = "/gateway", method = RequestMethod.GET)
+ public ResponseEntity<String> gateway(HttpServletRequest request) {
-
- String token = WechatConstant.TOKEN;
+ String token = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.TOKEN);
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
@@ -62,116 +68,85 @@
}
String signature1 = AuthenticationFactory.SHA1Encode(sourceString).toLowerCase();
logger.debug("sourceString = " + sourceString + "||||" + "signature1 = " + signature1);
- if (signature1.equals(signature)) {
- if (echostr == null) {
- String postStr = param;//this.readStreamParameter(request.getInputStream());
- if (postStr == null || postStr.length() == 0) {
- responseStr = "鏈緭鍏ヤ换浣曞唴瀹�";
- } else {
- /*if (postStr.equals(new String(postStr.getBytes("ISO-8859-1"), "ISO-8859-1"))) {
- logger.debug(" This type is iso-8859-1");
- postStr = new String(postStr.getBytes("ISO-8859-1"), "UTF-8");
-
- }
- if (postStr.equals(new String(postStr.getBytes("GB2312"), "GB2312"))) {
- logger.debug(" This type is GB2312" + postStr);
- postStr = new String(postStr.getBytes("GB2312"), "UTF-8");
- logger.debug(" change postStr to utf-8 " + postStr);
- }
- if (postStr.equals(new String(postStr.getBytes("GBK"), "GBK"))) {
- logger.debug(" This type is GBK");
- postStr = new String(postStr.getBytes("GBK"), "UTF-8");
-
- }
- postStr = new String(postStr.getBytes("GB2312"), "UTF-8");*/
- Document document;
- try {
- document = DocumentHelper.parseText(postStr);
- Element root = document.getRootElement();
- String fromUserName = root.elementText("FromUserName");
- String toUserName = root.elementText("ToUserName");
- String keyword = root.elementTextTrim("Content");
- String msgType = root.elementTextTrim("MsgType");
- String event = root.elementText("Event");
- String eventKey = root.elementText("EventKey");
- if (WechatConstant.MSG_TYPE_TEXT.equals(msgType)) {
- responseStr = textResponseHandler(fromUserName, toUserName, keyword);
- } else if (WechatConstant.MSG_TYPE_EVENT.equals(msgType)) {
- responseStr = eventResponseHandler(fromUserName, toUserName, keyword, event, eventKey);
- } else {
- responseStr = eventResponseHandler(fromUserName, toUserName, keyword, event, eventKey);
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- logger.error("澶勭悊澶辫触", e);
- responseStr = "浜诧紝缃戠粶瓒呮椂锛岃绋嶅悗閲嶈瘯";
- }
- }
- } else {
+ try {
+ if (signature1.equals(signature)) {
responseStr = echostr;
+ logger.debug(">>>>>>>>>>>>>..responseStr>>>>>>>>>>>>>>>" + responseStr);
+ } else {
+ responseStr = "浜诧紝闈炴硶璁块棶锛岀鍚嶅け璐�";
}
- logger.debug(">>>>>>>>>>>>>..responseStr>>>>>>>>>>>>>>>" + responseStr);
- } else {
- responseStr = "浜诧紝闈炴硶璁块棶锛岀鍚嶅け璐�";
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ logger.error("澶勭悊澶辫触", e);
+ responseStr = "浜诧紝缃戠粶瓒呮椂锛岃绋嶅悗閲嶈瘯";
}
return new ResponseEntity<String>(responseStr, HttpStatus.OK);
}
/**
- * 閺傚洦婀版穱鈩冧紖閸ョ偛顦�
+ * 寰俊鐧诲綍鎺ュ彛
*
- * @param fromUserName
- * @param toUserName
- * @param keyword
- * @return
+ * @param request
*/
- private String textResponseHandler(String fromUserName, String toUserName,
- String keyword) {
- if (keyword == null || keyword.length() == 0) {
- return WechatFactory
- .formatText(toUserName, fromUserName, "鏈寘鍚换浣曚俊鎭�");
- } else {
- String responseStr = keyWordHandler(fromUserName, toUserName,
- keyword);
- return WechatFactory
- .formatText(toUserName, fromUserName, responseStr);
+ @RequestMapping(path = "/gateway", method = RequestMethod.POST)
+ public ResponseEntity<String> gateway(@RequestBody String param, HttpServletRequest request) {
+
+ String token = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.TOKEN);
+ String signature = request.getParameter("signature");
+ String timestamp = request.getParameter("timestamp");
+ String nonce = request.getParameter("nonce");
+ String openId = request.getParameter("openid");
+ String java110AppId = request.getParameter("java110AppId");
+ String responseStr = "";
+ ResponseEntity<String> responseEntity = null;
+ logger.debug("token = " + token + "||||" + "signature = " + signature + "|||" + "timestamp = "
+ + timestamp + "|||" + "nonce = " + nonce + "|||| param = " + param + "|||| openId= " + openId);
+ String sourceString = "";
+ String[] ss = new String[]{token, timestamp, nonce};
+ Arrays.sort(ss);
+ for (String s : ss) {
+ sourceString += s;
}
- }
+ String signature1 = AuthenticationFactory.SHA1Encode(sourceString).toLowerCase();
+ logger.debug("sourceString = " + sourceString + "||||" + "signature1 = " + signature1);
+ try {
+ if (!signature1.equals(signature)) {
+ responseStr = "浜诧紝闈炴硶璁块棶锛岀鍚嶅け璐�";
+ return new ResponseEntity<String>(responseStr, HttpStatus.OK);
+ }
+ String postStr = param;
+ if (StringUtil.isEmpty(postStr)) {
+ responseStr = "鏈緭鍏ヤ换浣曞唴瀹�";
+ return new ResponseEntity<String>(responseStr, HttpStatus.OK);
+ }
+ Document document = DocumentHelper.parseText(postStr);
+ Element root = document.getRootElement();
+ String fromUserName = root.elementText("FromUserName");
+ String toUserName = root.elementText("ToUserName");
+ String keyword = root.elementTextTrim("Content");
+ String msgType = root.elementTextTrim("MsgType");
+ String event = root.elementText("Event");
+ String eventKey = root.elementText("EventKey");
+ JSONObject paramIn = new JSONObject();
+ paramIn.put("fromUserName", fromUserName);
+ paramIn.put("toUserName", toUserName);
+ paramIn.put("keyword", keyword);
+ paramIn.put("msgType", msgType);
+ paramIn.put("event", event);
+ paramIn.put("eventKey", eventKey);
+ IPageData pd = PageData.newInstance().builder("-1", "", "", paramIn.toJSONString(),
+ "", "", "", "",
+ java110AppId);
+ responseEntity = wechatGatewaySMOImpl.gateway(pd);
- private String keyWordHandler(String fromUserName, String toUserName,
- String keyword) {
- // TODO Auto-generated method stub
- String domain = WechatConstant.TOKEN;
- //String url = domain + "/IMSS/indexPage.do";
- return "HC灏忓尯鐗╀笟绠$悊绯荤粺鏄敱java110鍥㈤槦浜�2017骞�4鏈堜唤鍙戣捣鐨勫墠鍚庣鍒嗙銆佸垎甯冨紡鏋舵瀯寮�婧愰」鐩紝鐩墠鎴戜滑鐨勪唬鐮佸紑婧愬湪github 鍜実itee涓婏紝寮�婧愰」鐩敱HC灏忓尯绠$悊绯荤粺鍚庣锛孒C灏忓尯绠$悊绯荤粺鍓嶇锛孒C灏忓尯绠$悊绯荤粺涓氫富鎵嬫満鐗堝拰HC灏忓尯绠$悊绯荤粺鐗╀笟鎵嬫満鐗堬紝涓氬姟鎶�鏈氦娴佺兢锛�827669685";
- }
-
- /**
- * 浜嬩欢澶勭悊
- *
- * @param fromUserName
- * @param toUserName
- * @param event
- * @param eventKey
- * @return
- * @throws Exception
- */
- @SuppressWarnings({"unchecked"})
- public String eventResponseHandler(String fromUserName, String toUserName, String keyWords, String event,
- String eventKey) throws Exception {
- String resultStr = "";
- // 鐠併垽妲�
- if (event.equals("subscribe")) {
- resultStr = "HC灏忓尯鐗╀笟绠$悊绯荤粺鏄敱java110鍥㈤槦浜�2017骞�4鏈堜唤鍙戣捣鐨勫墠鍚庣鍒嗙銆佸垎甯冨紡鏋舵瀯寮�婧愰」鐩紝鐩墠鎴戜滑鐨勪唬鐮佸紑婧愬湪github 鍜実itee涓婏紝寮�婧愰」鐩敱HC灏忓尯绠$悊绯荤粺鍚庣锛孒C灏忓尯绠$悊绯荤粺鍓嶇锛孒C灏忓尯绠$悊绯荤粺涓氫富鎵嬫満鐗堝拰HC灏忓尯绠$悊绯荤粺鐗╀笟鎵嬫満鐗堬紝涓氬姟鎶�鏈氦娴佺兢锛�827669685";
- } else if (event.equals("unsubscribe")) {
-
- } else if (event.equalsIgnoreCase("CLICK")) {
- resultStr = textResponseHandler(fromUserName, toUserName,
- eventKey);
- } else {
-
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ logger.error("澶勭悊澶辫触", e);
+ responseStr = "浜诧紝缃戠粶瓒呮椂锛岃绋嶅悗閲嶈瘯";
+ responseEntity = new ResponseEntity<String>(responseStr, HttpStatus.OK);
}
- return WechatFactory.formatText(toUserName, fromUserName, resultStr);
+
+ return responseEntity;
}
}
--
Gitblit v1.8.0