今天配置了一下下午的token,但是不知道怎么回事就是配置不成功,在网上找了多的方法也没有解决了这个问题,但是最终做在一个论坛上找到了解决的方法。真是激动的不要不要的,话不多说直接怼代码。

  这个是微信公众平台上的配置。

  

  这边的url值要直接点到文件上,不然不会成功.  

然后后台的设置

 1 <?php
 2 namespace app\weixin\controller;
 3 
 4 use think\Controller;
 5 
 6 define("TOKEN", "******");//这里要输入你的token值
 7 
 8 // $wechatObj = new wechatCallbackapiTest();
 9 
10 // $wechatObj->valid();
11 
12 class Wx2 extends Controller {
13     
14     public function index()  
15     {  
16         $echoStr = $_GET["echostr"];  
17   
18         //valid signature , option  
19         if($this->checkSignature()){  
20             ob_clean(); //丢弃缓存中的内容
21             echo $echoStr;  
22             exit;  
23         }  
24     }  
25   
26     public function responseMsg()  
27     {  
28         //get post data, May be due to the different environments  
29         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  
30   
31         //extract post data  
32         if (!empty($postStr)){  
33                   
34                 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);  
35                 $fromUsername = $postObj->FromUserName;  
36                 $toUsername = $postObj->ToUserName;  
37                 $keyword = trim($postObj->Content);  
38                 $time = time();  
39                 $textTpl = "<xml>  
40                             <ToUserName><![CDATA[%s]]></ToUserName>  
41                             <FromUserName><![CDATA[%s]]></FromUserName>  
42                             <CreateTime>%s</CreateTime>  
43                             <MsgType><![CDATA[%s]]></MsgType>  
44                             <Content><![CDATA[%s]]></Content>  
45                             <FuncFlag>0</FuncFlag>  
46                             </xml>";               
47                 if(!empty( $keyword ))  
48                 {  
49                     $msgType = "text";  
50                     $contentStr = "Welcome to wechat world!";  
51                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);  
52                     echo $resultStr;  
53                 }else{  
54                     echo "Input something...";  
55                 }  
56   
57         }else {  
58             echo "";  
59             exit;  
60         }  
61     }  
62           
63     private function checkSignature()  
64     {  
65         $signature = $_GET["signature"];  
66         $timestamp = $_GET["timestamp"];  
67         $nonce = $_GET["nonce"];      
68                   
69         $token = TOKEN;  
70         $tmpArr = array($token, $timestamp, $nonce);  
71         sort($tmpArr);  
72         $tmpStr = implode( $tmpArr );  
73         $tmpStr = sha1( $tmpStr );  
74           
75         if( $tmpStr == $signature ){  
76             return true;  
77         }else{  
78             return false;  
79         }  
80     }
81 
82 
83 }

  若是这种方法也不行的,只有修改编码方式来执行了,修改编码方式在网上有好多,自己随便一搜索就出来,

  今天就分享到这里,然后觉得我写的不错的请推荐,谢谢

<?phpnamespace app\weixin\controller;
use think\Controller;
define(“TOKEN”, “ouzhouyinxiang666888”);
// $wechatObj = new wechatCallbackapiTest();
// $wechatObj->valid();
class Wx2 extends Controller {public function index()      {          $echoStr = $_GET[“echostr”];            //valid signature , option          if($this->checkSignature()){          ob_clean();            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;          }      }

}

版权声明:本文为CcPz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/CcPz/p/9437933.html