码迷,mamicode.com
首页 > 微信 > 详细

微信公众号开发第一步token验证

时间:2019-10-21 19:23:23      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:trim   signature   rom   def   默认   XML   print   time   define   

 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 }

注意事项 :

微信公众号开发第一步token验证

标签:trim   signature   rom   def   默认   XML   print   time   define   

原文地址:https://www.cnblogs.com/gaogaoxingxing/p/11715276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!