CI框架之微信公众平台之文本消息

在框架中最好在设置下时区。

首先验证token成功。

接下来就要解析提交过来的数据,此函数我是写到commen.php控制器中的,因为每次获取用户信息都是经过这个函数来获取的。所以写到了公共控制器中的。在用到的控制器中只管调用就行。

public function parseXml($postStr){
        if (!empty($postStr)){// 解析微信传过来的 XML 内容
            $post_obj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        }else{
            $post_obj='';
        }
        return $post_obj;
    }   

我在admin.php控制器中这样使用

        $postStr=$GLOBALS['HTTP_RAW_POST_DATA'];
        $post_obj=$this->parseXml($postStr);
        if(!empty($post_obj)){// 解析微信传过来的 XML 内容
            $from_username = $post_obj->FromUserName;//获取用户openid
            $to_username = $post_obj->ToUserName;//微信开发者id
            $keyword = trim($post_obj->Content);// $keyword 就是用户输入的内容
            $MsgType=trim($post_obj->MsgType);//获取信息类型
            $e=$post_obj->Event;//获取事件

           $type=‘text';

           switch ($MsgType){
                case "text":  //文本类型的消息
                    $content=$this->_parseMessage($keyword);
                    break;

                default:

                     $content='说点什么吧....';

           }

          //在这里要把数据内容回复给用户

          $data = array(
                        'to' => $from_username,
                        'from' => $to_username,
                        'type' => $type,
                        'content' => $content,   
                );

         //在模板中写xml格式,当然也可以在控制器中写。

           $this->load->view('admin/index', $data);

        }

       public _parseMessage(){ //自动把用户发送的消息回复,当然你也可以设置自己要回复的内容。

              return '你发送的消息是:'.$keyworld;

        }  

        

    //// view下的index.php

<xml>
<ToUserName><![CDATA[<?php echo $to;?>]]></ToUserName>
<FromUserName><![CDATA[<?php echo $from;?>]]></FromUserName>
<CreateTime><?php echo time();?></CreateTime>
<MsgType><![CDATA[<?php echo $type;?>]]></MsgType>
<Content><![CDATA[<?php echo $content;?>]]></Content>
<FuncFlag>0</FuncFlag>
</xml>

好了,这个是ci框架下的微信公众平台开发。如有问题请交流qq:905766491

猜你喜欢

转载自webkaifazhe.iteye.com/blog/2009485