微信公众号开发启用服务器配置提交token验证失败

处理方式如下:


<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/6/12
* Time: 15:40
*/

/**
* wechat php test
*/
//url               http://域名/wxtest.php
//token             weixin
//EncodingAESKey    随机生成
//加密方式          明文

//wxtest.php文件


//你自己设置的token(自定义的)

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->valid();


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)) {


           $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 (!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()

   {

       $signature = $_GET["signature"];

       $timestamp = $_GET["timestamp"];

       $nonce = $_GET["nonce"];


       $token = TOKEN;

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

       sort($tmpArr);

       $tmpStr = implode($tmpArr);

       $tmpStr = sha1($tmpStr);


       if ($tmpStr == $signature) {

           return true;

       } else {

           return false;

       }

   }

}