public function responseMsg(){
//1、获取到微信推送过来的post数据(xml格式)
$postArr = file_get_contents("php://input");
// <xml>
// <ToUserName><![CDATA[toUser]]></ToUserName>
// <FromUserName><![CDATA[FromUser]]></FromUserName>
// <CreateTime>123456789</CreateTime>
// <MsgType><![CDATA[event]]></MsgType>
// <Event><![CDATA[subscribe]]></Event>
// </xml>
//2、处理消息内容,并设置恢复类型和内容
$postObj = simplexml_load_string($postArr,'SimpleXMLElement', LIBXML_NOCDATA);
//$postObj->ToUserName = '';
//$postObj->FromUserName = '';
//$postObj->CreateTime = '';
//$postObj->MsgType = '';
//$postObj->event = '';
//判断该数据包是否是订阅的事件推送
if (strtolower( $postObj->MsgType ) == 'event'){
//如果是关注事件
if ( strtolower($postObj->Event ) == 'subscribe'){
//回复用户消息
$content = '感谢你的关注,请根据下面数字选项,选择你的问题:1、php是什么? 2、微信? 3、联系方式?4、官网';
//推荐回复实例化
$text = new \app\index\model\Index();
$text->responseText($postObj,$content);
}
}
/**
* 回复文本消息
*/
public function responseText($postObj,$content){
$toUser = $postObj->FromUserName;
$fromUser = $postObj->ToUserName;
$time = time();
$msgType = 'text';
$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;
}