Die hier angegebene Demo ist der Quellcode der öffentlichen WeChat-Plattform mit einem Gesamtframework. Die sogenannte Demo kann natürlich nicht sehr detailliert für das Unternehmen verwendet werden Ebene und Datenebene Jeder kann sich auf dieser Basis frei weiterentwickeln. Solange Sie die ersten 6 Artikel lesen, werden Sie auf jeden Fall in der Lage sein, etwas Eigenes zu entwickeln.
Die Demo ist einfach und leicht zu verstehen, jeder kann sie verstehen. Hier sind die Unterschiede zwischen der Demo und meinem tatsächlichen Projekt:
1. Die Demo ist nicht mit der Datenbank verbunden. Der Demo-Download kann nicht für jeden bequem verwendet werden. Im ersten Artikel wurde die gesamte Datenbank geöffnet, einschließlich der visuellen Schnittstelle. Wenn Sie eine Verbindung zur Datenbank herstellen möchten Stellen Sie nach dem Erstellen der Datenbank einfach eine Verbindung her. Die Verbindungsmethode finden Sie in Teil 2
2. Die Demo kapselt nicht das empfangene WeChat-Nachrichtenmodell. Da der Zweck der Kapselung der empfangenen Nachricht darin besteht, die Nachricht aufzuzeichnen und zur Datenbank hinzuzufügen, ist dies der Fall. Der dritte Teil der Nachrichtenkapselung wurde geschrieben Keine Überprüfung am Demo-Eingang. Da die Demo nach der Rücknahme von jedem verwendet werden kann, können viele Personen sie möglicherweise nicht anpassen, wenn die Überprüfung der verschlüsselten Signatur hinzugefügt wird. Für lokale Tests gibt es überhaupt keine verschlüsselte Signatur zur Überprüfung (tatsächlich ist dies bei lokalen Tests möglich). Geben Sie direkt „true“ zurück, damit jeder es verstehen kann. Der Code der Überprüfungsmethode ist im zweiten Artikel enthalten Caching bezogen. Nicht jede Geschäftsanforderung erfordert Caching und IOC-Injection, und nicht jeder war damit konfrontiert. Der Allgemeinheit halber wurden sie entfernt. Wenn Sie in anderen Projekten auf Probleme im Zusammenhang mit der IOC-Injektion und der Cache-Verarbeitung stoßen, können Sie mich fragen, ich werde gerne antworten
Zusammenfassung: Demo ist ein vollständiges, einfaches Framework für die öffentliche WeChat-Plattform und für jeden Entwicklungsautor geeignet ; Die vorherigen Artikel, die sich auf die Datenbanken beziehen, die in tatsächlichen Projekten verwendet werden müssen, enthalten auch alle Codes und Betriebsmethoden.
Basierend auf der Demo kann jeder schnell seine eigene öffentliche WeChat-Plattform erstellen.
Das Wichtigste ist, die Gesamtidee zu teilen. Die öffentliche WeChat-Plattform ist eigentlich sehr einfach. Die meisten Menschen verstehen die Besonderheiten des Nachrichtenempfangs und der Nachrichtenverarbeitung nicht Für diese verschiedenen Fälle kann es viele Entwicklungen geben. Es wird lange dauern, bis jemand es herausfindet (das hat nichts mit technischen Fähigkeiten zu tun, hauptsächlich weil einige Freunde nicht alles auf einmal herausfinden können) und diese Demo-Quelle teilen kann Code, damit jeder loslegen kann
Ich werde in Zukunft weitere Artikel schreiben, Prozess teilen, nur um den Entwicklungsprozess zu teilen, Sie können sehen, dass alle Screenshots in diesen Artikeln von mir entfernt wurden WeChat-ID, Name usw., obwohl beim Schreiben des Artikels die Screenshots ohne das allgemeine Konto eines Benutzers erstellt wurden. Getestet.public void LookMsgType(string msgType) { #region 判断消息类型 switch (msgType) { case "text": RText mText = new RText(); mText = ReadXml.GetModel<RText>(mText, xmlModel); BLLWei.DoText(dbHome, mText);//文本消息 break; case "image": RImg mImg = new RImg(); mImg = ReadXml.GetModel<RImg>(mImg, xmlModel); BLLWei.DoImg(dbHome,mImg);//图片 break; case "voice": //声音 RVoice mVoice = new RVoice(); mVoice = ReadXml.GetModel<RVoice>(mVoice, xmlModel); BLLWei.DoVoice(dbHome,mVoice); break; case "video"://视频 RVideo mVideo = new RVideo(); mVideo = ReadXml.GetModel<RVideo>(mVideo, xmlModel); BLLWei.DoVideo(dbHome, mVideo); break; case "location"://地理位置 RLocation mLocation = new RLocation(); mLocation = ReadXml.GetModel<RLocation>(mLocation, xmlModel); BLLWei.DoLocation(dbHome,mLocation); break; case "link"://链接 RLink mLink = new RLink(); mLink = ReadXml.GetModel<RLink>(mLink, xmlModel); BLLWei.DoLink(dbHome,mLink); break; #region 事件 case "event": switch (ReadXml.ReadModel("Event", xmlModel)) { case "subscribe": if (ReadXml.ReadModel("EventKey", xmlModel).IndexOf("qrscene_") >= 0) { RCodeNotSub mNotSub = new RCodeNotSub(); mNotSub = ReadXml.GetModel<RCodeNotSub>(mNotSub, xmlModel); BLLWei.DoCodeNotSub(dbHome,mNotSub);//未关注的新用户,扫描带参数的二维码关注 } else { RSub mSub = new RSub(); mSub = ReadXml.GetModel<RSub>(mSub, xmlModel); BLLWei.DoSub(dbHome,mSub);//普通关注 } break; case "unsubscribe": RUnsub mUnSub = new RUnsub (); mUnSub = ReadXml.GetModel<RUnsub>(mUnSub, xmlModel); BLLWei.DoUnSub(dbHome,mUnSub);//取消关注 break; case "SCAN": RCodeSub mCodeSub = new RCodeSub(); mCodeSub = ReadXml.GetModel<RCodeSub>(mCodeSub, xmlModel); BLLWei.DoCodeSub(dbHome,mCodeSub);//已经关注的用户扫描带参数的二维码 break; case "LOCATION"://用户上报地理位置 RSubLocation mSubLoc = new RSubLocation(); mSubLoc = ReadXml.GetModel<RSubLocation>(mSubLoc, xmlModel); BLLWei.DoSubLocation(dbHome, mSubLoc); break; case "CLICK"://自定义菜单点击 RMenuClick mMenuClk = new RMenuClick(); mMenuClk = ReadXml.GetModel<RMenuClick>(mMenuClk, xmlModel); BLLWei.DoMenuClick(dbHome, mMenuClk); break; case "VIEW"://自定义菜单跳转事件 RMenuView mMenuVw = new RMenuView(); mMenuVw = ReadXml.GetModel<RMenuView>(mMenuVw, xmlModel); BLLWei.DoMenuView(dbHome, mMenuVw); break; }; break; #endregion } #endregion }