关注公众号事件没反应

来源:3-1 接收事件订阅与回复响应消息(一)

我就是爱学习

2016-12-05 12:58

	public function index(){
		//获得参数 signature nonce token timestamp echostr
		$nonce     = $_GET['nonce'];
		$token     = 'weixin';
		$timestamp = $_GET['timestamp'];
		$echostr   = $_GET['echostr'];
		$signature = $_GET['signature'];
		//形成数组,然后按字典序排序
		$array = array();
		$array = array($nonce, $timestamp, $token);
		sort($array);
		//拼接成字符串,sha1加密 ,然后与signature进行校验
		$str = sha1( implode( $array ) );
		if( $str  == $signature && $echostr ){
			//第一次接入weixin api接口的时候
			echo  $echostr;
			exit;
		}else{
			$this->reponseMsg();
		}
	}
	// 接收事件推送并回复
	public function reponseMsg(){
		//1.获取到微信推送过来post数据(xml格式)
		$postArr = file_get_contents('php://input');
		$postObj = simplexml_load_string($postArr);
		//判断该数据包是否是订阅的事件推送
		if( strtolower( $postObj->MsgType) == 'event'){
			//如果是关注 subscribe 事件
			if( strtolower($postObj->Event == 'subscribe') ){
				//回复用户消息(纯文本格式)	
				$toUser   = $postObj->FromUserName;
				$fromUser = $postObj->ToUserName;
				$time     = time();
				$msgType  =  'text';
				$content  = '欢迎关注我们的微信公众账号';
				$template = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[%s]]></MsgType>
							<Content><![CDATA[%s]]></Content>
							</xml>";
				$info     = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
				echo $info;
			}
		}
	}//reponseMsg end

这是我的代码,微信新关注用户没有回复,同学们帮我看看吧

写回答 关注

4回答

  • qq_小郭啊啊_0
    2017-08-05 16:49:45

    现在解决了吗,我也是这么敲的,跟你几乎一模一样。搞了两天了还是没解决

    Mr_hee

    先看看你用的TP框架是那个版本,TP5需要判断echostr

    2017-08-15 11:31:20

    共 1 条回复 >

  • 我就是爱学习
    2017-07-07 16:29:43

    半年过去了,我还是没有解决此问题。。。。我觉得我可能得改行

  • 风林幻海
    2017-02-14 15:23:54

    初学者表示遇到同样的问题,请问你的是怎么解决的

  • 慕粉1474185423
    2016-12-05 13:51:37

    新手的我表示看不出来。。抱歉

PHP实现微信公众平台开发—提升篇

本课程详细讲解了接收微信用户发送的消息和接收订阅关注的事件推送

64947 学习 · 371 问题

查看课程

相似问题