Heim >WeChat-Applet >WeChat-Entwicklung >Detaillierte Erläuterung der Nachrichtenantwortmethode für die WeChat-Entwicklung von asp.net
Wenn ein gewöhnlicher WeChat-Benutzer eine Nachricht an ein öffentliches Konto sendet, sendet der WeChat-Server das XML-Datenpaket der Nachricht an die vom Entwickler eingegebene URL.
Bitte beachten Sie:
1、关于重试的消息排重,推荐使用msgid排重。 2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。 3、为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“消息加解密说明”。
Die Push-XML-Paketstruktur jedes Nachrichtentyps ist wie folgt:
<xml> <tousername></tousername> <fromusername></fromusername> <createtime>1348831860</createtime> <msgtype></msgtype> <content></content> <msgid>1234567890123456</msgid> </xml>
Parameter | Beschreibung | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ToUserName |
Micro Signal |
||||||||||||||
FromUserName | Absenderkonto (eine OpenID) | ||||||||||||||
CreateTime | Zeitpunkt der Nachrichtenerstellung (Ganzzahl)|||||||||||||||
MsgType | Text | ||||||||||||||
Inhalt | Textnachrichteninhalt | ||||||||||||||
MsgId | Nachrichten-ID, 64-Bit-Ganzzahl |
参数 | 描述 |
---|---|
ToUserName | 开发者微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | image |
PicUrl | 图片链接 |
MediaId | 图片消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
MsgId | 消息id,64位整型 |
Parameter | Beschreibung | ||
---|---|---|---|
ToUserName td > | EntwicklerWeChat-ID |
||
FromUserName | Absenderkonto (eine OpenID) | tr>CreateTime | Erstellungszeit der Nachricht (Ganzzahl) |
MsgType | image | ||
PicUrl | Bildlink | ||
MediaId | Bildnachrichten-Medien-ID, Sie können die Multimedia-Datei-Download-Schnittstelle aufrufen ruft Daten ab. | ||
MsgId | Nachrichten-ID, 64-Bit-Ganzzahl |
<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位整型 |
Parameter | Beschreibung |
---|---|
ToUserName | Entwickler<xml> <tousername></tousername> <fromusername></fromusername> <createtime>1357290913</createtime> <msgtype></msgtype> <mediaid></mediaid> <format></format> <recognition></recognition> <msgid>1234567890123456</msgid> </xml>WeChat-ID |
FromUserName | Absenderkonto (eine OpenID) |
CreateTime | Nachrichtenerstellungszeit (Ganzzahl) |
MsgType | Stimme ist Stimme | Sprachnachrichten-Medien-ID, Sie können die Schnittstelle zum Herunterladen von Multimediadateien aufrufen, um Daten abzurufen. |
Format | Sprachformat wie AMR, Speex usw. |
MsgID td>Nachrichten-ID, 64-Bit-Ganzzahl |
Bitte beachten Sie, dass nach der Aktivierung der Spracherkennung jedes Mal, wenn der Benutzer eine Sprachnachricht an den Beamten sendet Konto, WeChat wird die Nachricht pushen. Fügen Sie im XML-Datenpaket der Sprachnachricht ein Erkennungsfeld hinzu (Hinweis: Aufgrund des Client-Caching aktivieren oder deaktivieren Entwickler die Spracherkennungsfunktion, die für neue Follower sofort wirksam wird und bereits 24 Stunden dauert Entwickler können diesem Konto erneut folgen. Dieses Konto dient zum Testen. Das Sprach-XML-Datenpaket nach der Aktivierung der Spracherkennung lautet wie folgt:
<xml> <tousername></tousername> <fromusername></fromusername> <createtime>1357290913</createtime> <msgtype></msgtype> <mediaid></mediaid> <thumbmediaid></thumbmediaid> <msgid>1234567890123456</msgid> </xml>Videobotschaft
参数 | 描述 |
---|---|
ToUserName | 开发者微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | 视频为video |
MediaId | 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
ThumbMediaId | 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。 |
MsgId | 消息id,64位整型 |
Parameter | Beschreibung |
---|---|
ToUserName | EntwicklerWeChat-ID |
FromUserName | Absenderkonto (eine OpenID) |
CreateTime | Erstellungszeit der Nachricht (Ganzzahl) |
MsgType | Video ist Video |
MediaId | Medien-ID der Videonachricht. Sie können die Schnittstelle zum Herunterladen von Multimediadateien aufrufen, um Daten abzurufen. |
ThumbMediaId | Die Medien-ID der Miniaturansicht der Videonachricht. Sie können die Schnittstelle zum Herunterladen von Multimediadateien aufrufen, um die Daten abzurufen. |
MsgId | Nachrichten-ID, 64-Bit-Ganzzahl |
<xml> <tousername></tousername> <fromusername></fromusername> <createtime>1357290913</createtime> <msgtype></msgtype> <mediaid></mediaid> <thumbmediaid></thumbmediaid> <msgid>1234567890123456</msgid> </xml>
参数 | 描述 |
---|---|
ToUserName | 开发者微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | 小视频为shortvideo |
MediaId | 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
ThumbMediaId | 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。 |
MsgId | 消息id,64位整型 |
Beschreibung | |
---|---|
ToUserName | EntwicklerWeChat-ID |
FromUserName | Absenderkonto (eine OpenID) |
Erstellungszeit der Nachricht (Ganzzahl) | |
MsgType | Das kurze Video ist shortvideo | MediaId | Medien-ID der Videonachricht. Sie können die Schnittstelle zum Herunterladen von Multimediadateien aufrufen, um Daten abzurufen. |
ThumbMediaId | Die Medien-ID der Miniaturansicht der Videonachricht. Sie können die Schnittstelle zum Herunterladen von Multimediadateien aufrufen, um die Daten abzurufen. |
MsgId | Nachrichten-ID, 64-Bit-Ganzzahltyp |
<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 | 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位整型 |
Weiter zum vorherigen Artikel, schauen Sie sich ResponseXML(postString) an; die Methode ist wie folgt
///
/// Von Benutzern gesendete Nachrichten abrufen
///
///
private void ResponseXML(string postString)
{
Element;//Holen Sie sich das Stammverzeichnis des Dokuments
XmlNode MsgType = rootElement.SelectSingleNode("MsgType");/Holen Sie sich den Text Typ der Nachricht
RequestXML requestXML = new RequestXML();//Deklarieren Sie die Instanz, rufen Sie jedes Attribut ab und weisen Sie einen Wert zu
requestXML.ToUserName = rootElement.SelectSingleNode ("ToUserName").InnerText;//Öffentliches Konto
requestXML.FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText;//Benutzer
requestXML.CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText ;//Erstellungszeit
requestXML.MsgType = MsgType.InnerText;//Nachrichtentyp
requestXML.Content = rootElement.SelectSingleNode("Content").InnerText;
Werte geografischer Standort, Breitengrad, Längengrad, Kartenzoomverhältnis, geografische Standortbeschreibung
requestXML.Location_X = rootElement.SelectSingleNode("Location_X").InnerText;
requestXML.Location_Y = rootElement.SelectSingleNode("Location_Y").InnerText;
requestXML.Scale = rootElement.SelectSingleNode("Scale").InnerText;
m().ToLower() = = "event")
requestXML.EventKey = rootElement.SelectSingleNode.InnerText;
auf die Spracherkennungsfunktion im Entwicklermodus, sonst können Sie sie nicht abrufen. requestXML.Recognition = rootElement.SelectSingleNode("Recognition").InnerText;
Die Spracherkennungsfunktion wird wie folgt aktiviert:
requestXML ist eine von mir separat erstellte Klasse, die die häufig verwendeten Attributfelder in Nachrichten als deklariert folgt:
///
/// Die Entitätsklasse, die die Nachricht empfängt
///
öffentliche Klasse RequestXML
{
private String toUserName = String .Empty; }
/*Das Folgende ist das eindeutige Attribut des Ereignistyps
public String EventName{get;set;}
///
/*unten sind die eindeutigen Attribute der Grafiktypen*/
/// & lt; Zusammenfassung & gt; Zusammenfassung> 🎜 /// ///
Das Folgende sind die eindeutigen Attribute des Nachrichtentyps type*/
/// & lt; Zusammenfassung & gt; /
/// Längengrad des geografischen Standorts
🎜> ///
public String Recognition { get; set; Methode ist wie folgt:
private void ResponseMsg(RequestXML requestXML )
string MsgType = request switch (MsgType)
case "event"://Send event message
if (!string.IsNullOrWhiteSpace(requestXML.EventName ) && requestXML.EventName.ToString().Trim().Equals("subscribe"))
🎜> if (!string.IsNullOrWhiteSpace(requestXML.EventName) && requestXML.EventName .ToString().Trim().Equals("CLICK"))
g(requestXML);//Send event message
}
case „voice“:
SendVoiceMsg(requestXML);//Eine Sprachnachricht senden
break;
case „location“://Send location message
SendMapMsg(requestXML);
Break;
Standard:
break; requestXML.ToUserName, requestXML.Content); > }
FormatTextXML-Methode legt das Format fest
///
/// Den formatierten XML-Inhalt zurückgeben
Öffentlich
/param>
Benutzername> ;
Auf diese Weise wird die Wenn der Benutzer auf die Schaltfläche klickt, wird der folgende Code angezeigt:
case "event"://Send event message
if
(!string.IsNullOrWhiteSpace(requestXML.EventName) &&
requestXML.EventName.ToString().Trim().Equals("subscribe"))
///
; param>
private void SendEventMsg(RequestXML requestXML)
{
string keyStr = requestXML.EventKey.ToString();
switch (keyStr )
{
case "mypay":
SendPayDetails(requestXML);//Gehaltsabrechnung senden
SendWeaterMessage(requestXML);/ /Wettervorhersage senden
Pause;
Fall „kaixinyixiao " :
SendKaiXinMessage(requestXML);//Sende einen Happy-Smile-Ergebnissatz
SendUpdateMessage(requestXML);//Sende Änderungsinformationslink
> case "yuangonghuodong":
. SendYuanGongHuoDong(re questXML);/ /Schüleraktivitäten senden
Pause;
Fall "yu. angongtongzhi":
SendYuanGongTongzhi(requestXML); //Mitarbeiterbenachrichtigung senden
Wenti(Anfrage senden :
SendWentiList (requestXML);//Link zur Fragenliste senden
;
Standard:
String ResponseContent =. String.Emp ty;
ResponseContent = FormatTextXML(requestXML.FromUserName, requestXML.ToUserName,"Diese Funktion ist noch nicht verfügbar! Bleiben Sie dran!"); );
HttpContext.Current.Response.End();
break;
}
}
SendWelComeMsg(requestXML); //Die grafische Nachricht wird zurückgegeben, wenn
folgt
/// Die grafische Nachricht wurde zurückgegeben, wenn
/// folgt string PUrlfileName = "http://www.deqiaohr. com.cn/weixin/welcome.jpg" ;
ResponseContent = string.Format(Message_News_Main, requestXML.FromUserName, requestXML.ToUserName, newdate, "1",
Employee Service Center", "Suzhou Deqiao Human Resources wurde 2002 gegründet ...", PUrlfileName, "http://www.deqiaohr.com.cn/weixin/WxGsjianjie.aspx"));
HttpContext.Current .Response.ContentType = "text/xml";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; HttpContext.Current.Response.End ();
}
Message_News_Main und Message_News_Item sind Grafik- und Textnachrichtenformate
{
bekommen
{
return @"
.
;![CDATA[news]]>
.
{
get
{
return @"
.
}
///
/// /param>
private void. SendV oiceMsg(RequestXML requestXML)
ToString());
HttpContext.Current.Response.ContentType = "text /xml";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
HttpContext.Current .Response.Write(responseContent) ;
HttpContext.Current.Response.End();
}
Klicken Sie, um den vollständigen Text anzuzeigen und direkt zu der von Ihnen geschriebenen Webseite zu springen. Bezüglich des Problems der Anpassung von Webseitenbildern stellen Sie einfach die Breite ein Wenn Sie möchten, dass sich die Webseite an den Bildschirm anpasst, denken Sie daran,
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Nachrichtenantwortmethode für die WeChat-Entwicklung von asp.net. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!