首页 > 微信 > 详细

【微信公众平台开发】接收信息,并分析信息类型进行响应(三)

时间:2014-02-12 23:04:14      阅读:660      评论:0      收藏:0      [点我收藏+]

1.根据微信公众平台文档,知道接收普通消息类型如下:


2.根据文档,微信服务器发送过来的消息都是xml格式的信息,所以可以从xml得到自己想要的信息。

废话不多说,看代码分析。

<?php
 public function ResponseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];   //获取从微信服务器发送过来的信息

        if (!empty($postStr)){
        	//simplexml_load_string() 函数把 XML 字符串载入对象中。然后从对象中得到相应数据
            $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
            
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $msgType = $postObj->MsgType;
            $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>";
            $replyMsg = "";
            if($msgType == "text")
            {
            	$replyMsg = "您发的是文本信息";
            }
            else if($msgType == "image")
            {
            	$replyMsg = "您发的是图片信息";
            }
            else if($msgType == "location")
            {
            	$replyMsg = "您发的是地理位置信息";
            }
            else if($msgType == "event")
            {
            	$eventType = $postObj->Event;
            	if($eventType == "subscribe")
            	{
            		$replyMsg = "欢迎你订阅";
            	}
            	else if($eventType == "CLICK")
            	{
            		$replyMsg = "自定义菜单事件";
            	}
            }
            
         
            $msgType = "text";
         
            $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,$replyMsg);  //根据文档要求,组成xml格式
            echo $resultStr;  //输出,微信服务器接收响应
            
        }else{
            echo "";
            exit;
        }
    }
ResponseMsg();
?>

注:根据上一篇,打包代码,格式为zip。上传到sae;接着开始测试!

3.大概思路:用户发送信息,微信服务器响应,并发送规定的xml格式数据到我们写的index.php,index.php进行响应处理,根据微信公众平台文档进行xml数据分析处理,并按要求返回xml格式数据到微信服务器;微信服务器做出响应解析,然后发送最终数据到用户微信!

【微信公众平台开发】接收信息,并分析信息类型进行响应(三)

原文:http://blog.csdn.net/qivan/article/details/19108671

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!