valid(); wechatCallbackapiTest { {代码...} } ?>"/> valid(); wechatCallbackapiTest { {代码...} } ?>">

Home  >  Article  >  Backend Development  >  微信开发模式 - 微信接入验证代码中,<?php?>是什么意思?

微信开发模式 - 微信接入验证代码中,<?php?>是什么意思?

WBOY
WBOYOriginal
2016-06-06 20:08:031300browse

代码如下:

<code><?php /**</code></code>
    • wechat php test
      */

    //define your token
    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->valid();

    1. wechatCallbackapiTest
      {

      <code>   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)){
                     /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                        the best way is to check the validity of xml by yourself */
                     libxml_disable_entity_loader(true);
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                     $fromUsername = $postObj->FromUserName;
                     $toUsername = $postObj->ToUserName;
                     $keyword = trim($postObj->Content);
                     $time = time();
                     $textTpl = "<xml>
                                 <tousername></tousername>
                                 <fromusername></fromusername>
                                 <createtime>%s</createtime>
                                 <msgtype></msgtype>
                                 <content></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()
         {
             // you must define TOKEN by yourself
             if (!defined("TOKEN")) {
                 throw new Exception('TOKEN is not defined!');
             }
             
             $signature = $_GET["signature"];
             $timestamp = $_GET["timestamp"];
             $nonce = $_GET["nonce"];
                     
             $token = TOKEN;
             $tmpArr = array($token, $timestamp, $nonce);
             // use SORT_STRING rule
             sort($tmpArr, SORT_STRING);
             $tmpStr = implode( $tmpArr );
             $tmpStr = sha1( $tmpStr );
             
             if( $tmpStr == $signature ){
                 return true;
             }else{
                 return false;
             }
         }</code>

      }

      ?>

    回复内容:

    代码如下:

    <code><?php /**</code></code>
    • wechat php test
      */

    //define your token
    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->valid();

    1. wechatCallbackapiTest
      {

      <code>   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)){
                     /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                        the best way is to check the validity of xml by yourself */
                     libxml_disable_entity_loader(true);
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                     $fromUsername = $postObj->FromUserName;
                     $toUsername = $postObj->ToUserName;
                     $keyword = trim($postObj->Content);
                     $time = time();
                     $textTpl = "<xml>
                                 <tousername></tousername>
                                 <fromusername></fromusername>
                                 <createtime>%s</createtime>
                                 <msgtype></msgtype>
                                 <content></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()
         {
             // you must define TOKEN by yourself
             if (!defined("TOKEN")) {
                 throw new Exception('TOKEN is not defined!');
             }
             
             $signature = $_GET["signature"];
             $timestamp = $_GET["timestamp"];
             $nonce = $_GET["nonce"];
                     
             $token = TOKEN;
             $tmpArr = array($token, $timestamp, $nonce);
             // use SORT_STRING rule
             sort($tmpArr, SORT_STRING);
             $tmpStr = implode( $tmpArr );
             $tmpStr = sha1( $tmpStr );
             
             if( $tmpStr == $signature ){
                 return true;
             }else{
                 return false;
             }
         }</code>

      }

      ?>

    帅哥||美女

    看到你的疑惑,我也感觉很困惑,我有一个不成熟的小建议...在了解并且准备使用一门语言之前,大致浏览下它的官方手册。

    点击此处查看手册链接

    多看看手册,对使用PHP处理事务很有帮助的,个人认为,使用任何语言的时候都要先看一遍官方手册才行啊。

    不知道是不是我对你的问题理解有问题,但从你问题和代码来看,这是代表这是PHP脚本

    ?>

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn