Maison  >  Article  >  développement back-end  >  微信关注回复代码

微信关注回复代码

WBOY
WBOYoriginal
2016-07-30 13:29:38985parcourir
/*
	* wechat php test
	*/

	//define your token
	define("TOKEN", "weixin");
	$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;
				$type	  		= $postObj ->MsgType;
				$customevent	= $postObj ->Event;
				$keyword =trim($postObj->Content);
				$time =time();
				$textTpl ="<xml>
								<tousername></tousername>
								<fromusername></fromusername>
								<createtime>%s</createtime>
								<msgtype></msgtype>
								<content></content>
								<funcflag>0</funcflag>
							</xml>";	
				if($type == "event" and $customevent == "subscribe"){
						$contentStr = "感谢你的关注 \n 回复1 电话 邮箱	\n 回复2.qq信息	\n 回复3地址信息";
						$msgType = "text" ;
						$resultStr  = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
						echo $resultStr;
				}	

				if(!empty($keyword))
				{
					$msgType = "text" ;
					$contentStr = "1 电话 邮箱	2.qq信息	3地址信息";
					if($keyword == "1"){//关键词为1时回复
						$contentStr = "电话:15057190640 Email:2323178881@qq.com !!";
					}
					if ($keyword == "2") {//关键词为2时回复
						$contentStr = "我的qq是2323178881 !";
					}

					if ($keyword == "3") {//关键词为3时回复
						$contentStr = "浙江省杭州市江干区闸弄口街道!";
					}

					$resultStr  = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
					echo $resultStr;						
				}else{
					echo "Input something...";
				}			
			}
			else
			{
				echo "";
				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教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:读书笔记摘要Article suivant:php CLI 有用的命令