为什么微信公众号自动回复消息会出现该公众号暂时无法提供服务,请稍后在试
phpcn_u528
phpcn_u528 2017-01-21 23:02:24
0
2
1206

<?php

/**

  * wechat php test

  */


//define your token

define("TOKEN", "wuxuweixin");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->responseMsg();


class wechatCallbackapiTest

{

    public function valid()

    {

        $echoStr = $_GET["echostr"];


        //valid signature , option

        if($this->checkSignature()){

            echo $echoStr;

            exit;

        }

    }


    public function responseMsg()

    {

        //get post data, May be due to the different environments

        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];


          //extract post data

        if (!empty($postStr)){

                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

                   the best way is to check the validity of xml by yourself */

                libxml_disable_entity_loader(true);

                  $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>

                            </xml>";             

                if(!empty( $keyword ))

                {

                      $msgType = "text";

                    $contentStr = "Welcome to wechat world!";

                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

                    echo $resultStr;

                }else{

                    echo "Input something...";

                }


        }else {

            echo "";

            exit;

        }

    }

        

    private function checkSignature()

    {

        // you must define TOKEN by yourself

        if (!defined("TOKEN")) {

            throw new Exception('TOKEN is not defined!');

        }

        

        $signature = $_GET["signature"];

        $timestamp = $_GET["timestamp"];

        $nonce = $_GET["nonce"];

                

        $token = TOKEN;

        $tmpArr = array($token, $timestamp, $nonce);

        // use SORT_STRING rule

        sort($tmpArr, SORT_STRING);

        $tmpStr = implode( $tmpArr );

        $tmpStr = sha1( $tmpStr );

        

        if( $tmpStr == $signature ){

            return true;

        }else{

            return false;

        }

    }

}

这是我的demo,感觉xml结果也没错,但是请求时出现了微信公众号自动回复消息会出现该公众号暂时无法提供服务,请稍后在试错误,
这是为什么呢,谢谢?


phpcn_u528
phpcn_u528

reply all(2)
数据分析师

Why does the WeChat official account automatically reply to messages that the official account is temporarily unable to provide services, please try again later - PHP Chinese website Q&A - Why does the WeChat official account automatically reply to messages that the official account is temporarily unable to provide services, please try again I will try it later - PHP Chinese website Q&A

Take a look around and learn.

阿神

没使用过微信公众号,但是关于“自动回复消息会出现该公众号暂时无法提供服务”这个问题,百度上有很多解决方法,应该是你的配置问题,可以参考下这个百度经验的解决方案该公众账号暂时无法提供服务 请稍后再试,希望对你有帮助。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template