Entwicklung eines öffentlichen C#-WeChat-Kontos – Interaktion mit WeChat-Ereignissen

黄舟
Freigeben: 2017-01-16 10:56:30
Original
1900 Leute haben es durchsucht

Vorwort

Wenn alle Vorbereitungen getroffen sind, implementieren Sie zunächst ein öffentliches Follow-Konto und senden Sie dann eine Nachricht an den Kunden. Das Senden einer Nachricht nach dem Aufpassen erfordert eine Get-Anfrage und eine Post-Anfrage. Die Get-Anfrage dient hauptsächlich der Überprüfung beim WeChat-Server, und die Post-Anfrage dient hauptsächlich der Verarbeitung von WeChat-Nachrichten. Für die beim Anpassen der Schnittstelle übergebenen App-IDs und App-Geheimnisse übergeben Sie bitte die Parameter, die Ihrem offiziellen Konto entsprechen.

WeChat-Ereignisinteraktion

WeChat-Ereignisinteraktion überträgt hauptsächlich XML-Datenpakete an den WeChat-Server

Entwicklung eines öffentlichen C#-WeChat-Kontos – Interaktion mit WeChat-Ereignissen

Siehe die Wirkung

Entwicklung eines öffentlichen C#-WeChat-Kontos – Interaktion mit WeChat-Ereignissen

Sehen Sie sich den Code an

[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");    
}
}
Nach dem Login kopieren
[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>";            
}    
}
Nach dem Login kopieren
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; }   
}
Nach dem Login kopieren

Zusammenfassung

Sie können während der Entwicklung des nicht debuggen WeChat-Schnittstelle, der einzige Ausschluss ist Die Lösung des Problems besteht darin, sich an wichtigen Stellen anzumelden.

Die WeChat-Ereignisinteraktion analysiert hauptsächlich das von WeChat gesendete XML-Datenpaket, analysiert das XML, spleißt das XML entsprechend dem in der Nachricht angegebenen Format zusammen und sendet es an die Antwort. CheckSignature, das in der Get-Methode verwendet wird, ist eine Klasse des Shengpai WeChat SDK, die der Signaturüberprüfung dient.

Hauptsächlich ToUserName und FromUserName beim Senden von Nachrichten an den Client. Ich habe die beiden Parameter zunächst rückwärts geschrieben, was dazu führte, dass der Client die Nachricht nicht empfing.

Das Obige ist der Inhalt der C#-WeChat-Interaktion zwischen öffentlicher Kontoentwicklung und WeChat-Ereignis. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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