tp5 该公众号提供的服务器出现故障,请稍后再试
最近开发微信公众号,遇到了该公众号提供的服务器出现故障,请稍后再试问题,下面说说本人解决的办法
- 自定义菜单的解决
- 该公众号提供的服务器出现故障,请稍后再试解决
- 小白一枚,多多指教
情况说明
在微信公众平台->开发->基本配置->服务器配置启用,启用后在微信公众号内出现了???问题该公众号提供的服务器出现故障,请稍后再试,并且公众号页面菜单也没了????
当时就疯了
通过问度娘才知道,只要自己启用了服务器配置,就得自己接收消息了,并且菜单也没了,还得自定义菜单,好吧,没办法,自己动手呗,一个一个解决呗
自定义菜单的解决
在接口权限内有个自定义菜单,一步一步跟着说明弄呗
说明文档
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013
在 使用网页调试工具调试该接口
https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95&form=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3%20/menu/create
填写完后就可以了
注意:复制页面的click和view的请求示例会有错误提示
返回结果:
{
“errcode”: 85005,
“errmsg”: “appid not bind weapp hint: [zdDC.a0602vr22]”
提示:
未知返回状态.
一定要把包含appid的弄对了,我的处理方式是删除,很深的坑呀
该公众号提供的服务器出现故障,请稍后再试解决
首先在服务器配置为以启用状态,修改配置提交也没有问题代码如下
public function wechataction()
{
echo input(‘echostr’);
exit;
}
微信公众号提示验证通过,那就表示成功了,上边代码为简化版
提交保存信息通过了,回复信息,但还是提示该公众号提供的服务器出现故障,请稍后再试解决,上网搜了好多,2天,找了好多小例子试,还是不可以,
网上说:可以在运维中心查看原因
开发->运维中心->日志查询->公众号被动恢复
选择api类型->文本text->查询
果然有日志,那个高兴呀,一看被动恢复内容顿时傻眼了,就7行内容,页面还没有显示完全,这哪知道是什么原因那!!!坑坑!!
找到了一个比微信更好的
http://www.fangbei.org/tool/message
比较牛13,感谢方倍
经过测试:接收消息为 模块不存在:wechataction
自己访问http://www.xxx.com/weixin2.0/public/wechataction.html
没有问题
后来想到可能是post提交才可以通过,模块存在
终于找到了原因所在了,在接收消息是需要为post提交,配置服务器需为get提交
好几天那,
深坑
深坑
深坑
以下为本人代码
路由
Route::any("wechataction","index/Index/wechataction");
方法
public function wechataction() {
define("TOKEN", "qf0Rr5At54L4558IAFQ575xJ5aFl88");
if (isset($_GET['echostr'])) {
$echoStr = $_GET["echostr"];
if ($this->checkSignature()) {
echo $echoStr;
exit;
}
}else{
$this->responseMsg();
}
}
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)) {
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if ($keyword == "?" || $keyword == "?") {
$msgType = "text";
$content = date("Y-m-d H:i:s", time());
$result = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $content);
echo $result;
}
} else {
echo "";
exit;
}
}
当公众号回复 ? 时自动回复内容