微擎任意消息该公众号提供的服务器,该公众号提供的服务出现故障,请稍后再试...
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
總結
以上是生活随笔為你收集整理的微擎任意消息该公众号提供的服务器,该公众号提供的服务出现故障,请稍后再试...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毛肚是什么 了解一下毛肚的来历和特点?
- 下一篇: 服务器响应回调函数,解决有关flask-