php文件里的代码 谁能给解释一下啊每行什么意思

<?phpdefine("TOKEN","weixin");define("MESS","输入点啥吧");$wechatObj=newwechatCallbackapiT... <?php
define("TOKEN", "weixin");
define("MESS","输入点啥吧");
$wechatObj = new wechatCallbackapiTest(); */
$wechatObj->valid();*
//$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
$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 = MESS;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo MESS;
}
}else {
echo MESS;
exit;
}
}

private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token =TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
展开
 我来答
忆果我k
2012-12-14 · TA获得超过135个赞
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:108万
展开全部
代码有点长,不嫌搜圆可能每行都解释:
define("TOKEN", "weixin");
define("MESS","输入点啥吧");
定义2个常量:TOKEN值为”weixin";MESS值为“输入点啥吧"。

$wechatObj = new wechatCallbackapiTest(); //实例化对象
$wechatObj->valid();
$wechatObj->responseMsg();
变量名->方法名:变芹塌漏册量wechatObj分别调用valid()和responseMsg()方法。

class wechatCallbackapiTest //创建一个类
public function valid() //创建公有方法valid()
public function responseMsg() //创建公有方法responseMsg()
private function checkSignature() //创建私有方法checkSignature()

public function valid()
{
$echoStr = $_GET["echostr"]; //变量echoStr的值为$_GET["echostr"](注释:获取echostr值)
if($this->checkSignature()){ //调用checkSignature()方法
echo $echoStr; //输出$echoStr
exit;
}
}

public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){ //如果变量$postStr非空

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName; //以上不解释

$keyword = trim($postObj->Content); //trim是去除特殊字符

$time = time();
$textTpl = "<xml> //定义变量为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 = MESS;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo MESS;
}
}else {
echo MESS;
exit;
}
}

private function checkSignature() //不解释

{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token =TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
a125373978
2012-12-14 · TA获得超过425个赞
知道小有建树答主
回答量:549
采纳率:57%
帮助的人:238万
展开全部
define("TOKEN", "weixin"); 定义了一个叫 TOKEN 的常量 值为 weixin

define("MESS"罩悄,"输入点啥吧"); 定义了一个叫 MESS 的常量 值为 输入点啥做闷配纯指吧

$wechatObj = new wechatCallbackapiTest(); */ 实例化了一个叫wechatCallbackapiTest的对象并且起名叫$wechatObj

$wechatObj->valid();* $wechatObj执行了wechatCallbackapiTest类下的valid()方法 后面的*是啥???

//$wechatObj->responseMsg(); 注释掉了$wechatObj执行了wechatCallbackapiTest类下的responseMsg()方法

楼下继续
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liulp00
2019-03-08 · 超过17用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:19.6万
展开全部
  1. define("TOKEN", "weixin");//定义1个常量:TOKEN值为”weixin";是开发者任意填写的      笑陆                                           签名,用于安全验证。

  2. $wechatObj=new wechatCallbackapiTest();//类wechatCallbackapiTest()的实例化。

    类wechatCallbackapiTest()中定义了两个方法:

(1)valid()方法是微信服务器接入时的操作。

(2)responseMsg() 方法是接入后的操作,开发时主要在这个方法里修改代                                   码,实 现微信订阅号的一些功能。

3.$wechatObj->valid();//调用类中碰橡顷的valid()方法

4.if(!empty( $keyword )) //如用户向所关注的订阅号里发送的信息不为空时,所要做的操                                                   作。
{ 如滑
$msgType = "text"; 
$contentStr = MESS; //向用户回复的内容(例如:$contentStr =“你好!”则只要用户输                                       入任何内容都会回复“你好!”)
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); 
echo $resultStr; 
}else{ 
echo MESS; 

}else { 
echo MESS; 
exit; 

5.private function checkSignature() //用于服务器验证所接收的信息是来自于微信服务器

$signature = $_GET["signature"]; 
$timestamp = $_GET["timestamp"]; 
$nonce = $_GET["nonce"]; 
$token =TOKEN; 
$tmpArr = array($token, $timestamp, $nonce); 
sort($tmpArr); 
$tmpStr = implode( $tmpArr ); 
$tmpStr = sha1( $tmpStr ); 

if( $tmpStr == $signature ){ 
return true; 
}else{ 
return false; 
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feichang小雨
2013-07-09 · TA获得超过154个赞
知道小有建树答主
回答量:418
采纳率:50%
帮助的人:275万
展开全部
这段代码是腾讯的微信开发平台的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e92d8c3
2012-12-14 · TA获得超过561个赞
知道小有建树答主
回答量:745
采纳率:0%
帮助的人:520万
展开全部
我看到一个类,几个函数,变量,常量,sha1散列值...楼下翻译
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式