C# WeChat-Entwicklungsprinzip und Implementierungsmethode zum Empfangen/Zurücksenden von Textnachrichten

高洛峰
Freigeben: 2017-03-16 14:52:28
Original
1859 Leute haben es durchsucht

Dieser ArtikelC#Das Prinzip und die Implementierungsmethode zum Empfangen/Zurückgeben von Textnachrichten in der WeChat-Entwicklung haben einen gewissen Referenzwert. Schauen wir uns das mit dem Editor an

Empfangen / Textnachrichten zurücksenden

①Erläuterung des Prinzips des Empfangens/Zurücksendens von Textnachrichten

Wenn normale WeChat-Benutzer Nachrichten an öffentliche Konten senden , WeChat Der Server sendet das XML-Datenpaket der POST-Nachricht an die vom Entwickler eingegebene URL. Lesen Sie vor Beginn der Entwicklung die WeChat-Entwicklungsdokumentation für die öffentliche WeChat-Plattform, die normale Nachrichten empfängt, und verschaffen Sie sich ein gewisses Verständnis davon WeChats Nachrichtenverarbeitungsmechanismus. Starten Sie die Entwicklung (WeChat-Entwicklungsdokument zum Empfangen gewöhnlicher Nachrichten). Informationen zu Wiederholungsversuchen Für die Duplizierung von Nachrichten wird empfohlen, msgid zum Deduplizieren von Nachrichten zu verwenden.

2. Wenn der WeChat-Server innerhalb von fünf Sekunden keine Antwort erhält, wird die Verbindung getrennt und die Anfrage erneut gestartet, wobei es insgesamt dreimal erneut versucht wird. Wenn der Server die Verarbeitung und Antwort nicht innerhalb von fünf Sekunden garantieren kann, können Sie direkt mit einer leeren Zeichenfolge antworten. Der WeChat-Server wird damit nichts anfangen und keinen erneuten Versuch einleiten. Einzelheiten finden Sie unter „

Nachricht senden -Passive Antwortnachricht

“. 3. Um einen höheren Sicherheitsschutz zu gewährleisten, können Entwickler im Entwicklercenter auf der offiziellen Website der Nachrichtenverschlüsselung einrichten öffentliche Plattform. Nachdem die Verschlüsselung aktiviert wurde, werden von Benutzern gesendete Nachrichten verschlüsselt, und die passiven Antworten öffentlicher Konten auf Benutzernachrichten müssen ebenfalls verschlüsselt werden (Entwickler senden Nachrichten an Benutzer jedoch über die Kundendienst-Schnittstelle und andere API-Aufrufe) sind nicht betroffen. Ausführliche Anweisungen zur Nachrichtenverschlüsselung und -entschlüsselung finden Sie unter „

Anweisungen zur Nachrichtenverschlüsselung und -entschlüsselung“. Das XML-Format für POST an den Entwicklerserver ist:

Nachricht empfangenDatenpaket-Parameterbeschreibung:

 <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>
Nach dem Login kopieren

Gibt das XML-Format der Textnachricht zurück:

C#微信开发之接收 / 返回文本消息原理与实现方法

Beschreibung der Parameter für das Paket der zurückgegebenen SMS:

 <xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>
Nach dem Login kopieren

②Implementierung des SMS-Codes zum Empfangen/Zurückgeben

Der Entwickler empfängt das XML-Datenpaket POST vom WeChat-Server auf seinem eigenen Server. Der Empfangscode lautet wie folgt: C#微信开发之接收 / 返回文本消息原理与实现方法

Hinweis: Beim Empfang einer Nachricht muss das Nachrichtenformat in das „GBK“-Format konvertiert werden, da es sonst beim späteren Parsen der Nachricht nicht effektiv analysiert wird .

Der Code der ReturnMessage()-Verarbeitungsmethode lautet wie folgt:

if(IsPostBack)
{ 
  //*********************************自动应答代码块*********************************
  string postString = string.Empty;
  using (Stream stream = HttpContext.Current.Request.InputStream)
  {
    Byte[] postBytes = new Byte[stream.Length];
    stream.Read(postBytes, 0, (Int32)stream.Length);
    //接收的消息为GBK格式
    postString = Encoding.GetEncoding("GBK").GetString(postBytes);
    string responseContent = help.ReturnMessage(postString );
    //返回的消息为UTF-8格式
    HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
    HttpContext.Current.Response.Write(responseContent);
  }
  //********************************自动应答代码块end*******************************
}
Nach dem Login kopieren

Der Code der TextHandle(xmldoc)-Verarbeitungsmethode lautet wie folgt:

/// <summary>
/// 统一全局返回消息处理方法
/// </summary>
/// <param name="postStr"></param>
/// <returns></returns>
public string ReturnMessage(string postStr)
{
  string responseContent = "";
  XmlDocument xmldoc = new XmlDocument();
  xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes(postStr)));
  XmlNode MsgType = xmldoc.SelectSingleNode("/xml/MsgType");
  if (MsgType != null)
  {
    switch (MsgType.InnerText)
    {
      case "event":
        responseContent = EventHandle(xmldoc);//菜单事件处理
        break;
      case "text":
        responseContent = TextHandle(xmldoc);//文本消息处理
        break;
      default:
        break;
   }
  }
  return responseContent;
}
Nach dem Login kopieren

Die Codedemonstration für Die Implementierung der Funktion wurde hier abgeschlossen. Andere nachfolgende Nachrichtenverarbeitungsmodi interagieren ebenfalls auf Basis dieser Methode, wie zum Beispiel: Empfangen/Antworten von Textnachrichten, Bildnachrichten, Sprachnachrichten, Videonachrichten , kleine Videonachrichten, Geolokalisierungsnachrichten, Linknachrichten usw. können unter Bezugnahme auf den obigen Code implementiert werden.

Das obige ist der detaillierte Inhalt vonC# WeChat-Entwicklungsprinzip und Implementierungsmethode zum Empfangen/Zurücksenden von Textnachrichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!