微信公衆號平臺開發-事件推送

事件推送php

1).推送類型介紹git

  1 關注/取消關注事件微信

  2 掃描帶參數二維碼事件post

  3 上報地理位置事件url

  4 自定義菜單事件spa

  5 點擊菜單拉取消息時的事件推送code

  6 點擊菜單跳轉連接時的事件推送xml

 

推送XML數據包示例:blog

<xml><ToUserName>< ![CDATA[toUser] ]></ToUserName><FromUserName>< ![CDATA[FromUser] ]></FromUserName><CreateTime>123456789</CreateTime><MsgType>< ![CDATA[event] ]></MsgType><Event>< ![CDATA[subscribe] ]></Event></xml>

 

 

參數說明:事件

參數 描述
ToUserName 開發者微信號
FromUserName 發送方賬號(一個OpenID)
CreateTime 消息建立時間 (整型)
MsgType 消息類型,event
Event 事件類型,subscribe(訂閱)、unsubscribe(取消訂閱)

 

 上面消息post推送的數據格式--網址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140454

 

 

當用戶關注微信公衆號時,微信給咱們的url網址推送一個post請求,請求數據是xml格式的

後臺設置的url:http://www.cc8w.com/weixin/openweixin.php

咱們須要這樣獲取:

$postArr = $_GLOBALS['HTTP_RAW_POST_DATA'];
file_get_contents("php://input");//這樣也能夠獲取

 

這個xml格式.

 

 

//獲取到xml數據後,處理消息類型,並設置回覆消息內容(回覆就是直接打印xml數據)

 

    public function reposeMsg()
    {//接收事件推送過來的數據,並回復
        //文案地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453
        $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];//接受推送事件

        //數據格式
        $arr = simplexml_load_string($postArr);
        if(strtolower($arr->MsgType)=="event")
        {
            $toUser = $arr->ToUserName;
            $foUser = $arr->FromUserName;
            $msgType = 'text';
            $createTime = time();
            $content = '尊敬的'.$foUser."謝謝你的關注\n";

            if(strtolower($arr->Event)=="subscribe")
            {//訂閱事件的處理
                $temp = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>";
                $temp = sprintf($temp,$foUser,$toUser,$createTime,$msgType,$content);
                return $temp;
            }
        }
    }

 

 

 

實驗的地址:https://gitee.com/fps2tao/openweixin

相關文章
相關標籤/搜索