Ich will keinen Unsinn reden, schreib ihn einfach! Weil es Ihnen überlassen bleibt, Aufs?tze zu schreiben, also beschweren Sie sich bitte nicht, wenn Sie es sehen...
1. Sie müssen über ein ?ffentliches WeChat-Konto verfügen
2. Das k?nnen Sie Beantragen Sie auch ein WeChat-Testkonto. Der Link wird Ihnen angezeigt http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
Dann erstellen Sie MVC , Sie müssen nur ein paar Mal klicken und vs erledigt das für Sie. Das ist kein Unsinn
Als n?chstes müssen Sie einen allgemeinen Handler erstellen, ihm beil?ufig einen Namen geben, das Bestehen des Tests ist der Schlüssel, beeilen Sie sich ...
///?<summary> ????????///?驗證微信簽名???????? ????????///?</summary> ????????///?<returns></returns> ????????///?*?將token、timestamp、nonce三個參數(shù)進(jìn)行字典序排序???????? ????????///?*?將三個參數(shù)字符串拼接成一個字符串進(jìn)行sha1加密???????? ????????///?*?開發(fā)者獲得加密后的字符串可與signature對比,標(biāo)識該請求來源于微信。 ????????private?bool?CheckSignature() ????????{????????????var?token?=?"token";? ????????????var?signature?=?HttpContext.Current.Request.QueryString["signature"];????????????var?timestamp?=?HttpContext.Current.Request.QueryString["timestamp"];????????????var?nonce?=?HttpContext.Current.Request.QueryString["nonce"];????????????var?echostr?=?HttpContext.Current.Request.QueryString["echostr"];????????????string[]?ArrTmp?=?{?token,?timestamp,?nonce?}; ????????????Array.Sort(ArrTmp);?????//字典排序 ????????????var?tmpStr?=?string.Join("",?ArrTmp); ????????????tmpStr?=?FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr,?"SHA1");//加密方式????????????if?(tmpStr.ToLower()?==?signature) ????????????{????????????????return?true; ????????????}????????????return?false; ????????}
Dieser Code entspricht einem Eins-zu-eins-Token-Kommunikations-Handshake mit dem Token, den Sie in [Entwicklung] – ?[Grundkonfiguration] des offiziellen WeChat-Kontos geschrieben haben. Solange sie kommunizieren miteinander, dann bist du fertig!
Es ist etwas, das sp?ter erledigt werden muss, es gibt noch viel zu tun, wischen Sie es ab und schreiben Sie weiter!
Wie konfiguriere ich es? Ich kann es nur mit Erdnussschalen testen, nachdem ich es lange gespielt habe.
Sehen Sie sich das Bild unten an: Erdnussschalenkonfiguration links ----- iis-Website-Publishing-Bindung rechts
Nachdem Sie dieses Bild gesehen haben, werden Sie verstehen, wie der n?chste Schritt ausgeführt wird. Der lokale IIS ist mit einem Dom?nennamen ausgestattet. Das ist so gro?artig...
unten. Wir fügen Code hinzu. Richten Sie Sende- und automatische Antworttests ein und prüfen Sie, ob Sie
?#region?接收消息????????///?<summary> ????????///?接收微信發(fā)送的XML消息并且解析????????///?</summary> ????????private?void?ReceiveXml() ????????{????????????var?requestStream?=?HttpContext.Current.Request.InputStream;????????????var?requestByte?=?new?byte[requestStream.Length]; ????????????requestStream.Read(requestByte,?0,?(int)requestStream.Length);????????????var?requestStr?=?Encoding.UTF8.GetString(requestByte);????????????if?(!string.IsNullOrEmpty(requestStr)) ????????????{????????????????//封裝請求類 ????????????????var?requestDocXml?=?new?XmlDocument(); ????????????????requestDocXml.LoadXml(requestStr);????????????????var?rootElement?=?requestDocXml.DocumentElement;????????????????if?(rootElement?==?null)?return;????????????????var?wxXmlModel?=?new?WxXmlModel ????????????????{ ????????????????????ToUserName?=?rootElement.SelectSingleNode("ToUserName").InnerText, ????????????????????FromUserName?=?rootElement.SelectSingleNode("FromUserName").InnerText, ????????????????????CreateTime?=?rootElement.SelectSingleNode("CreateTime").InnerText, ????????????????????MsgType?=?rootElement.SelectSingleNode("MsgType").InnerText ????????????????};????????????????switch?(wxXmlModel.MsgType) ????????????????{????????????????????case?"text"://文本 ????????????????????????wxXmlModel.Content?=?rootElement.SelectSingleNode("Content").InnerText;????????????????????????break;????????????????????case?"image"://圖片 ????????????????????????wxXmlModel.PicUrl?=?rootElement.SelectSingleNode("PicUrl").InnerText;????????????????????????break;????????????????????case?"event"://事件 ????????????????????????wxXmlModel.Event?=?rootElement.SelectSingleNode("Event").InnerText;????????????????????????if?(wxXmlModel.Event?!=?"TEMPLATESENDJOBFINISH")//關(guān)注類型????????????????????????{ ????????????????????????????wxXmlModel.EventKey?=?rootElement.SelectSingleNode("EventKey").InnerText; ????????????????????????}????????????????????????break;????????????????????default:????????????????????????break; ????????????????} ????????????????ResponseXML(wxXmlModel);//回復(fù)消息????????????} ????????}????????#endregion ????????#region?回復(fù)消息????????private?void?ResponseXML(WxXmlModel?WxXmlModel) ????????{????????????var?QrCodeApi?=?new?QrCodeApi();????????????var?XML?=?"";????????????switch?(WxXmlModel.MsgType) ????????????{????????????????case?"text"://文本回復(fù) ????????????????????XML?=?ResponseMessage.GetText(WxXmlModel.FromUserName,?WxXmlModel.ToUserName,?WxXmlModel.Content);????????????????????break;????????????????case?"event":????????????????????switch?(WxXmlModel.Event) ????????????????????{????????????????????????case?"subscribe":????????????????????????????if?(string.IsNullOrEmpty(WxXmlModel.EventKey)) ????????????????????????????{ ????????????????????????????????XML?=?ResponseMessage.GetText(WxXmlModel.FromUserName,?WxXmlModel.ToUserName,?"關(guān)注成功"); ????????????????????????????}????????????????????????????else ????????????????????????????{ ????????????????????????????????XML?=?ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName,?WxXmlModel.ToUserName,?WxXmlModel.EventKey);//掃描帶參數(shù)二維碼先關(guān)注后推送事件????????????????????????????}????????????????????????????break;????????????????????????case?"SCAN": ????????????????????????????XML?=?ResponseMessage.ScanQrcode(WxXmlModel.FromUserName,?WxXmlModel.ToUserName,?WxXmlModel.EventKey);//掃描帶參數(shù)二維碼已關(guān)注?直接推送事件 ????????????????????????????break; ????????????????????}????????????????????break;????????????????default://默認(rèn)回復(fù) ????????????????????break; ????????????} ????????????HttpContext.Current.Response.Write(XML); ????????????HttpContext.Current.Response.End(); ????????}????????#endregion
spielen k?nnen. Das obige sendet und das andere empf?ngt, immer noch im WhApi. Ashx-Handler-Datei. Ich m?chte es nur klarstellen, haha!
Da Ihr Handshake mit der ?ffentlichen Plattform erfolgreich war, müssen Sie etwas zum Ausprobieren senden, richtig~~
Das Bild unten zeigt die Zuordnung zwischen einer Empfangsmethode und einer automatisch passenden Antwortdatei I werde diese Datei bald hochladen!
Es fehlt noch eine Konfiguration, n?mlich die Einstellung [Debug] ---- [An Prozess anh?ngen] für vs, nur für Sie Sie müssen Folgendes ?ndern: [Alle anzeigen Wenn Sie ein Element unter ?Benutzerprozess“ markieren, finden Sie w3wp.exe. Wenn es mehrere solcher Prozesse gibt, müssen Sie noch die Spalte ?Benutzername“ best?tigen und den mit demselben ausw?hlen Geben Sie den Namen als Ihren Programmpool ein, klicken Sie auf ?OK“, klicken Sie auf ?Anh?ngen“ und dann auf ?Angeh?ngt!“.
Weiter. Es macht Spa?…………………………………………………………………
Scannen Sie das ?ffentliche Testkonto auf WeChat und senden Sie eine individuelle Nachricht, um zu sehen, welche Antworten es gibt Es gibt sie, die obige mühsame Konfiguration kann durch Hinzufügen von Haltepunkten debuggt werden, sonst macht es keinen Sinn, so viel zu tun, oder? Stellen Sie einfach sicher, dass das Senden und Empfangen mit Ihren eigenen Einstellungen übereinstimmt, dann ist es in Ordnung.
Das ist es......es ist fertig.
Weitere C#-Implementierungen des WeChat-Entwicklungsvorspiels und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)