- 公众号模板消息事件回调超时?
[图片] 收到告警,说是我们的回调处理接口耗时过长;然后我们看了回调事件都是模板消息发送结果的回调 [图片] 我们针对这类事件,是没有任何逻辑处理的,就是解析入参然后判定逻辑后就直接返回,可以看下我们的处理代码 @ApiOperation(value = "硅基动感SIJOY微信公众号互动回调") @PostMapping("/sijoy/interaction/push") public void interactionPush(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); // 调用核心业务类接收消息、处理消息 String result = this.serviceFactory.getWeChatService().interactionPush(request); if (StringUtils.isBlank(result)) { result = "success"; } // 响应消息 PrintWriter out = null; try { out = response.getWriter(); out.print(result); } catch (IOException e) { LOGGER.error("硅基动感SIJOY微信公众号互动推送失败,msg为[{}]", e); } finally { if (out != null) { // 释放资源 out.close(); // 关闭流 } } } @Transactional(rollbackFor = Exception.class) @Override public String interactionPush(HttpServletRequest request) { TimeInterval timer = DateUtil.timer(); String result = ""; // xml请求解析 Map<String, String> content = WechatOffcialAccountMsgUtils.parseXml(request); // 消息类型 String msgType = content.get("MsgType"); switch (msgType) { // 文本消息 case "text": result = this.interactionPushForText(content); //与上边特定回复互斥 //result = "success"; LOGGER.info("*文本消息*==入参:{}", content); LOGGER.info("*文本消息*==返回:{}", result); break; // 事件类型消息 case "event": result = this.interactionPushForEvent(content); LOGGER.info("*事件消息*==入参:{}", content); LOGGER.info("*事件消息*==返回:{}", result); break; default: //其他类型消息,默认回复小程序链接 result = this.interactionPushForDefault(content); LOGGER.info("*其他类型消息*==消息类型:{},入参:{}",msgType, content); LOGGER.info("*其他类型消息*==返回:{}", result); long otherCost = timer.intervalMs(); if (otherCost > 1000 ){ //大于1S LOGGER.warn("微信消息other处理过慢,耗时:[{}ms],[content:{},result:{}]",otherCost,content,result); } break; } return result; } /** * 互动推送事件处理 * * @param content */ private String interactionPushForEvent(Map<String, String> content) { String result = ""; // 事件类型 String event = content.get("Event"); switch (event) { // 关注事件 case "subscribe": result = this.subscribe(content); break; // 取消关注 case "unsubscribe": this.unsubscribe(content); break; } return result;} 然后我们的接口请求日志显示这些请求的错误码都是499 [图片]
11-18 - 请问"通过 code 获取 access_token"这里获取到的access_token
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Authorized_API_call_UnionID.html 请问"通过 code 获取 access_token"这里获取到的access_token是只有当前用户的微信请求可以用?还是说整个移动应用的所有请求都能用? errcode为[40001],errmsg[invalid credential, access_token is invalid or not latest, rid: 66a70459-78a26790-673da5f6]
2024-07-29