فهرست منبع

Merge remote-tracking branch 'origin/dev' into dev

Progr1mmer 6 سال پیش
والد
کامیت
492d547f33

+ 32 - 30
svr/svr-base/src/main/java/com/yihu/jw/business/wx/controller/WechatCoreController.java

@ -67,45 +67,41 @@ public class WechatCoreController extends EnvelopRestEndpoint {
     */
    @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public void receiveMessages(HttpServletRequest request, HttpServletResponse response) {
        try {
            String signature = request.getParameter("signature").toString();
            String timestamp = request.getParameter("timestamp").toString();
            String nonce = request.getParameter("nonce").toString();
            if (validate(signature, timestamp, nonce)) {
                String xmlStr = wechatCoreService.messageProcess(request);
                // 判断返回值是xml、json格式(取关是空串)
                Boolean flag = wechatCoreService.isXML(xmlStr);
                if (xmlStr == "error") {
                    // 服务器错误
                    response.setStatus(500);
                } else if (!flag && StringUtils.isNotEmpty(xmlStr)) {
                    JSONObject json = new JSONObject(xmlStr);
    public void receiveMessages(HttpServletRequest request, HttpServletResponse response) throws Exception{
        String signature = request.getParameter("signature").toString();
        String timestamp = request.getParameter("timestamp").toString();
        String nonce = request.getParameter("nonce").toString();
        if (validate(signature, timestamp, nonce)) {
            String xmlStr = wechatCoreService.messageProcess(request);
            // 判断返回值是xml、json格式(取关是空串)
            Boolean flag = wechatCoreService.isXML(xmlStr);
            if (xmlStr == "error") {
                // 服务器错误
                response.setStatus(500);
            } else if (!flag && StringUtils.isNotEmpty(xmlStr)) {
                JSONObject json = new JSONObject(xmlStr);
//                    if (json.has("openId")) {
//                        if (StringUtils.isNotEmpty(json.getString("openId")) && !("undefined".equals(json.getString("openId")))) {
//                            pushMsgTask.putWxMsg(getAccessToken(), json.getInt("type"), json.getString("openId"), null, json);
//                        }
//                    }
                } else {
                    // 返回消息(图文消息)
                    response.setHeader("Content-type", "text/html;charset=UTF-8");
                    //这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859
                    response.setCharacterEncoding("UTF-8");
            } else {
                // 返回消息(图文消息)
                response.setHeader("Content-type", "text/html;charset=UTF-8");
                //这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859
                response.setCharacterEncoding("UTF-8");
                    logger.info(xmlStr);
                logger.info(xmlStr);
                    response.getWriter().print(xmlStr);
                }
            } else {
                // 验证失败
                response.setStatus(401);
                response.getWriter().print(xmlStr);
            }
        } catch (Exception e) {
            e.printStackTrace();
            // 服务器错误
            response.setStatus(500);
        } else {
            // 验证失败
            response.setStatus(401);
        }
    }
@ -177,4 +173,10 @@ public class WechatCoreController extends EnvelopRestEndpoint {
        }
        return strDigest;
    }
//    @RequestMapping(value ="test", method = RequestMethod.POST)
//    @ResponseBody
//    public String  testProcess() throws Exception{
//        return wechatCoreService.testProcess();
//    }
}

+ 2 - 6
svr/svr-base/src/main/java/com/yihu/jw/business/wx/controller/WxMenuController.java

@ -33,12 +33,8 @@ public class WxMenuController extends EnvelopRestEndpoint {
    @PostMapping(value = WechatRequestMapping.WxMenu.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "添加微信菜单", notes = "添加微信菜单")
    public MixEnvelop createWxMenu(@ApiParam(name = "wxId", value = "微信id")
                                    @RequestParam(value = "wxId", required = false)String wxId) {
        try {
            return wxMenuService.createWxMenu(wxId);
        } catch (ApiException e) {
            return MixEnvelop.getError(e.getMessage(), e.getErrorCode());
        }
                                    @RequestParam(value = "wxId", required = false)String wxId) throws Exception{
        return wxMenuService.createWxMenu(wxId);
    }
//    @PutMapping(value = WechatRequestMapping.WxMenu.api_update, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)

+ 27 - 2
svr/svr-base/src/main/java/com/yihu/jw/business/wx/service/WechatCoreService.java

@ -84,6 +84,22 @@ public class WechatCoreService {
        }
    }
    public String  testProcess() throws Exception{
        String returnStr = "";
        Map<String, String> message = new HashMap();
        message.put("Content","1");
        message.put("CreateTime","1534486843");
        message.put("ToUserName","gh_73959f6e996b");
        message.put("FromUserName","oVH-2uJdhNrcAMt0Jhp3PMarDdaM");
        message.put("MsgType","text");
        message.put("MsgId","6590570807493983575");
        returnStr = messageProcess(message);
        return returnStr;
    }
    /**
     * 对接收到的消息进行处理
@ -97,10 +113,12 @@ public class WechatCoreService {
        switch (msgType) {
            case WeiXinMessageUtils.REQ_MESSAGE_TYPE_EVENT:  // 事件消息
                logger.info("MsgType:event");
                result = eventProcess(message);
                break;
            case WeiXinMessageUtils.RESP_MESSAGE_TYPE_TEXT:  // 回复文本消息
                //回复文本消息 处理
                logger.info("MsgType:text");
                result = textProcess(message);
                break;
            default:
@ -227,12 +245,19 @@ public class WechatCoreService {
                String description = (String)graphic.get("description");
                String picUrl = (String)graphic.get("picUrl");
                url = url.replace("{server}",baseUrl).replace("{appId}",appId);
                if(url.indexOf("{server}")!=-1){
                    url = url.replace("{server}",baseUrl);
                }
                if(url.indexOf("{appId}")!=-1){
                    url = url.replace("{appId}",appId);
                }
                article.put("Url", url);
                article.put("Title", title);
                article.put("Description", description);
                article.put("PicUrl", picUrl);
                articles.add(article);
            }
            result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
        }
@ -262,7 +287,7 @@ public class WechatCoreService {
                " AND g.wechat_id = '"+wxId+"' " +
                " AND g.scene = '"+secene+"' " +
                " AND m.`status` = 1 " +
                " ORDER BY m.sort ASC";
                " ORDER BY g.sort ASC";
        List<Map<String,Object>> group = jdbcTemplate.queryForList(sql);
        return group;
    }