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

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


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

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

  1. <?php  
  2.  public function ResponseMsg()  
  3.     {  
  4.         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];   //获取从微信服务器发送过来的信息  
  5.   
  6.         if (!empty($postStr)){  
  7.             //simplexml_load_string() 函数把 XML 字符串载入对象中。然后从对象中得到相应数据  
  8.             $postObj = simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA);  
  9.               
  10.             $fromUsername = $postObj->FromUserName;  
  11.             $toUsername = $postObj->ToUserName;  
  12.             $keyword = trim($postObj->Content);  
  13.             $msgType = $postObj->MsgType;  
  14.             $time = time();  
  15.             $textTpl = "<xml>  
  16.                         <ToUserName><![CDATA[%s]]></ToUserName>  
  17.                         <FromUserName><![CDATA[%s]]></FromUserName>  
  18.                         <CreateTime>%s</CreateTime>  
  19.                         <MsgType><![CDATA[%s]]></MsgType>  
  20.                         <Content><![CDATA[%s]]></Content>  
  21.                         <FuncFlag>0</FuncFlag>  
  22.                         </xml>";  
  23.             $replyMsg = "";  
  24.             if($msgType == "text")  
  25.             {  
  26.                 $replyMsg = "您发的是文本信息";  
  27.             }  
  28.             else if($msgType == "image")  
  29.             {  
  30.                 $replyMsg = "您发的是图片信息";  
  31.             }  
  32.             else if($msgType == "location")  
  33.             {  
  34.                 $replyMsg = "您发的是地理位置信息";  
  35.             }  
  36.             else if($msgType == "event")  
  37.             {  
  38.                 $eventType = $postObj->Event;  
  39.                 if($eventType == "subscribe")  
  40.                 {  
  41.                     $replyMsg = "欢迎你订阅";  
  42.                 }  
  43.                 else if($eventType == "CLICK")  
  44.                 {  
  45.                     $replyMsg = "自定义菜单事件";  
  46.                 }  
  47.             }  
  48.               
  49.            
  50.             $msgType = "text";  
  51.            
  52.             $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType,$replyMsg);  //根据文档要求,组成xml格式  
  53.             echo $resultStr;  //输出,微信服务器接收响应  
  54.               
  55.         }else{  
  56.             echo "";  
  57.             exit;  
  58.         }  
  59.     }  
  60. ResponseMsg();  
  61. ?>  

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值