版权声明:本文为博主原创文章,未经博主允许不得转载。
Grant Ling原创,转载请注明出处
从刚开始接触微信开发就发现网上都在吐槽,微信开发到处是坑!在开发的过程中也确实不断的遇到各种大小的坑,跌跌撞撞也都过来了。
今天又发现了一个坑,这个坑一般不容易被发现,网上也没任何资料,觉得必须记录下来,否则说不定下次又掉这坑里了!废话少说,开始填坑吧!
问题描述:
1. 凡是扫描带参数的二维码,无论是长期还是临时的二维码都出现“该公众号暂时无法提供服务,请稍后再试”。并且是扫描完后马上就出现该错误,肯定没到微信所要求的5秒内响应时间。
2. 给公众号发送文本消息、语音消息等其他消息则不会出现该错误
Java开发,响应微信请求的思路是:
为了确保不出现“该公众号暂时无法提供服务,请稍后再试”的错误,我在程序中采取了两措施:
1. 在收到微信消息的第一时间就通过异步回复信息。
2. 最程序最后,通过finally的方式回复空串。
protected void doPost(HttpServletRequest request, HttpServletResponseresponse) throws ServletException,IOException {
try{
Map msgMap = WeChatMessageUtil.parseXml(request);
final StringopenID = (String) msgMap.get(BaseMessage.PROP_FROM_USER_NAME);
//首先异步回复消息,确保不超时
Thread responseThread =new Thread(){
public void run(){
//调用客服接口回复消息
WeChatMessageUtil.replyTextByCS(openID,“”, null);
}
};
responseThread.start();
}catch(Exceptione){
}finally{
//最后回复空串
PrintWriter writer = response.getWriter();
writer.print(“”);
writer.flush();
writer.close();
}
}
在网上搜索了一圈,都说是回复超时,或者是回复内容不规范。但是同样的方法,在回复文本消息或者其他非扫码事件的时候都没有任何问题。
我还尝试了同样的程序,我接入别的公众号,扫码时却不会出现该错误。
为此,我认为问题肯定是在公众号的设置上。于是又将微信号的各种设置给倒腾了一遍。结果还是一样。
在微信的这一圈设置中,每一个细节都留意了。看到微信提供的【运维中心】的【接口警报】功能,就想着看看这能不能有点帮助,于是开通了【接口警报】功能。
如果之前授权过,没有取消或者重新授权,都会出现以上问题。
这里务必取消“账号服务权限”!!!
到此,问题解决!!!
原来是因为这个默认授权,所有的二维码扫描都转到腾讯云去了!
这个坑够深吧???
我只能说,微信开发的坑没有最深,只有更深!!!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114083.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...