Heim >Backend-Entwicklung >C#.Net-Tutorial >c# verwendet die WeChat-Schnittstelle, um eine WeChat-Portalanwendung zu entwickeln

c# verwendet die WeChat-Schnittstelle, um eine WeChat-Portalanwendung zu entwickeln

高洛峰
高洛峰Original
2017-01-17 10:58:231301Durchsuche

WeChat-Anwendungen sind in vollem Gange, und viele Unternehmen hoffen, in den Informationsexpress aufgenommen zu werden. Dies ist eine Geschäftsmöglichkeit und eine technische Richtung. Daher ist es zu einer der wichtigsten Aufgaben geworden, sich über WeChat-bezogene Entwicklungen zu informieren wichtige Dinge in täglichen Plänen. Ziel dieser Artikelserie ist es, den relevanten Entwicklungsprozess und die damit verbundene Erfahrungszusammenfassung von WeChat Schritt für Schritt umfassend vorzustellen und allen ein Verständnis für den relevanten Entwicklungsprozess zu vermitteln. Dieser Aufsatz konzentriert sich hauptsächlich auf die vorbereitende Vorbereitung des WeChat-Entwicklungsprozesses und die Einführung einiger erster Arbeiten.

In der Woche vor dem Schreiben dieses Artikels habe ich hauptsächlich auf einige Einführungsartikel und zugehörige Schnittstellenanweisungen der öffentlichen WeChat-Plattform verwiesen, kombiniert mit der Entwicklung von C#-Code, um die Portalschnittstelle meines Unternehmens zu sortieren und WeChat als Arbeit zu implementieren Mit fortschreitendem Fortschritt können immer mehr Funktionen zur vorläufigen Benutzerinteraktion und Informationsanzeige des Arbeitskontos hinzugefügt werden. Ich hoffe, die WeChat-Schnittstelle aus Anwendungsperspektive zu erweitern, um meine technische Erkundung und mein Verständnis der WeChat-Schnittstelle zu verwirklichen. .

1. WeChat-Konto

Um die Plattform-API von WeChat zu entwickeln und zu nutzen, müssen Sie sich auf der öffentlichen Plattform von WeChat (https://mp.weixin.qq.com/) registrieren und über einen Dienst verfügen Das Dienstkonto ist hauptsächlich für Unternehmen und Organisationen gedacht. Es gibt bestimmte Unterschiede zwischen ihnen, je nach Bedarf.

Um einige erweiterte Schnittstellen nutzen zu können, benötigen Sie möglicherweise ein Dienstkonto und eine erweiterte Authentifizierung. Bei der Kontoregistrierung müssen Sie ein Antragsformular herunterladen, es ausdrucken und mit dem offiziellen Siegel versehen. Außerdem muss der Antragsteller ein Foto mit dem Personalausweis machen (etwas seltsam, haha) und es dann hochladen Im Allgemeinen kann die Genehmigung schnell eingeholt werden.

Ich habe ein Dienstkonto im Namen des Unternehmens beantragt. Nachdem das Konto registriert wurde, werden Ihre relevanten Informationen auf der Hauptoberfläche angezeigt Der QR-Code zur Eingabe des WeChat-Kontos folgt dem Bestätigungsdialogfeld, was sehr praktisch ist. Nachfolgend finden Sie den QR-Code meines Firmenkontos nach meiner Bewerbung, der direkt gescannt werden kann.

c# verwendet die WeChat-Schnittstelle, um eine WeChat-Portalanwendung zu entwickeln

2. WeChat-Menüdefinition

WeChat verfügt über zwei Arten der Menüdefinition, eine ist der Bearbeitungsmodus und die andere ist der Entwicklungsmodus. Die beiden interagieren Ausschluss, das heißt, sobald wir den Entwicklungsmodus übernommen haben, können wir den Bearbeitungsmodus nicht mehr verwenden und umgekehrt. Das bearbeitete Menü kann tatsächlich verwaltet werden, aber WeChat unterstützt es nicht, was mich sehr unzufrieden macht.

Wenn wir unter normalen Umständen gerade eine WeChat-Nummer beantragt haben, können wir sie über das Bearbeitungsmenü testen und einige Menüs gemäß den Anweisungen bearbeiten. Obwohl WeChat angibt, dass die Aktualisierung innerhalb von 24 Stunden erfolgen wird, erfolgt die Aktualisierung normalerweise sehr schnell, höchstens innerhalb von ein oder zwei Minuten, was sich gut anfühlt.

Um den Entwicklermodus zu verwenden, müssen Sie einen Seitenlink gemäß den Anforderungen von WeChat auf dem Server platzieren. Wenn Sie ihn mit C# entwickeln, können Sie die Benennungsmethode ***.ashx verwenden und die allgemeine Verarbeitung verwenden Programm von Asp.NET Das ist alles, es ist nicht nötig, eine normale Seite zu verwenden.

Mit dem Entwicklungsmodus-Menü können Sie die WeChat-API aufrufen, um das Menü zu erstellen (WeChat verfügt über viele aufzurufende APIs). Wir müssen die Bedeutung mehrerer Parameter kennen. Wenn der Entwicklungsmodus aktiviert ist, werden diese Parameter für Sie aufgelistet, wie unten gezeigt.

c# verwendet die WeChat-Schnittstelle, um eine WeChat-Portalanwendung zu entwickeln

3. Linkverarbeitung für den Zugriff auf WeChat

Wie oben erwähnt, müssen Sie bestehen, wenn Sie sich für den Entwicklungsmodus bewerben, um Menü- oder andere API-Aufrufe durchzuführen es erfolgreich Der Test des Zugriffs auf WeChat bedeutet, dass bestätigt wird, dass der von Ihnen eingegebene Link vorhanden ist und den Rückruftest von WeChat erfolgreich bestehen kann. WeChat bietet ein Beispiel für die PHP-Seitenverarbeitung. Wenn wir es in C# entwickeln, können wir suchen und erhalten die Antwort. Meine Verarbeitungsmethode ist wie folgt.

Erstellen Sie ein allgemeines Verarbeitungsprogramm und fügen Sie dann eine Verarbeitungslogik zu seiner Verarbeitungsseite hinzu. Wenn es sich um Nicht-POST-Inhalte handelt, bedeutet dies, dass Sie eine Verarbeitungslogik hinzufügen und angeben müssen Wenn es sich im POST-Modus befindet, handelt es sich um den Anforderungsvorgang des WeChat-Servers für die Schnittstellennachricht, der später vorgestellt wird.

/// <summary>
    /// 微信接口。统一接收并处理信息的入口。
    /// </summary>
    public class wxapi : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            string postString = string.Empty;
            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
            {
                using (Stream stream = HttpContext.Current.Request.InputStream)
                {
                    Byte[] postBytes = new Byte[stream.Length];
                    stream.Read(postBytes, 0, (Int32)stream.Length);
                    postString = Encoding.UTF8.GetString(postBytes);
                }

                if (!string.IsNullOrEmpty(postString))
                {
                    Execute(postString);
                }
            }
            else
            {
                Auth(); //微信接入的测试
            }
        }

Im Allgemeinen werden in der Auth-Funktion die relevanten Parameter abgerufen, dann verarbeitet und an den WeChat-Server zurückgegeben.

string token = "****";//你申请的时候填写的Token
string echoString = HttpContext.Current.Request.QueryString["echoStr"];
string signature = HttpContext.Current.Request.QueryString["signature"];
string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
string nonce = HttpContext.Current.Request.QueryString["nonce"];

Der vollständige Author-Funktionscode lautet wie folgt. Ich habe die Geschäftslogik weiter in eine neue Klasse extrahiert, um die Verwaltung der Geschäftslogik zu erleichtern.

/// <summary>
        /// 成为开发者的第一步,验证并相应服务器的数据
        /// </summary>
        private void Auth()
        {
            string token = ConfigurationManager.AppSettings["WeixinToken"];//从配置文件获取Token
            if (string.IsNullOrEmpty(token))
            {
                LogTextHelper.Error(string.Format("WeixinToken 配置项没有配置!"));
            }
            string echoString = HttpContext.Current.Request.QueryString["echoStr"];
            string signature = HttpContext.Current.Request.QueryString["signature"];
            string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
            string nonce = HttpContext.Current.Request.QueryString["nonce"];
            if (new BasicApi().CheckSignature(token, signature, timestamp, nonce))
            {
                if (!string.IsNullOrEmpty(echoString))
                {
                    HttpContext.Current.Response.Write(echoString);
                    HttpContext.Current.Response.End();
                }
            }
        }

Der Code zum Signieren und Zurückgeben des WeChat-Parameters CheckSignatur lautet wie folgt

/// <summary>
        /// 验证微信签名
        /// </summary>
        public bool CheckSignature(string token, string signature, string timestamp, string nonce)
        {
            string[] ArrTmp = { token, timestamp, nonce };
            Array.Sort(ArrTmp);
            string tmpStr = string.Join("", ArrTmp);
            tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
            tmpStr = tmpStr.ToLower();
            if (tmpStr == signature)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

4. Verwenden Sie die Entwicklungsmethode, um ein Menü zu erstellen


Sobald Sie die Authentifizierung von WeChat erfolgreich bestanden haben, können Sie die API im Entwicklungsmodus aufrufen und Ihr Menü nach Belieben erstellen.

Um ein Menü zu erstellen, können Sie dessen API-Verarbeitungsschnittstelle über den folgenden Speicherort aufrufen.

c# verwendet die WeChat-Schnittstelle, um eine WeChat-Portalanwendung zu entwickeln

Nach der Eingabe werden Sie feststellen, dass WeChat die Verarbeitung vieler Nachrichten in verschiedene Kategorien unterteilt hat.

c# verwendet die WeChat-Schnittstelle, um eine WeChat-Portalanwendung zu entwickeln

Weitere Artikel zum Thema C#, die die WeChat-Schnittstelle zur Entwicklung von WeChat-Portalanwendungen verwenden, finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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