Maison >Applet WeChat >Développement WeChat >Utiliser asp.net pour développer la plateforme publique WeChat afin d'obtenir les messages des utilisateurs et de les traiter

Utiliser asp.net pour développer la plateforme publique WeChat afin d'obtenir les messages des utilisateurs et de les traiter

高洛峰
高洛峰original
2017-03-15 16:59:411927parcourir

Cet article présente principalement l'utilisation de asp.net Pour des informations pertinentes sur la façon de développer la plate-forme publique WeChat pour obtenir les messages des utilisateurs et les traiter, les amis dans le besoin peuvent se référer à

Obtenir des messages d'utilisateurs

Les messages envoyés par les utilisateurs sont sur le serveur WeChat Contenu dans une Requête POST HTTP envoyée, l'obtention du message envoyé par l'utilisateur doit être obtenue à partir du flux de données de la requête POST

Exemple de message de requête HTTP pour le Serveur WeChat pour transmettre le message au serveur

POST /cgi-bin/wxpush?msg_signature=477715d11cdb4164915debcba66cb864d751f3e6&timestamp=1409659813&nonce=1372623149 HTTP/1. 1

Hôte : qy .weixin.qq.com

Obtenir les données de la requête POST

Utiliser asp.net pour développer la plateforme publique WeChat afin dobtenir les messages des utilisateurs et de les traiter

Le message utilisateur obtenu de cette manière peut se trouver dans deux situations : message crypté ou message non crypté. Ceci est lié à la sélection du mode de cryptage et de décryptage du message lorsque vous configurez le site Web sur la plateforme publique WeChat. Si vous sélectionnez le mode texte brut, il ne sera pas crypté. , le texte chiffré et le texte brut existeront. Si vous sélectionnez Mode sans échec , les messages de l'utilisateur seront cryptés et devront être déchiffrés avant un traitement ultérieur

2. Répondez aux messages de l'utilisateur

Référez-vous à la documentation de développement de la plateforme publique WeChat

•Messages texte

<xml> 
<ToUserName><![CDATA[{0}]]></ToUserName> 
<FromUserName><![CDATA[{1}]]></FromUserName> 
<CreateTime>{2}</CreateTime> 
<MsgType><![CDATA[text]]></MsgType> 
<Content><![CDATA[{3}]]></Content> 
</xml>


PhotosMessages

<xml> 
<ToUserName><![CDATA[{0}]]></ToUserName> 
<FromUserName><![CDATA[{1}]]></FromUserName> 
<CreateTime>{2}</CreateTime> 
<MsgType><![CDATA[image]]></MsgType> 
<Image> 
<MediaId><![CDATA[{3}]]></MediaId> 
</Image> 
</xml>

Le format du message est déjà là, il suffit ensuite de paramétrer les paramètres correspondants

responseContent = string.Format(ReplyType.Message_Text, 
 FromUserName.InnerText, 
 ToUserName.InnerText, 
DateTime.Now.Ticks, 
String.IsNullOrEmpty(reply)?"Sorry,I can not follow you." :reply);

<.>

3. Cryptage et décryptage des messages des utilisateurs et des messages du serveur

Documentation du développeur de la plateforme publique WeChat. fournit c,

C#, java, etc. Pour les exemples de cryptage et de décryptage de langage, nous utilisons C#. Nous n'avons besoin que d'ajouter deux des fichiers au projet. Sample.cs est l'exemple de code donné par WeChat. Il n'est pas nécessaire de référencer . Ajoutez simplement des références aux fichiers WXBizMsg

Crypt

.cs et Cryptography.cs Afin d'encapsuler davantage et de faciliter les appels, j'ai créé. une nouvelle classe WeChatSecurityHelper Définissez respectivement deux méthodes de cryptage (EncryptMsg) et de décryptage (DecryptMsg), créez un objet WXBizMsgCrypt

et appelez sa méthode de cryptage et de décryptage pour un code spécifique, voir l'exemple de code

Utiliser asp.net pour développer la plateforme publique WeChat afin dobtenir les messages des utilisateurs et de les traiterWeChatSecurityHelper


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common
{
  public class WeChatSecurityHelper
  {
    /// <summary>
    /// 定义Token,与微信公共平台上的Token保持一致
    /// </summary>
    private const string Token = "StupidMe";
    /// <summary>
    /// AppId 要与 微信公共平台 上的 AppId 保持一致
    /// </summary>
    private const string AppId = "11111111111";
    /// <summary>
    /// 加密用 
    /// </summary>
    private const string AESKey = "pvX2KZWRLQSkUAbvArgLSAxCwTtxgFWF3XOnJ9iEUMG";

    private static Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(Token, AESKey, AppId);
    private string signature,timestamp,nonce;
    private static LogHelper logger = new LogHelper(typeof(WeChatSecurityHelper));


    public WeChatSecurityHelper(string signature, string timestamp, string nonce)
    {
      this.signature = signature;
      this.timestamp = timestamp;
      this.nonce = nonce;
    }

    /// <summary>
    /// 加密消息
    /// </summary>
    /// <param name="msg">要加密的消息</param>
    /// <returns>加密后的消息</returns>
    public string EncryptMsg(string msg)
    {
      string encryptMsg="";
      int result = wxcpt.EncryptMsg(msg, timestamp, nonce, ref encryptMsg);
      if (result == 0)
      {
        return encryptMsg;
      }
      else
      {
        logger.Error("消息加密失败");
        return "";
      }
    }

    /// <summary>
    /// 解密消息
    /// </summary>
    /// <param name="msg">消息体</param>
    /// <returns>明文消息</returns>
    public string DecryptMsg(string msg)
    {
      string decryptMsg = "";
      int result = wxcpt.DecryptMsg(signature, timestamp, nonce, msg,ref decryptMsg);
      if (result != 0)
      {
        logger.Error("消息解密失败,result:"+result);
      }
      return decryptMsg;
    }
  }
}

Ce qui précède est l'intégralité du contenu de cet article, j’espère qu’il vous plaira tous.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn