该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

define("TOKEN", "OLtrQuYoYinXamPL9o66BOpM9G");

$wechatObj = new wechatCallbackapiTest();

if (isset($_GET[*echostr*])) {

$wechatObj->valid();

}else{

$wechatObj->responseMsg();

}

class wechatCallbackapiTest

{

public function valid()

{

$echoStr = $_GET["echostr"];

if($this->checkSignature()){

echo $echoStr;

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;

}

}

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 = "

%s

0

";

if($keyword == "?" || $keyword == "?")

{

$msgType = "text";

$contentStr = date("Y-m-d H:i:s",time());

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}

}else{

echo "";

exit;

}

}

}

?>有大神能帮忙注释一下嘛

最新文章

  1. 网站收录工具(php导航自动收录源码)_网站如何快速收录,网站不收录怎么办?...
  2. Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)
  3. 事情在不断的解决中,想念巫英才和张国振
  4. node.js安装部署测试
  5. html绝对定位最小化超标,html – 静态定位元素影响后续兄弟元素的绝对位置
  6. js正则匹配闭合标签_我从Vue源码中学到的一些JS编程技巧
  7. 该内存不能为read
  8. java面向对象程序设计编程题,已拿到offer
  9. 【java】监听器的使用
  10. 菜鸟评python,F#,Go
  11. 青龙面板实现 G D O S 每日自动签到
  12. DM420步进电机驱动器
  13. 使用旧版本MATLAB打开新版本MATLAB创建的.slx文件 提高MATLAB启动速度
  14. python之matplotlib实现绘图和可视化
  15. python: 集合操作符和关系符号
  16. 未来物联网的一些问题
  17. strcmp()函数详解
  18. C语言题解:谁是凶手!
  19. 高校借助电子签章推动学生入网缴费凭证、科研项目拨款单在线签
  20. 计算机怎样升win10,如何升级Win10 Win7升级到Win10图文教程

热门文章

  1. python字典的基本操作编程_Python入门教程5. 字典基本操作【定义、运算、常用函数】 原创...
  2. 实战Vue:ToDoList
  3. android 批量扫描,Android:连续扫描所有AP(接入点)
  4. 7z增量更新参数使用
  5. WEB测试与APP测试重点及区别
  6. opencv_找cv::Mat中的最大值和最小值
  7. AI_机器学习与深度学习有什么区别?
  8. opencv图像分析与处理(4)- 频率域滤波的基础概念
  9. (完整版)原因可能是堆被损坏,这也说明 中或它所加载的任何DLL 中有bug】的解决
  10. 论文评析-Incremental Boosting Convolutional Neural Network for Facial Action Unit Recognition,NIPS, 2016