zoukankan      html  css  js  c++  java
  • 微信公众号开发第一步token验证

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

    注意事项 :

  • 相关阅读:
    斐波那契数列
    进制转换为伪代码
    python模拟进程
    第十一周学习总结
    第十周学习总结
    第九周学习总结
    俄罗斯方块
    熟悉编程语言
    小学四则运算
    第八周学习总结
  • 原文地址:https://www.cnblogs.com/gaogaoxingxing/p/11715276.html
Copyright © 2011-2022 走看看