Maison  >  Article  >  développement back-end  >  Développement de comptes publics C# WeChat Interaction avec les événements WeChat

Développement de comptes publics C# WeChat Interaction avec les événements WeChat

高洛峰
高洛峰original
2017-01-17 10:42:511258parcourir

Avant-propos

Lorsque tous les préparatifs sont prêts, mettez d'abord en place un compte public de suivi, puis envoyez un message au client. Pousser un message après avoir prêté attention nécessite une demande d'obtention et une demande de publication. La demande d'obtention sert principalement à vérifier auprès du serveur WeChat, et la demande de publication sert principalement à traiter les messages WeChat. Pour l'appid et l'appsecret transmis lors du réglage de l'interface, merci de transmettre les paramètres correspondant à votre compte officiel.

Interaction avec les événements WeChat

L'interaction avec les événements WeChat pousse principalement les paquets de données XML vers le serveur WeChat

C#微信公众号开发 微信事件交互

Regardez le code

[HttpGet]
[ActionName("Index")]
public ActionResult Get(string signature,string timestamp,string nonce,string echostr)
{
  if (CheckSignature.Check(signature, timestamp, nonce, token))
  {
    return Content(echostr);
  }
  else
  {
    return Content("err");
  }
[HttpPost]
[ActionName("Index")]
public ActionResult Get(string signature, string timestamp, string nonce)
{
   StreamReader sr = new StreamReader(Request.InputStream, Encoding.UTF8);
   XmlDocument doc = new XmlDocument();
   doc.Load(sr);
   sr.Close();
   sr.Dispose();
  
   WxMessage wxMessage = new WxMessage();
   wxMessage.ToUserName = doc.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText;
   wxMessage.FromUserName = doc.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText;
   wxMessage.MsgType = doc.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText;
   wxMessage.CreateTime = int.Parse(doc.SelectSingleNode("xml").SelectSingleNode("CreateTime").InnerText);
  
   if (wxMessage.MsgType == "event")
   {
     wxMessage.EventName = doc.SelectSingleNode("xml").SelectSingleNode("Event").InnerText;
     if (!string.IsNullOrEmpty(wxMessage.EventName) && wxMessage.EventName == "subscribe")
     {
       string content = "您好,欢迎访问garfieldzf8测试公众平台";
       content = SendTextMessage(wxMessage, content);
       return Content(content);
    }
  }
      return Content("");
}
  
  
private string SendTextMessage(WxMessage wxmessage,string content)
{
   string result = string.Format(Message, wxmessage.FromUserName,wxmessage.ToUserName,DateTime.Now.Ticks, content);
   return result;
}
  
  
 public string Message
 {
   get
   {
     return @"<xml>
           <ToUserName><![CDATA[{0}]]></ToUserName>
           <FromUserName><![CDATA[{1}]]></FromUserName>
           <CreateTime>{2}</CreateTime>
           <MsgType><![CDATA[text]]></MsgType>
           <Content><![CDATA[{3}]]></Content>
         </xml>";
      }
  }
public class WxMessage
 {
    public string ToUserName { get; set; }
    public string FromUserName { get; set; }
    public long CreateTime { get; set; }
  
    public string Content { get; set; }
    public string MsgType { get; set; }
    public string EventName { get; set; }
    public string EventKey { get; set; }
 }

Résumé

Vous ne pouvez pas déboguer pendant le développement de l'interface WeChat. La seule façon de résoudre les problèmes est de vous connecter aux endroits clés.

L'interaction avec l'événement WeChat analyse principalement le paquet de données XML envoyé par WeChat, analyse le XML, épisse le XML selon le format spécifié du message et l'envoie à la réponse. CheckSignature utilisée dans la méthode Get est une classe du SDK Shengpai WeChat, destinée à la vérification de la signature.

Principalement ToUserName et FromUserName lors de l'envoi de messages au client. J'ai initialement écrit les deux paramètres à l'envers, ce qui a empêché le client de recevoir le message.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles liés au développement de comptes publics C# WeChat et à l'interaction avec les événements WeChat, veuillez prêter attention au site Web PHP 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