微信公众平台PHP开发测试源码

  • PHP二次开发网
  • 2013-3-22 09:15
  • PHP二次开发网
  • 阅读(3432)
  • 评论(0)
  • [代码]php代码:

    <?php
    header('Content-type:text/html;charset=GB2312');
    /**
      * wechat php test
      */
    
    //define your token
    define("TOKEN", "这里填写你提交时填写的token");
    $wechatObj = new wechatCallbackapiTest();
    //$wechatObj->valid();
    $wechatObj->responseMsg();
    
    class 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)){
                    
                  	$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 ))
                    {
    					//用户输入关键词的判断
    					//php判断
    					if($keyword == "php" || $keyword == "PHP")
    					{
    						$msgType = "text";
    						$contentStr = "您好,PHP二次开发网,专业从事ecshop、dedecms、discuz!、wordpress等二次开发工作,网址:http://www.php2.cc/,QQ:810706080。请输入您新的指令(如:ecshop)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					} 
    					//ecshop判断
    					elseif($keyword == "ecshop") {
    						$msgType = "text";
    						$contentStr = "您好,PHP二次开发网(http://www.php2.cc)提醒您:ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。目前最新版本为2.7.3。请输入您新的指令(如:dedecms)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					} 
    					//dedecms判断
    					elseif($keyword == "dedecms") {
    						$msgType = "text";
    						$contentStr = "您好,PHP二次开发网(http://www.php2.cc)提醒您:织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历了二年多的发展,目前的版本无论在功能,还是在易用性方面,都有了长足的发展,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统。织梦内容管理系统(DedeCms)基于PHP+MySQL的技术架构,完全开源加上强大稳定的技术架构,使你无论是目前打算做个小型网站,还是想让网站在不断壮大后系仍能得到随意扩充都有充分的保证。请输入您新的指令(如:discuz)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					} 
    					//discuz判断
    					elseif($keyword == "discuz") {
    						$msgType = "text";
    						$contentStr = "您好,PHP二次开发网(http://www.php2.cc)提醒您:Crossday Discuz! Board(简称 Discuz!)是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有11年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。目前最新版本Discuz! X2.5正式版于2012年4月7日发布,首次引入应用中心的开发模式。2010年8月23日,康盛创想与腾讯达成收购协议,成为腾讯的全资子公司。请输入您新的指令(如:wordpress)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					} 
    					//wordpress判断
    					elseif($keyword == "wordpress") {
    						$msgType = "text";
    						$contentStr = "您好,PHP二次开发网(http://www.php2.cc)提醒您:WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网志。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在GNU通用公共许可证下授权发布。目前最新版本为2013 年 1 月 25 日WordPress 3.5.1版。 WordPress 被认为是Michel Valdrighi所开发的网志平台b2/cafelog的正式继承者。“WordPress”这个名字出自 Christine Selleck 的主意,他是主要开发者Matt Mullenweg的朋友。请输入您新的指令(如:ecshop)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					}
    					//关注时的自动回复
    					elseif($keyword == "Hello2BizUser") {
    						$msgType = "text";
    						$contentStr = "您好,PHP二次开发网(http://www.php2.cc)欢迎您,请输入您的指令(如:php)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					} 
    					//其他词的回复
    					else {
    						$msgType = "text";
    						$contentStr = "PHP二次开发网(http://www.php2.cc)提醒您,您输入的指令有误,请重新输入(如:php)!人工服务请加微信:lij2960。";
    						$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    						echo $resultStr;
    					}
                    }
    				//接受到的词为空的回复
    				else{
    					$msgType = "text";
    					$contentStr = '您好,PHP二次开发网(http://www.php2.cc)欢迎您,请输入您的指令(如:php)!';
    					$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    					echo $resultStr;
                    }
    
            }else {
    			$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>";
    						
    			$msgType = "text";
    			$contentStr = '您好,PHP二次开发网(http://www.php2.cc)欢迎您,请输入您的指令(如:php)!';
    			$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    			echo $resultStr;
            	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;
    		}
    	}
    }
    
    ?>



    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-592-1.html

    相关阅读

    最新评论

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!