搜尋
首頁微信小程式微信開發詳解asp.net微信開發訊息應答方法

當一般微信用戶向公眾帳號發送訊息時,微信伺服器將POST訊息的XML封包到開發者填寫的URL上。

請注意:

1、关于重试的消息排重,推荐使用msgid排重。
2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。
3、为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“消息加解密说明”。

各訊息類型的推送XML封包結構如下:

 

文字訊息

 <xml>
 <tousername></tousername>
 <fromusername></fromusername> 
 <createtime>1348831860</createtime>
 <msgtype></msgtype>
 <content></content>
 <msgid>1234567890123456</msgid>
 </xml>
開發者微訊號傳送方帳號(一個OpenID)訊息建立時間(整數)##textContent文字訊息內容MsgId訊息id,64位元整數
#參數 描述
##ToUserName
#FromUserName
CreateTime
#MsgType

圖片訊息

 <xml>
 <tousername></tousername>
 <fromusername></fromusername>
 <createtime>1348831860</createtime>
 <msgtype></msgtype>
 <picurl></picurl>
 <mediaid></mediaid>
 <msgid>1234567890123456</msgid>
 </xml>
#參數描述 ToUserName微訊號FromUserName#發送方帳號(一個OpenID)#CreateTime訊息建立時間(整數)#MsgTypeimagePicUrl圖片連結MediaId圖片訊息媒體id,可以呼叫多媒體檔案下載介面來拉取資料。 MsgId訊息id,64位元整數
開發者

##語音訊息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<format></format>
<msgid>1234567890123456</msgid>
</xml>
參數 #描述
#ToUserName 開發者微訊號
FromUserName 發送方帳號(一個OpenID)
CreateTime #訊息建立時間(整數)
MsgType 語音為voice
MediaId 語音訊息媒體id,可以呼叫多媒體檔案下載介面拉取資料。
Format 語音格式,如amr,speex等
MsgID 訊息id,64位元整數

請注意,開通語音辨識後,用戶每次發送語音給公眾號時,微信會在推送的語音訊息XML資料包中,增加一個Recongnition欄位(註:由於客戶端緩存,開發者開啟或關閉語音辨識功能,對新追蹤者立刻生效,對已關注用戶需要24小時生效。開發者可以重新關注此帳號進行測試)。開啟 語音辨識後的語音XML封包如下:

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<format></format>
<recognition></recognition>
<msgid>1234567890123456</msgid>
</xml>

多出的欄位中,Format為語音格式,一般為amr,Recognition為語音辨識結果,使用UTF8編碼。

影片訊息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<thumbmediaid></thumbmediaid>
<msgid>1234567890123456</msgid>
</xml>
#參數 描述
ToUserName 開發者微訊號
FromUserName #發送方帳號(一個OpenID)
#CreateTime 訊息建立時間(整數)
#MsgType 影片為video
MediaId 視訊訊息媒體id,可以呼叫多媒體檔案下載介面拉取資料。
ThumbMediaId 視訊訊息縮圖的媒體id,可以呼叫多媒體檔案下載介面拉取資料。
MsgId 訊息id,64位元整數

小視訊訊息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1357290913</createtime>
<msgtype></msgtype>
<mediaid></mediaid>
<thumbmediaid></thumbmediaid>
<msgid>1234567890123456</msgid>
</xml>
##影片訊息媒體id,可以呼叫多媒體檔案下載介面拉取資料。 ThumbMediaId視訊訊息縮圖的媒體id,可以呼叫多媒體檔案下載介面拉取資料。 MsgId訊息id,64位元整數

地理位置消息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1351776360</createtime>
<msgtype></msgtype>
<location_x>23.134521</location_x>
<location_y>113.358803</location_y>
<scale>20</scale>
<label></label>
<msgid>1234567890123456</msgid>
</xml>
參數 描述
ToUserName 開發者微訊號
FromUserName 發送方帳號(一個OpenID)
CreateTime #訊息創建時間(整數)
MsgType 小影片為shortvideo
MediaId
参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType location
Location_X 地理位置维度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息
MsgId 消息id,64位整型

链接消息

<xml>
<tousername></tousername>
<fromusername></fromusername>
<createtime>1351776360</createtime>
<msgtype></msgtype>
<title></title>
<description></description>
<url></url>
<msgid>1234567890123456</msgid>
</xml>
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,link
Title 消息标题
Description 消息描述
Url 消息链接
MsgId

消息id,64位整型

詳解asp.net微信開發訊息應答方法

接續上篇,看ResponseXML(postString);方法如下

  ///


        /// 取得使用者傳送的訊息
        ///

        /// ## post    {
            //使用XMLDocument載入資訊結構                   #            xmlDoc.LoadXml(postString);
            XmlElement rootElement = xmlDoc.DocumentElement;////取得文件的根
XmlNode MsgType = rootElement.SelectSingleNode("MsgType"); //取得訊息的文字類型
            RequestXML requestXML = new RequestXML( ingleNode ("ToUserName").InnerText;//公號
            requestXML.FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText;//使用者
 Time").InnerText ;//建立時間
            requestXML.MsgType = MsgType.InnerText;//訊息類型

   
            ///對訊息的不同類型進行賦值
                         //賦值文字訊息內容
               與已回復XML.Contentent = rootElement.SelectSingleNode("Content").InnerText;
            }
                           ///賦值以地理位置緯度,經度,地圖縮放比例,地理位置說明
                requestXML.Location_X = rootElement.SelectSingleNode("Location_X").InnerText ("Location_Y").InnerText;
                requestXML.Scale = rootElement.SelectSingleNode("Scale").InnerText;
                requestXML.Label = rootElement.SelectSingleNode("Lab     if (requestXML.MsgType.Trim().ToLower() = = "event")
            {
                ////都會使用問題與事件 ("Event").InnerText;
                requestXML.EventKey = rootElement.SelectSingleNode ("EventKey").InnerText;
            }

      if (requestXML.MsgType.Trim,             ///賦值以語音識別}               requestXML.Recognition = rootElement.Select         ResponseMsg( requestXML);

}


 語音辨識功能開啟如下:



##requestXML是我單獨建立的一個類,該類聲明了訊息中常用的屬性字段,如下:

 ///


    /// 接收訊息的實體類別
    ///

    public class RequestXML° .Empty;
        ///
        /// 本公編號
             // /
        /// 使用者微訊號
        ///

   ## /// 建立時間
        ///

        public String CreateTime{get;set;}
        / //
        public String MsgType{get;set;}
        /// ##  #        public String Content{get;set;}
        /*以下為事件類型的訊息特有的屬性*/
         ///

        public String EventName{get;set;}
        ///
          public string EventKey { get; ///

        public int ArticleCount { get; set; }
        /// < summary>
        public string Title { get; set; }
        ///
           public string Description { get; set; }
        ///
        /// 圖片訊息圖片的連結位址
  get ; set; }
        ///
        /// 圖文訊息詳情連結位址
      ##        ///
        /// 圖文訊息集合
        ///
#o      / #        /*以下為地理位置類型的訊息特有的屬性*/
        ///
        /// 地理位置緯度
    ; set; }
        ///
/// 地理位置經度
        ///

        public String Location_Y {get; set; }
  #        ///

        public String Scale { get; set; }
         ///
> ;
        public String Label { get; set; }

    ///
     public String Recognition { get; set; }

     
    }

#繼續專注於  ResponseMsg(requestXML);方法如下,

##繼續關注  ResponseMsg(requestXML);方法如下,
#ML# private voidoid Responsequest(RequestXMLMLsML )
        {

            string MsgType = requestXML.MsgType;

                   //根據訊息類型訊息使用何種類型訊息

                  #                    case "text":

                                         if (!string.IsNullOrWhiteSpace(requestXML.EventName ) && requestXML.EventName.ToString().Trim().Equals("subscribe"))
                  }          SendWelComeMsg(requestXML);//關注時回傳的圖文訊息
                         else if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("CLICK"))
                          SendEventMsg(requestXML);//傳送事件訊息
                        }
            

         case "voice":
                                  break;
                        SendMapMsg(requestXML);
break;
                    default:
                  }
            }
            catch (Exception ex     HttpContext.Current.Response.Write(ex.ToString());
            }
        }

先追蹤發送簡訊,SendTextCase(requestXML);///寄件文字
        ///
        ///                      HttpContext.Current.Response.ContentType = "text/xml";

                   HttpContext.Current.Response.Cont      HttpContext.Current.Response.Cont ;

                            地End();

        }


FormatTextXML方法制定格式

  ///


        /// 回傳已格式化的Xml格式內容
        ///
#lt o;公號
        /// 用戶號碼
       /param>
        ///
        private string Format       return "" + DateTime.Now.Subtract(new DateTime(1970, 1, 1, 8, 0, 0)).TotalSeconds.ToString() + "1& </xml>";
#>

這樣就能實現訊息的回應,如果使用者點擊的按鈕,以下程式碼:

    case "event              (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("subscribe"))

                            SendWelComeMsg(requestXML);//追蹤時回傳的圖文訊息

                         else if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName.ToString().Trim().Equals("CLICK"))

                          SendEventMsg(requestXML);//寄送事件訊息
                        break;

 ///


        /// 傳送回應事件訊息
        ///
## param>
        private void SendEventMsg(RequestXML requestXML)
        {
          switch (keyStr)
            {
              ##                           case "tianqiyubao":
                       break;
                case "kaixinyixiao" :
                    SendKaiXinMessage(requestXML);//送開心一笑結果集            case  "updateMessage":
                         break;
                case "yuangonghuodong":
                    SendYuanGongHuoDong(requestXML);//發送學生活動
                    break;
                case "yuangongtongzhi":
                    SendYuanGongTongZhi(requestXML);//發送員工通知
                    break;
                case "youwenbida":
                         break;
               case "mywen":
     選項順2ase "mywen":##.    
                    break;
               SendKeFuMessage(requestXML);//接取客服
                                String responseContent = String.Empty;
responseContent = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName,"此功能暫未開放!敬請期待!");
                             HttpContext.Current. Response.ContentEncoding = Encoding.UTF8;
                      }  HttpContext.Current.Response.End();
                    break;
   
#SendWelComeMsg(requestXML);//關注時回傳的圖文訊息

  ///

        ///   

        ///

                String responseContent = String.Empty;

            string newdate = DateTime.Now.Subtract(new DateTime(1970, 1, 1, 8, 0, 0)).Total 或者iaohr. com.cn/weixin/welcome.jpg";
              string.Format(Message_News_Item, "歡迎追蹤德橋員工服務中心", "蘇州德橋人力資源創立於2002年...", PUrlfileName, "http://www.deqiaohr.com.cn/weixin/WxGsjianjie.aspx"));
        .Response.ContentType = "text/xml";
            HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;# #            HttpContext.Current.Response.End ();
        }

Message_News_Main 與Message_News_Item是圖文訊息格式化

  ///


        /// 返回圖片訊息主體
        ///

              get
{
                return @"
                                                
                                      >& lt;/訊息類型>
            
                           
                            {4 }
                           文章>
                         
}
        }
        ///
        ///回圖片訊息項目
        ///

        public static string Message_News_Item
           {
                return @"
          ![CDATA[{0}]]>標題>
                            網址>
                    }![CDATA[{3}]]>
                          ##

   ///


        /// 傳送回應性語音辨識結果
        ///
#lto&foo; /param>
        private void SendVoiceMsg(RequestXML requestXML)
        {
    Name, "您剛才說的語音訊息辨識結果為:" + requestXML.Recognition. ToString());
            HttpContext.Current.Response.ContentType = "text/xml";
               HttpContext.Current.Response.Write(responseContent) ;
            HttpContext.Current.Response.End();
        }

詳解asp.net微信開發訊息應答方法詳解asp.net微信開發訊息應答方法詳解asp.net微信開發訊息應答方法

11網頁,關於網頁圖片自適應的問題,把圖片的寬度設定為100%,即可,如果讓網頁在螢幕中自適應,記得在網頁中一定要加上

######

以上是詳解asp.net微信開發訊息應答方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器