|
|
@@ -28,9 +28,11 @@ import org.springframework.stereotype.Controller; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import java.io.ByteArrayOutputStream; |
|
|
import java.io.ByteArrayOutputStream; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.io.InputStream; |
|
|
import java.io.InputStream; |
|
|
|
|
|
import java.io.PrintWriter; |
|
|
import java.nio.charset.Charset; |
|
|
import java.nio.charset.Charset; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.util.Date; |
|
|
import java.util.Date; |
|
|
@@ -157,8 +159,7 @@ public class WechatCalllbackController extends BaseController { |
|
|
|
|
|
|
|
|
@RequestMapping(value = "/{appId}/callback") |
|
|
@RequestMapping(value = "/{appId}/callback") |
|
|
@ApiOperation("消息回调") |
|
|
@ApiOperation("消息回调") |
|
|
@ResponseBody |
|
|
|
|
|
public String callback(@PathVariable("appId") String appId, HttpServletRequest request) throws IOException { |
|
|
|
|
|
|
|
|
public void callback(@PathVariable("appId") String appId, HttpServletRequest request, HttpServletResponse response) throws IOException { |
|
|
logger.info("[" + getIpAddr() + "]接收微信APP回调 /{appId}/callback"); |
|
|
logger.info("[" + getIpAddr() + "]接收微信APP回调 /{appId}/callback"); |
|
|
String timestamp = request.getParameter("timestamp"); |
|
|
String timestamp = request.getParameter("timestamp"); |
|
|
String nonce = request.getParameter("nonce"); |
|
|
String nonce = request.getParameter("nonce"); |
|
|
@@ -217,18 +218,30 @@ public class WechatCalllbackController extends BaseController { |
|
|
default: |
|
|
default: |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
return "success"; |
|
|
|
|
|
|
|
|
PrintWriter pr = response.getWriter(); |
|
|
|
|
|
pr.print("success"); |
|
|
|
|
|
pr.flush(); |
|
|
|
|
|
pr.close(); |
|
|
|
|
|
return; |
|
|
} |
|
|
} |
|
|
case "text": |
|
|
case "text": |
|
|
WxMpXmlOutMessage outMessage = openService.getWxOpenMessageRouter().route(inMessage, appId); |
|
|
WxMpXmlOutMessage outMessage = openService.getWxOpenMessageRouter().route(inMessage, appId); |
|
|
if (outMessage == null) { |
|
|
if (outMessage == null) { |
|
|
return "success"; |
|
|
|
|
|
|
|
|
PrintWriter pr = response.getWriter(); |
|
|
|
|
|
pr.print("success"); |
|
|
|
|
|
pr.flush(); |
|
|
|
|
|
pr.close(); |
|
|
|
|
|
return; |
|
|
} |
|
|
} |
|
|
out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, openService.getWxOpenConfigStorage()); |
|
|
out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, openService.getWxOpenConfigStorage()); |
|
|
logger.info(out); |
|
|
logger.info(out); |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
default: |
|
|
return "success"; |
|
|
|
|
|
|
|
|
PrintWriter pr = response.getWriter(); |
|
|
|
|
|
pr.print("success"); |
|
|
|
|
|
pr.flush(); |
|
|
|
|
|
pr.close(); |
|
|
|
|
|
return; |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
// 公众号 |
|
|
// 公众号 |
|
|
@@ -237,18 +250,24 @@ public class WechatCalllbackController extends BaseController { |
|
|
WxMpXmlOutMessage outMessage = mpManager.getRouter(mpService).route(inMessage); |
|
|
WxMpXmlOutMessage outMessage = mpManager.getRouter(mpService).route(inMessage); |
|
|
if (outMessage == null) { |
|
|
if (outMessage == null) { |
|
|
this.logger.info("2 return: success"); |
|
|
this.logger.info("2 return: success"); |
|
|
return "success"; |
|
|
|
|
|
|
|
|
PrintWriter pr = response.getWriter(); |
|
|
|
|
|
pr.print("success"); |
|
|
|
|
|
pr.flush(); |
|
|
|
|
|
pr.close(); |
|
|
|
|
|
return; |
|
|
} |
|
|
} |
|
|
logger.info("组装回复" + outMessage.toXml()); |
|
|
logger.info("组装回复" + outMessage.toXml()); |
|
|
out = outMessage.toEncryptedXml(mpService.getWxMpConfigStorage()); |
|
|
out = outMessage.toEncryptedXml(mpService.getWxMpConfigStorage()); |
|
|
logger.info("组装回复消息-->"+out); |
|
|
logger.info("组装回复消息-->"+out); |
|
|
return "success"; |
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
logger.error("路由消息时出现异常!", e); |
|
|
logger.error("路由消息时出现异常!", e); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return out; |
|
|
|
|
|
|
|
|
PrintWriter pr = response.getWriter(); |
|
|
|
|
|
pr.print(out); |
|
|
|
|
|
pr.flush(); |
|
|
|
|
|
pr.close(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void updateAuditStatus(String appId, boolean success, String reason) { |
|
|
private void updateAuditStatus(String appId, boolean success, String reason) { |
|
|
|