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

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

répondre à tous(2)
数据分析师

Pourquoi le compte officiel WeChat répond-il automatiquement à un message indiquant que le compte officiel est temporairement incapable de fournir des services, veuillez réessayer plus tard - Questions et réponses sur le site Web chinois PHP - Pourquoi le compte officiel WeChat répond-il automatiquement à un message indiquant que le compte officiel est temporairement incapable de fournir des services, veuillez réessayer plus tard Essayez - Questions et réponses sur le site Web chinois PHP

Regardez-le et apprenez.

阿神

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal