【移動應(yīng)用開發(fā)技術(shù)】asp.net微信開發(fā)消息應(yīng)答的技巧有哪些_第1頁
【移動應(yīng)用開發(fā)技術(shù)】asp.net微信開發(fā)消息應(yīng)答的技巧有哪些_第2頁
【移動應(yīng)用開發(fā)技術(shù)】asp.net微信開發(fā)消息應(yīng)答的技巧有哪些_第3頁
【移動應(yīng)用開發(fā)技術(shù)】asp.net微信開發(fā)消息應(yīng)答的技巧有哪些_第4頁
【移動應(yīng)用開發(fā)技術(shù)】asp.net微信開發(fā)消息應(yīng)答的技巧有哪些_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】微信開發(fā)消息應(yīng)答的技巧有哪些

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1348831860</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[this

is

a

test]]></Content>

<MsgId>1234567890123456</MsgId>

</xml>/upload/information/20201208/260/11886.jpg

圖片消息<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1348831860</CreateTime>

<MsgType><![CDATA[image]]></MsgType>

<PicUrl><![CDATA[this

is

a

url]]></PicUrl>

<MediaId><![CDATA[media_id]]></MediaId>

<MsgId>1234567890123456</MsgId>

</xml>語音消息<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[voice]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<Format><![CDATA[Format]]></Format>

<MsgId>1234567890123456</MsgId>

</xml><xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[voice]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<Format><![CDATA[Format]]></Format>

<Recognition><![CDATA[騰訊微信團隊]]></Recognition>

<MsgId>1234567890123456</MsgId>

</xml><xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[video]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>

<MsgId>1234567890123456</MsgId>

</xml>/upload/information/20201208/260/11889.jpg<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1357290913</CreateTime>

<MsgType><![CDATA[shortvideo]]></MsgType>

<MediaId><![CDATA[media_id]]></MediaId>

<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>

<MsgId>1234567890123456</MsgId>

</xml>地理位置消息<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1351776360</CreateTime>

<MsgType><![CDATA[location]]></MsgType>

<Location_X>23.134521</Location_X>

<Location_Y>113.358803</Location_Y>

<Scale>20</Scale>

<Label><![CDATA[位置信息]]></Label>

<MsgId>1234567890123456</MsgId>

</xml>/upload/information/20201208/260/11891.jpg鏈接消息<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>

<FromUserName><![CDATA[fromUser]]></FromUserName>

<CreateTime>1351776360</CreateTime>

<MsgType><![CDATA[link]]></MsgType>

<Title><![CDATA[公眾平臺官網(wǎng)鏈接]]></Title>

<Description><![CDATA[公眾平臺官網(wǎng)鏈接]]></Description>

<Url><![CDATA[url]]></Url>

<MsgId>1234567890123456</MsgId>

</xml>/upload/information/20201208/260/11893.jpg/upload/information/20201208/260/11894.jpg

///

<summary>

///

獲取用戶發(fā)送的消息

///

</summary>

///

<param

name="postString"></param>

private

void

ResponseXML(string

postString)

{

//使用XMLDocument加載信息結(jié)構(gòu)

XmlDocument

xmlDoc

=

new

XmlDocument();

xmlDoc.LoadXml(postString);

XmlElement

rootElement

=

xmlDoc.DocumentElement;//獲取文檔的根

XmlNode

MsgType

=

rootElement.SelectSingleNode("MsgType");

//獲取消息的文本類型

RequestXML

requestXML

=

new

RequestXML();//聲明實例,獲取各個屬性并賦值

requestXML.ToUserName

=

rootElement.SelectSingleNode("ToUserName").InnerText;//公眾號

requestXML.FromUserName

=

rootElement.SelectSingleNode("FromUserName").InnerText;//用戶

requestXML.CreateTime

=

rootElement.SelectSingleNode("CreateTime").InnerText;//創(chuàng)建時間

requestXML.MsgType

=

MsgType.InnerText;//消息類型

///對消息的不同類型進行賦值

if

(requestXML.MsgType

==

"text")

{

//賦值文本信息內(nèi)容

requestXML.Content

=

rootElement.SelectSingleNode("Content").InnerText;

}

if

(requestXML.MsgType.Trim()

==

"location")

{

///賦值地理位置緯度,經(jīng)度,地圖縮放比例,地理位置說明

requestXML.Location_X

=

rootElement.SelectSingleNode("Location_X").InnerText;

requestXML.Location_Y

=

rootElement.SelectSingleNode("Location_Y").InnerText;

requestXML.Scale

=

rootElement.SelectSingleNode("Scale").InnerText;

requestXML.Label

=

rootElement.SelectSingleNode("Label").InnerText;

}

if

(requestXML.MsgType.Trim().ToLower()

==

"event")

{

///賦值事件名稱和事件key值

requestXML.EventName

=

rootElement.SelectSingleNode("Event").InnerText;

requestXML.EventKey

=

rootElement.SelectSingleNode("EventKey").InnerText;

}

if

(requestXML.MsgType.Trim().ToLower()

==

"voice")

{

///賦值語音識別結(jié)果,賦值之前一定要記得在開發(fā)者模式下,把語音識別功能開啟,否則獲取不到

requestXML.Recognition

=

rootElement.SelectSingleNode("Recognition").InnerText;

}

ResponseMsg(requestXML);

}語音識別功能開啟如下:/upload/information/20201208/260/11895.jpg

///

<summary>

///

接收消息的實體類

///

</summary>

public

class

RequestXML

{

private

String

toUserName

=

String.Empty;

///

<summary>

///

本公眾號

///

</summary>

public

String

ToUserName{get;set;}

///

<summary>

///

用戶微信號

///

</summary>

public

String

FromUserName{get;set;}

///

<summary>

///

創(chuàng)建時間

///

</summary>

public

String

CreateTime{get;set;}

///

<summary>

///

信息類型

///

</summary>

public

String

MsgType{get;set;}

///

<summary>

///

信息內(nèi)容

///

</summary>

public

String

Content{get;set;}

/*以下為事件類型的消息特有的屬性*/

///

<summary>

///

事件名稱

///

</summary>

public

String

EventName{get;set;}

///

<summary>

///

事件值

///

</summary>

public

string

EventKey

{

get;

set;

}

/*以下為圖文類型的消息特有的屬性*/

///

<summary>

///

圖文消息的個數(shù)

///

</summary>

public

int

ArticleCount

{

get;

set;

}

///

<summary>

///

圖文消息的標(biāo)題

///

</summary>

public

string

Title

{

get;

set;

}

///

<summary>

///

圖文消息的簡介

///

</summary>

public

string

Description

{

get;

set;

}

///

<summary>

///

圖文消息圖片的鏈接地址

///

</summary>

public

string

PicUrl

{

get;

set;

}

///

<summary>

///

圖文消息詳情鏈接地址

///

</summary>

public

string

Url

{

get;

set;

}

///

<summary>

///

圖文消息集合

///

</summary>

public

List<RequestXML>

Articles

{

get;

set;}

/*以下為地理位置類型的消息特有的屬性*/

///

<summary>

///

地理位置緯度

///

</summary>

public

String

Location_X

{

get;

set;

}

///

<summary>

///

地理位置經(jīng)度

///

</summary>

public

String

Location_Y

{

get;

set;

}

///

<summary>

///

地圖縮放比例

///

</summary>

public

String

Scale

{

get;

set;

}

///

<summary>

///

地圖位置說明

///

</summary>

public

String

Label

{

get;

set;

}

///

<summary>

///

語音消息特有字段

///

</summary>

public

String

Recognition

{

get;

set;

}

}繼續(xù)關(guān)注

ResponseMsg(requestXML);方法如下

private

void

ResponseMsg(RequestXML

requestXML)

{

string

MsgType

=

requestXML.MsgType;

try

{

//根據(jù)消息類型判斷發(fā)送何種類型消息

switch

(MsgType)

{

case

"text":

SendTextCase(requestXML);//發(fā)送文本消息

break;

case

"event"://發(fā)送事件消息

if

(!string.IsNullOrWhiteSpace(requestXML.EventName)

&&

requestXML.EventName.ToString().Trim().Equals("subscribe"))

{

SendWelComeMsg(requestXML);//關(guān)注時返回的圖文消息

}

else

if

(!string.IsNullOrWhiteSpace(requestXML.EventName)

&&

requestXML.EventName.ToString().Trim().Equals("CLICK"))

{

SendEventMsg(requestXML);//發(fā)送事件消息

}

break;

case

"voice":

SendVoiceMsg(requestXML);//發(fā)送語音消息

break;

case

"location"://發(fā)送位置消息

SendMapMsg(requestXML);

break;

default:

break;

}

}

catch

(Exception

ex)

{

HttpContext.Current.Response.Write(ex.ToString());

}

}先來關(guān)注發(fā)送文本消息,SendTextCase(requestXML);//發(fā)送文本消息

///

<summary>

///

發(fā)送文本

///

</summary>

///

<param

name="requestXML"></param>

private

void

SendTextCase(RequestXML

requestXML)

{

string

responseContent

=

FormatTextXML(requestXML.FromUserName,

requestXML.ToUserName,

requestXML.Content);

HttpContext.Current.Response.ContentType

=

"text/xml";

HttpContext.Current.Response.ContentEncoding

=

Encoding.UTF8;

HttpContext.Current.Response.Write(responseContent);

HttpContext.Current.Response.End();

}FormatTextXML方法制定格式

///

<summary>

///

返回格式化的Xml格式內(nèi)容

///

</summary>

///

<param

name="p1">公眾號</param>

///

<param

name="p2">用戶號</param>

///

<param

name="p3">回復(fù)內(nèi)容</param>

///

<returns></returns>

private

string

FormatTextXML(string

p1,

string

p2,

string

p3)

{

return

"<xml><ToUserName><![CDATA["

+

p1

+

"]]></ToUserName><FromUserName><![CDATA["

+

p2

+

"]]></FromUserName><CreateTime>"

+

DateTime.Now.Subtract(new

DateTime(1970,

1,

1,

8,

0,

0)).TotalSeconds.ToString()

+

"</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA["

+

p3

+

"]]></Content><FuncFlag>1</FuncFlag></xml>";

}這樣就能實現(xiàn)消息的應(yīng)答,如果用戶點擊的按鈕,如下代碼:

case

"event"://發(fā)送事件消息

if

(!string.IsNullOrWhiteSpace(requestXML.EventName)

&&

requestXML.EventName.ToString().Trim().Equals("subscribe"))

{

SendWelComeMsg(requestXML);//關(guān)注時返回的圖文消息

}

else

if

(!string.IsNullOrWhiteSpace(requestXML.EventName)

&&

requestXML.EventName.ToString().Trim().Equals("CLICK"))

{

SendEventMsg(requestXML);//發(fā)送事件消息

}

break;

///

<summary>

///

發(fā)送響應(yīng)事件消息

///

</summary>

///

<param

name="requestXML"></param>

private

void

SendEventMsg(RequestXML

requestXML)

{

string

keyStr

=

requestXML.EventKey.ToString();

switch

(keyStr)

{

case

"mypay":

SendPayDetails(requestXML);//發(fā)送薪資賬單

break;

case

"tianqiyubao":

SendWeaterMessage(requestXML);//發(fā)送天氣預(yù)報

break;

case

"kaixinyixiao":

SendKaiXinMessage(requestXML);//發(fā)送開心一笑結(jié)果集

break;

case

"updateMessage":

SendUpdateMessage(requestXML);//發(fā)送修改信息鏈接

break;

case

"yuangonghuodong":

SendYuanGongHuoDong(requestXML);//發(fā)送學(xué)生活動

break;

case

"yuangongtongzhi":

SendYuanGongTongZhi(requestXML);//發(fā)送員工通知

break;

case

"youwenbida":

SendWenti(requestXML);//發(fā)送員工提交問題鏈接

break;

case

"mywen":

SendWentiList(requestXML);//發(fā)送問題列表鏈接

break;

case

"PhoneSerices":

SendKeFuMessage(requestXML);//接入客服

break;

default:

String

responseContent

=

String.Empty;

responseContent

=

FormatTextXML(requestXML.FromUserName,

requestXML.ToUserName,"此功能暫未開放!敬請期待!");

HttpContext.Current.Response.ContentType

=

"text/xml";

HttpContext.Current.Response.ContentEncoding

=

Encoding.UTF8;

HttpContext.Current.Response.Write(responseContent);

HttpContext.Current.Response.End();

break;

}

}SendWelComeMsg(requestXML);//關(guān)注時返回的圖文消息

///

<summary>

///

發(fā)送關(guān)注時的圖文消息

///

</summary>

///

<param

name="requestXML"></param>

private

void

SendWelComeMsg(RequestXML

requestXML)

{

String

responseContent

=

String.Empty;

string

newdate

=

DateTime.Now.Subtract(new

DateTime(1970,

1,

1,

8,

0,

0)).TotalSeconds.ToString();

string

PUrlfileName

=

"/weixin/welcome.jpg";

responseContent

=

string.Format(Message_News_Main,

requestXML.FromUserName,

requestXML.ToUserName,

newdate,

"1",

string.Format(Message_News_Item,

"歡迎關(guān)注德橋員工服務(wù)中心",

"蘇州德橋人力資源創(chuàng)立于2002年...",

PUrlfileName,

"/weixin/WxGsjianjie.aspx"));

HttpContext.Current.Response.ContentType

=

"text/xml";

HttpContext.Current.Response.ContentEncoding

=

Encoding.UTF8;

HttpContext.Current.Response.Write(responseContent);

HttpContext.Current.Response.End();

}Message_News_Main和Message_News_Item是圖文消息格式化

///

<summary>

///

返回圖文消息主體

///

<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論