代码如下:
<?php
/**
wechat php test
*/
//define your token
   define("TOKEN", "weixin");
   $wechatObj = new wechatCallbackapiTest();
   $wechatObj->valid();
wechatCallbackapiTest
   {
   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><![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()
   {
       // 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;
       }
   }
}
?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
帅哥||美女
看到你的疑惑,我也感觉很困惑,我有一个不成熟的小建议...在了解并且准备使用一门语言之前,大致浏览下它的官方手册。
<?php 这标志着php文件的开端,就像上帝说,要有光,于是世间有了光一样。。。。
点击此处查看手册链接
多看看手册,对使用PHP处理事务很有帮助的,个人认为,使用任何语言的时候都要先看一遍官方手册才行啊。
不知道是不是我对你的问题理解有问题,但从你问题和代码来看,这是代表这是PHP脚本
<?php <<--php代码开始
?> <<--php代码结束