复制代码
<?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;
        }


    }
}
复制代码

 

posted on   lypzxy  阅读(277)  评论(0编辑  收藏  举报
编辑推荐:
· 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 讨厌 这样就不可以了
点击右上角即可分享
微信分享提示