为了账号安全,请及时绑定邮箱和手机立即绑定

无法调用自动回复接口

<?php
namespace Admin\Controller;
use Think\Controller;
use Think\Exception;


class IndexController extends Controller {
    public function index(){
       if (!C("WX_ACCESS_TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $echoStr = $_GET["echostr"];		
		$token = C('WX_ACCESS_TOKEN');
		$tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
		sort($tmpArr, SORT_STRING);
		$tmpStr = implode( $tmpArr );
		$tmpStr = sha1( $tmpStr );
		
		if( $tmpStr == $signature ){
            //第一次接入wx
			echo $echoStr;
            exit;
		}else{
            $this->responseMsg();
        }
//        echo 'tooken';
    }
    //接收事件推送并回复
    /*
    接收格式
    <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
 
 回复格式
 
 <xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>

    */
    public function responseMsg(){
        //1.获取微信推送过来的post数据(xml格式)
        $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
        $tmpStr = $postArr;
        //.2处理消息类型,并设置回复类型和内空
        $postObj = simplexml_load_string($postArr);
//        print_r($postObj);
        if(strtolower($postObj->MsgType) == 'event'){
            if(strtolower($postObj->Event) == 'subscribe'){
                $toUser = $postObj->FromUserName;
                $fromUser = $postObj->ToUserName;
                $time = time();
                $msgType = 'text';
                
                $content = '欢迎关注我们的微信公众号';
//                $content = '公众账号' .$postOjb->ToUserName. '\n微信用户的openid' .$postObj->FromUserName .'\n回复消息格式: ' .$tmpstr;
               
                 $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;
            }
        }
    }
    
   
    
}

不知道哪里有问题,关注的时候就是不会出现我自定义的”欢迎关注我们的微信公众号“这句。

正在回答

举报

0/150
提交
取消

无法调用自动回复接口

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号