WxJava
WxJava copied to clipboard
该公众号提供服务出现故障,请稍后重试
提问前,请确保阅读过项目首页说明以及wiki开发文档相关内容,尤其是常见问题部分。完成内容后,请务必移除包括本句在内的无用内容,以免影响阅读,否则直接关闭,谢谢合作~
另外如果确认属于bug,而且已明确如何修复,请参考贡献指南直接提交PR,省的浪费时间在这里描述问题,非常感谢配合
简要描述
对接公众号品台能力,自动回复总是出现 提供服务故障
模块版本情况
- WxJava 模块名: weixin-java-mp
- WxJava 版本号:4.6.0
详细描述
回调代码 public ResponseEntity<Object> post(final String appid, final HttpServletRequest request, final String requestBody) { String encType = request.getParameter("encrypt_type"); String nonce = request.getParameter("nonce"); String timestamp = request.getParameter("timestamp"); String msgSignature = request.getParameter("msg_signature"); String signature = request.getParameter("signature"); String openid = request.getParameter("openid"); log.info("接收微信请求:[openid=[{}], [openid=[{}],[signature=[{}], encType=[{}], msgSignature=[{}]," + " timestamp=[{}], nonce=[{}], requestBody=[{}] ", appid, openid, signature, encType, msgSignature, timestamp, nonce, requestBody);
if (!this.wxMpService.switchover(appid)) {
throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", appid));
}
if (!wxMpService.checkSignature(timestamp, nonce, signature)) {
throw new IllegalArgumentException("非法请求,可能属于伪造的请求!");
}
// 这里异步发送客服消息 return ResponseEntity.ok(""); }
配置信息
public WxMpMessageRouter messageRouter(final WxMpService wxMpService) { final WxMpMessageRouter newRouter = new WxMpMessageRouter(wxMpService);
// 记录所有事件的日志 (异步执行)
newRouter.rule().handler(logHandler).next();
// 自定义菜单事件
newRouter.rule().msgType(EVENT).event(WxConsts.EventType.CLICK).handler(menuHandler).end();
// 关注事件,扫码事件::没有关注
newRouter.rule().msgType(EVENT).event(SUBSCRIBE).handler(subscribeHandler).end();
// 关键词回复,无关键词回复
newRouter.rule().msgType(WxConsts.MassMsgType.TEXT).handler(msgTextHandler).end();
// 扫码事件::已经关注
newRouter.rule().msgType(EVENT).event(WxConsts.EventType.SCAN).handler(scanHandler).end();
return newRouter;
}