微信投票服务器出现故障了怎么办,该公众号提供的服务出现故障,请稍后再试...

news/2024/7/3 4:40:05

ca3dc7b15bce

image.png

用户发送消息给公众号时,假如服务器无法保证在五秒内处理并回复,必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试(这种情况下,可以使用客服消息接口进行异步回复),否则,将出现严重的错误提示。

一旦遇到以下2种情况,微信都会在公众号会话中,向用户下发系统提示“该公众号暂时无法提供服务,请稍后再试”:

1、开发者在5秒内未回复任何内容

2、开发者回复了异常数据,比如JSON数据等

所以针对公众号提出的可能存在的问题1,给出以下解决方式:

1、直接回复success(推荐方式)

2、直接回复空串(指字节长度为0的空字符串,而不是XML结构体中content字段的内容为空)

public function responseMsg() {

//$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

$postStr = file_get_contents('php://input');

if (!empty($postStr)) {

$postObj = simplexml_load_string($postStr); //, 'SimpleXMLElement', LIBXML_NOCDATA

//关注事件时推送消息

if (strtolower($postObj->MsgType) == 'event') {//事件

if (strtolower($postObj->Event == 'subscribe')) {//关注

$domain = Yii::$app->params['domain']['www'];

$imgDomain = Yii::$app->params['domain']['img'] . 'logo.png';

$array = array(

array('title' => '欢迎关注一网超市',

'description' => '上一网 逛超市 多快好省!',

'picUrl' => $imgDomain,

'url' => $domain,

),

);

$textTpl = "

%s

" . count($array) . "

";

foreach ($array as $key => $val) {

$textTpl .= "

";

}

$textTpl .= "

";

$fromUserName = $postObj->FromUserName;

$toUserName = $postObj->ToUserName;

$time = time();

echo sprintf($textTpl, $fromUserName, $toUserName, $time, 'news');

$ret = array('openid' => "$fromUserName", 'event' => 'subscribe');

return json_encode($ret);

} else if ($postObj->Event == "VIEW") {

$fromUserName = $postObj->FromUserName;

$ret = array('openid' => "$fromUserName", 'event' => 'VIEW');

return json_encode($ret);

} else if ($postObj->Event == "CLICK") {

$fromUserName = $postObj->FromUserName;

$ret = array('openid' => "$fromUserName", 'event' => 'VIEW');

return json_encode($ret);

} else {

$fromUserName = $postObj->FromUserName;

$ret = array('openid' => "$fromUserName", 'event' => 'VIEW');

return json_encode($ret);

}

} else {//$postObj->MsgType=text 在公众号发消息收到的就是text类型

echo '';//这里就是回复的空字符串或者success,即echo 'success';

exit;//这个退出是关键,必须加上,没有则还是会出现那个标题的提示

}

} else {

echo '';

exit;

}

}

问题二是说回复了异常的json,就是回复消息时拼的xml中包含了空格,大家可以看下,自己是否也存在类似错误。

如:

< ![CDATA[toUser] ]>< ![CDATA[fromUser] ]>12345678< ![CDATA[text] ]>< ![CDATA[你好] ]>

去掉空格后:

12345678


http://www.niftyadmin.cn/n/4022175.html

相关文章

手把手教你通过Ambari新建Hadoop集群图解案例

手把手教你通过Ambari新建Hadoop集群图解案例 作者&#xff1a;尹正杰 版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。 登陆系统之后&#xff0c;会看到Ambari空空如也的欢迎界面&#xff0c;接下来我们就需要介绍如何通过Ambari新建Hadoo…

xp系统怎样创建新的宽带连接服务器地址,xp怎么创建宽带连接服务器地址

xp怎么创建宽带连接服务器地址 内容精选换一换创建弹性云服务器&#xff0c;请参见《弹性云服务器用户指南》。该弹性云服务器用于连接云数据库RDS实例&#xff0c;需要与目标实例处于同一虚拟私有云内。正确配置安全组&#xff0c;使得弹性云服务器可以通过“连接地址”访问云…

文件服务器有没有只备份权限,云服务器上传文件是否有权限

云服务器上传文件是否有权限 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。打开FTP服务器上的文件夹时发生错误&#xff0c;请检查…

计算机如何执行存数指令

计算机如何执行存数指令 STA M指令&#xff1a;PC→MAR&#xff0c;MAR→MM&#xff0c;MM→MDR&#xff0c;MDR→IR&#xff0c; OP(IR)→CU&#xff0c;Ad(IR)→MAR&#xff0c;ACC→MDR&#xff0c;MAR→MM&#xff0c;WR

计算机是如何区分读到的内存是指令还是数据

指令和数据都是应用上的概念。汇编语言&#xff0c;通过编译器编译&#xff0c;最后送给CPU的都是二进制数&#xff0c;那么CPU在一堆纷繁复杂的二进制&#xff0c;0110000110001中如何区分指令和数据呢&#xff1f; 我们需要明白以下几点&#xff1a;&#xff08;1&#xff09…

Python中公共方法

1.内置函数 Python中包含以下内置函数 函数描述备注len(item)计算容器中元素的个数 del(item)删除元素del有两种方式max(item)返回容器中元素最大值如果item是字典那么只针对key比较min(item)返回容器中元素最小值如果item是字典那么只针对key比较cmp(item1,item2)比较两个值Py…

京东首页左侧广告部分设计

<div class"w grid">//中间主体部分<div class"ad-l"><a href"#"><img src"img/ad-l.png" /></a><a href"#"><img src"img/ad-r.jpg" class"ad-r"/></a&…