• 微信公众号基本配置


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

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

      

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

    然后后台的设置

     1 <?php
     2 namespace appweixincontroller;
     3 
     4 use thinkController;
     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,SORT_STRING); 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 }

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

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

  • 相关阅读:
    mysql 视图
    CSS 上下居中和最低高度语法
    escape()、encodeURI()、encodeURIComponent()区别详解
    YII事件EVENT示例
    linux history命令优化
    mysql 之full join
    redis学习之数据类型
    <canvas>设置宽高遇到的问题
    关于块级元素撑满整个浏览器窗口
    jquery中bind()绑定多个事件
  • 原文地址:https://www.cnblogs.com/CcPz/p/9437933.html
Copyright © 2020-2023  润新知