<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015-12-18 * Time: 21:51 */ define("TOKEN","weixin"); $wechatobj = new wechatCallbackapiTest(); if(isset($_GET['echostr'])){ $wechatobj->valid(); } else { $wechatobj->responseMsg(); } class wechatCallbackapiTest { public function valid() { $echoStr=$_GET["echostr"]; if($this->checkSignature()){ header('content-type:text'); echo $echoStr; exit; } } private function checkSignature() { $signature=$_GET["signature"]; $timestamp=$_GET["timestamp"]; $nonce=$_GET["nonce"]; $token=TOKEN; $tmpArr=array($token,$timestamp,$nonce); sort($tmpArr,sort_strin); $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,'Simp',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($keyword=="?" || $keyword=="?") { $msgType="text"; $contentStr=date("y-m-d h:i:s",time()); $resultStr=sprintf($textTpl,$fromUsername,$toUsername); echo $resultStr; } } else { echo ""; exit; } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
2014-12-19 路径惹的祸
2014-12-19 Declaration terminated incorrectly 讨厌 这样就不可以了