Procházet zdrojové kódy

[公众号消息][修改]:第三方平台api处理公众号消息

release
Stormeye Wu před 7 roky
rodič
revize
e59a22e905
2 změnil soubory, kde provedl 27 přidání a 12 odebrání
  1. +27
    -8
      mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java
  2. +0
    -4
      mlWechatOpen/src/main/java/com/iformall/mp/builder/TextBuilder.java

+ 27
- 8
mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java Zobrazit soubor

@@ -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) {


+ 0
- 4
mlWechatOpen/src/main/java/com/iformall/mp/builder/TextBuilder.java Zobrazit soubor

@@ -16,13 +16,9 @@ public class TextBuilder extends AbstractBuilder {
@Override @Override
public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage, public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,
WxMpService service) { WxMpService service) {
logger.info("content->" +content);
logger.info("getToUser->" +wxMessage.getToUser());
logger.info("getFromUser->" +wxMessage.getFromUser());
WxMpXmlOutTextMessage m = WxMpXmlOutMessage.TEXT().content(content) WxMpXmlOutTextMessage m = WxMpXmlOutMessage.TEXT().content(content)
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
.build(); .build();
logger.info(m.toString());
return m; return m;
} }




Načítá se…
Zrušit
Uložit