亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
文字訊息
##語(yǔ)音訊息
影片訊息
地理位置消息
鏈接消息
首頁(yè) 微信小程式 微信開(kāi)發(fā) 詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法

詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法

Mar 24, 2017 pm 02:43 PM

當(dāng)一般微信用戶向公眾帳號(hào)發(fā)送訊息時(shí),微信伺服器將POST訊息的XML封包到開(kāi)發(fā)者填寫(xiě)的URL上。

請(qǐng)注意:

1、關(guān)于重試的消息排重,推薦使用msgid排重。
2、微信服務(wù)器在五秒內(nèi)收不到響應(yīng)會(huì)斷掉連接,并且重新發(fā)起請(qǐng)求,總共重試三次。假如服務(wù)器無(wú)法保證在五秒內(nèi)處理并回復(fù),可以直接回復(fù)空串,微信服務(wù)器不會(huì)對(duì)此作任何處理,并且不會(huì)發(fā)起重試。詳情請(qǐng)見(jiàn)“發(fā)送消息-被動(dòng)回復(fù)消息”。
3、為了保證更高的安全保障,開(kāi)發(fā)者可以在公眾平臺(tái)官網(wǎng)的開(kāi)發(fā)者中心處設(shè)置消息加密。開(kāi)啟加密后,用戶發(fā)來(lái)的消息會(huì)被加密,公眾號(hào)被動(dòng)回復(fù)用戶的消息也需要加密(但開(kāi)發(fā)者通過(guò)客服接口等API調(diào)用形式向用戶發(fā)送消息,則不受影響)。關(guān)于消息加解密的詳細(xì)說(shuō)明,請(qǐng)見(jiàn)“消息加解密說(shuō)明”。

各訊息類型的推送XML封包結(jié)構(gòu)如下:

?

文字訊息

?<xml>
?<tousername></tousername>
?<fromusername></fromusername>?
?<createtime>1348831860</createtime>
?<msgtype></msgtype>
?<content></content>
?<msgid>1234567890123456</msgid>
?</xml>
開(kāi)發(fā)者微訊號(hào)傳送方帳號(hào)(一個(gè)OpenID)訊息建立時(shí)間(整數(shù))##textContent文字訊息內(nèi)容MsgId訊息id,64位元整數(shù)
#參數(shù) 描述
##ToUserName
#FromUserName
CreateTime
#MsgType

圖片訊息

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

##語(yǔ)音訊息

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

請(qǐng)注意,開(kāi)通語(yǔ)音辨識(shí)後,用戶每次發(fā)送語(yǔ)音給公眾號(hào)時(shí),微信會(huì)在推送的語(yǔ)音訊息XML資料包中,增加一個(gè)Recongnition欄位(註:由於客戶端緩存,開(kāi)發(fā)者開(kāi)啟或關(guān)閉語(yǔ)音辨識(shí)功能,對(duì)新追蹤者立刻生效,對(duì)已關(guān)注用戶需要24小時(shí)生效。開(kāi)發(fā)者可以重新關(guān)注此帳號(hào)進(jìn)行測(cè)試)。開(kāi)啟 語(yǔ)音辨識(shí)後的語(yǔ)音XML封包如下:

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

多出的欄位中,F(xiàn)ormat為語(yǔ)音格式,一般為amr,Recognition為語(yǔ)音辨識(shí)結(jié)果,使用UTF8編碼。

影片訊息

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

小視訊訊息

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

地理位置消息

<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>
參數(shù) 描述
ToUserName 開(kāi)發(fā)者微訊號(hào)
FromUserName 發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime #訊息創(chuàng)建時(shí)間(整數(shù))
MsgType 小影片為shortvideo
MediaId
參數(shù) 描述
ToUserName 開(kāi)發(fā)者微信號(hào)
FromUserName 發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime 消息創(chuàng)建時(shí)間 (整型)
MsgType location
Location_X 地理位置維度
Location_Y 地理位置經(jīng)度
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>
參數(shù) 描述
ToUserName 接收方微信號(hào)
FromUserName 發(fā)送方微信號(hào),若為普通用戶,則是一個(gè)OpenID
CreateTime 消息創(chuàng)建時(shí)間
MsgType 消息類型,link
Title 消息標(biāo)題
Description 消息描述
Url 消息鏈接
MsgId

消息id,64位整型

詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法

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

? ///


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

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

   
??????????? ///對(duì)訊息的不同類型進(jìn)行賦值
???????????????????????? //賦值文字訊息內(nèi)容
???????????????與已回復(fù)XML.Contentent = rootElement.SelectSingleNode("Content").InnerText;
??????????? }
?????????????????????????? ///賦值以地理位置緯度,經(jīng)度,地圖縮放比例,地理位置說(shuō)明
??????????????? 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")
??????????? {
??????????????? ////都會(huì)使用問(wèn)題與事件?("Event").InnerText;
??????????????? requestXML.EventKey = rootElement.SelectSingleNode ("EventKey").InnerText;
??????????? }

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

}


?語(yǔ)音辨識(shí)功能開(kāi)啟如下:



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

?///


??? /// 接收訊息的實(shí)體類別
??? ///

??? public class RequestXML° .Empty;
??????? ///
??????? /// 本公編號(hào)
???????????? // /
??????? /// 使用者微訊號(hào)
??????? ///

???## /// 建立時(shí)間
??????? ///

??????? 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; }
??????? ///
??????? /// 圖片訊息圖片的連結(jié)位址
??get ; set; }
??????? ///
??????? /// 圖文訊息詳情連結(jié)位址
??????##??????? ///
??????? /// 圖文訊息集合
??????? ///
#o??????/ #??????? /*以下為地理位置類型的訊息特有的屬性*/
??????? ///
??????? /// 地理位置緯度
????; set; }
??????? ///
/// 地理位置經(jīng)度
??????? ///

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

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

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

??? ?
??? }

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

##繼續(xù)關(guān)注? ResponseMsg(requestXML);方法如下,
#ML#?private voidoid Responsequest(RequestXMLMLsML )
??????? {

??????????? string MsgType = requestXML.MsgType;

?????????????????? //根據(jù)訊息類型訊息使用何種類型訊息

??????????????????#??????????????????? case "text":

???????????????????????????????????????? if (!string.IsNullOrWhiteSpace(requestXML.EventName ) && requestXML.EventName.ToString().Trim().Equals("subscribe"))
??????????????????}????????? SendWelComeMsg(requestXML);//關(guān)注時(shí)回傳的圖文訊息
???????????????????????? 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());
??????????? }
??????? }

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

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

????????????????????????????地End();

??????? }


FormatTextXML方法制定格式

? ///


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

這樣就能實(shí)現(xiàn)訊息的回應(yīng),如果使用者點(diǎn)擊的按鈕,以下程式碼:

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

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

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

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

?///


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

? ///

??????? ///???

??????? ///

??????????????? 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, "歡迎追蹤德橋員工服務(wù)中心", "蘇州德橋人力資源創(chuàng)立於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 }
?????????????????????????? 文章>
?????????????????????????
}
??????? }
??????? ///
??????? ///回圖片訊息項(xiàng)目
??????? ///

??????? public static string Message_News_Item
?????????? {
??????????????? return @"
??????????![CDATA[{0}]]>標(biāo)題>
??????????????????????????? 網(wǎng)址>
????????????????????}![CDATA[{3}]]>
??????????????????????????##

?? ///


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

詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法

11網(wǎng)頁(yè),關(guān)於網(wǎng)頁(yè)圖片自適應(yīng)的問(wèn)題,把圖片的寬度設(shè)定為100%,即可,如果讓網(wǎng)頁(yè)在螢?zāi)恢凶赃m應(yīng),記得在網(wǎng)頁(yè)中一定要加上

######

以上是詳解asp.net微信開(kāi)發(fā)訊息應(yīng)答方法的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72