


Principe de développement C# WeChat et méthode de mise en ?uvre pour recevoir/retourner des messages texte
Mar 16, 2017 pm 02:52 PMCet articleC#Le principe et la méthode de mise en ?uvre de réception/retour de messages texte dans le développement WeChat ont une certaine valeur de référence. Jetons-y un coup d'?il avec l'éditeur ci-dessous
Recevoir/retourner des messages texte
①Explication du principe de réception/retour de messages texte
Lorsque les utilisateurs ordinaires de WeChat envoient des messages au public comptes, WeChat Le serveur envoie le paquet de données XML du message POST à ??l'URL renseignée par le développeur. Avant de commencer le développement, lisez le document de développement WeChat de la plateforme publique WeChat recevant les messages ordinaires et ayez une certaine compréhension. du mécanisme de traitement des messages de WeChat. Démarrer le développement (document de développement WeChat pour recevoir des messages ordinaires)
Remarques?:
1 . à propos des nouvelles tentatives Pour la duplication de messages, il est recommandé d'utiliser msgid pour dédoublonner les messages.
2. Si le serveur WeChat ne re?oit pas de réponse dans les cinq secondes, il se déconnectera et relancera la demande, en réessayant trois fois au total. Si le serveur ne peut pas garantir le traitement et la réponse dans les cinq secondes, vous pouvez répondre directement avec une cha?ne vide. Le serveur WeChat ne fera rien avec cela et ne lancera pas de nouvelle tentative. Pour plus de détails, veuillez consulter "Envoyer un message -Message de réponse passive ".
3. Afin d'assurer une protection de sécurité plus élevée, les développeurs peuvent configurer le cryptage des messages dans le centre des développeurs sur le site officiel du plateforme publique. Une fois le cryptage activé, les messages envoyés par les utilisateurs seront cryptés et les réponses passives des comptes publics aux messages des utilisateurs doivent également être cryptées (mais les développeurs envoient des messages aux utilisateurs via le service client Interface et d'autres API appels), cela ne sera pas affecté). Pour des instructions détaillées sur le cryptage et le déchiffrement des messages, veuillez consulter ? Instructions de cryptage et de décryptage des messages ?.
Le format XML pour le POST vers le serveur du développeur est?:
<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>
Recevoir un messageDescription du paramètre du paquet de données?:
Renvoie le format XML du message texte :
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[你好]]></Content> </xml>
Description du paramètre du paquet de message texte de retour?:
②Réception/retour d'implémentation du code du message texte
Le développeur re?oit le paquet de données XML POST du serveur WeChat sur son propre serveur. Le code de réception est le suivant?:
?. >if(IsPostBack) { //*********************************自動(dòng)應(yīng)答代碼塊********************************* 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); } //********************************自動(dòng)應(yīng)答代碼塊end******************************* }
Remarque?: lors de la réception d'un message, le format du message doit être converti au format "GBK", sinon il ne sera pas analysé efficacement lors de l'analyse ultérieure du message. .
Le code de la méthode de traitement ReturnMessage() est le suivant?:
/// <summary> /// 統(tǒng)一全局返回消息處理方法 /// </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; }
Le code de la méthode de traitement TextHandle(xmldoc) est le suivant?:
/// <summary> /// 接受文本消息并回復(fù)自定義消息 /// </summary> /// <param name="xmldoc"></param> /// <returns></returns> public string TextHandle(XmlDocument xmldoc) { string responseContent = ""; XmlNode ToUserName = xmldoc.SelectSingleNode("/xml/ToUserName"); XmlNode FromUserName = xmldoc.SelectSingleNode("/xml/FromUserName"); XmlNode Content = xmldoc.SelectSingleNode("/xml/Content"); if (Content != null) { if (Content.InnerText == "指定回復(fù)消息的自定義文本") { responseContent = string.Format(XMLTemplate.Message_Text, FromUserName.InnerText, ToUserName.InnerText, DateTime.Now.Ticks, "自定義回復(fù)消息內(nèi)容"); } } return responseContent; }La démonstration de code pour implémenter la fonction a été complétée ici Complète, d'autres modes de traitement des messages ultérieurs interagissent également en fonction de cette méthode, tels que : recevoir/répondre des messages texte, des messages
images, des messages vocaux, des messages vidéo , de petits messages vidéo, des messages de géolocalisation, des messages de lien, etc. peuvent être implémentés en se référant au code ci-dessus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)