Home > WeChat Applet > WeChat Development > C# WeChat public account development--WeChat event interaction

C# WeChat public account development--WeChat event interaction

黄舟
Release: 2017-01-16 10:56:30
Original
1917 people have browsed it

Preface

When all preparations are ready, first implement a follow public account and then push a message to the client. Pushing a message after paying attention requires a get request and a post request. The get request is mainly to verify with the WeChat server, and the post request is mainly to process WeChat messages. Please pass the parameters corresponding to your official account for the appid and appsecret passed when adjusting the interface.

WeChat event interaction

WeChat event interaction is mainly to push XML data packets to the WeChat server

C# WeChat public account development--WeChat event interaction

See the effect

C# WeChat public account development--WeChat event interaction

Look at the 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");    
}
}
Copy after login
[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>";            
}    
}
Copy after login
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; }   
}
Copy after login

Summary

It is not possible to debug during the development of the WeChat interface. The only way to eliminate problems is in key places Log.

WeChat event interaction mainly analyzes the xml data packet sent by WeChat, parses the xml, and splices the xml according to the message specified format and sends it to the response. CheckSignature used in the Get method is a class of Shengpai WeChat SDK, which is for signature verification.

When sending messages to the client, ToUserName and FromUserName are the main ones. I initially wrote the two parameters backwards, causing the client to not receive the message.

The above is the content of C# WeChat public account development-WeChat event interaction. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template