C#微信公衆號開發 -- (六)自定義菜單事件之CLICK

微信公衆號中當用戶手動點擊了按鈕,微信公衆號會被動的向用戶發送文字消息或者圖文消息。html

經過C#微信公衆號開發 -- (五)自定義菜單建立 咱們知道了如何將CLICK類型的按鈕添加到本身的微信公衆平臺上面微信

經過C#微信公衆號開發 -- (三)用戶關注以後自動回覆 咱們知道了經過用戶觸發事件來被動向用戶發送消息app

那麼自定義菜單的CLICK事件點擊觸發也就是這二者的完美結合,以點擊今日歌曲爲例微信公衆平臺

首先咱們在WXOpera() 方法下添加一個CLICK事件的判斷:curl

 else if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "CLICK")
            {
                string key = wx.EventKey;
                switch (key)
                {
                    case "V1001_TODAY_MUSIC": 
                        res = TodayMusic(wx);
                        HttpContext.Current.Response.Write(res);
                        HttpContext.Current.Response.End();
                        break;
                }
            }

這裏的V1001_TODAY_MUSIC 其實就是自定義菜單中CLICK按鈕的keypost

添加TodayMusic() 方法:url

/// <summary>
        /// 加載今日歌曲
        /// </summary>
        /// <param name="wx"></param>
        /// <returns></returns>
        private string TodayMusic(wxmessage wx)
        {
            //獲取推送的今日歌曲
            return sendPicTextMessage(wx, "今日歌曲推薦", "今天點擊率最高,播放次數最高的歌曲!",
                "http://musicdata.baidu.com/data2/pic/a5c79cf978eb5302edca415cabf744f1/260983581/260983581.jpg",
                "http://www.cnblogs.com/HappyAnt/"); //?openid= + wx.FromUserName

        }

這裏要說明的是sendPicTextMessage實際上是將微信提供的發送消息代碼的封裝,其中五個參數分別表示:wxmessage對象,圖文消息的標題,圖文消息的內容,圖文消息的圖片,點擊圖文消息將要跳轉的頁面(這裏依個人主頁爲例)。特別須要注意的是第五個參數,若是想要在跳轉到的頁面上獲取微信用戶的openid信息,只須要在連接地址後面加上:?openid= + wx.FromUserName 就能夠了。
sendPicTextMessage 封裝微信提供的發送圖文消息代碼:spa

 /// <summary>
        /// 發送圖文消息
        /// </summary>
        /// <param name="_mode">微信發送用戶信息包</param>
        /// <param name="title">標題</param>
        /// <param name="description">內容</param>
        /// <param name="picurl">圖片地址</param>
        /// <param name="url">跳轉地址</param>
        /// <returns></returns>
        private string sendPicTextMessage(wxmessage _mode, string title, string description, string picurl, string url)
        {
            string res = string.Format(Message_PicText,
                _mode.FromUserName, _mode.ToUserName, DateTime.Now, title, description, picurl, url);
            return res;
        }

        /// <summary>
        /// 圖文消息
        /// </summary>
        private static string Message_PicText
        {
            get
            {
                return @"<xml>
                                <ToUserName><![CDATA[{0}]]></ToUserName>
                                <FromUserName><![CDATA[{1}]]></FromUserName>
                                <CreateTime>{2}</CreateTime>
                                <MsgType><![CDATA[news]]></MsgType>
                                <ArticleCount>1</ArticleCount>
                                <Articles>
                                <item>
                                <Title><![CDATA[{3}]]></Title> 
                                <Description><![CDATA[{4}]]></Description>
                                <PicUrl><![CDATA[{5}]]></PicUrl>
                                <Url><![CDATA[{6}]]></Url>
                                </item>
                                </Articles>
                        </xml>";
            }
        }

到這裏一個簡單的CLICK事件的應用就完成了,點擊"今日歌曲"看看會有怎樣的效果吧  ~\(≧▽≦)/~code

相關文章
相關標籤/搜索