Heim  >  Artikel  >  WeChat-Applet  >  C#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

高洛峰
高洛峰Original
2017-02-16 16:27:341503Durchsuche

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 ein Dienstkonto oder Abonnementkonto ist hauptsächlich für Unternehmen und Organisationen gedacht. Es gibt bestimmte Unterschiede zwischen ihnen Konto benötigt.

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#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

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#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

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, in dem ich die Geschäftslogik weiter in eine neue Klasse extrahiert habe, 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 CheckSignature 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 den Entwicklungsmodus, um Menüs 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#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

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

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

Tatsächlich müssen wir zunächst sehen, wie man mit Code ein Menü erstellt und die API-Debugging-Schnittstelle des Menüs aufruft.

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

Sie werden feststellen, dass Sie auch ein Access_Token eingeben müssen. Dabei handelt es sich um eine Sitzungsauthentifizierung, Sie müssen also zur Schnittstelle gehen, um herauszufinden, wie Sie es erstellen. Die beiden roten Teile im Bild unten sind die beiden Schlüsselparameter der „Entwickleranmeldeinformationen“, die WeChat uns zu Beginn mitgeteilt hat.

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

Danach können Sie das Menü basierend auf dem erhaltenen Access_Token erstellen. Gemäß der Definition des Menüs ist es in mehrere Kategorien unterteilt, die unterteilt werden können in URL-Methoden (Ansicht), Ereignismodus (Klick).

Klick: Nachdem der Benutzer auf die Schaltfläche „Klicktyp“ geklickt hat, überträgt der WeChat-Server die Nachrichtentyp-Ereignisstruktur über die Nachrichtenschnittstelle an den Entwickler (siehe Anleitung zur Nachrichtenschnittstelle). Bringen Sie den vom Benutzer eingegebenen Schlüsselwert zur Schaltfläche für die Entwicklung. Der Entwickler kann mit dem Benutzer über den benutzerdefinierten Schlüsselwert interagieren Der WeChat-Client wird geöffnet und der Entwickler kann die Schaltfläche ausfüllen. Der URL-Wert (d. h. der Webseiten-Link) kann den Zweck des Öffnens der Webseite erfüllen. Es wird empfohlen, ihn mit der Webseiten-Autorisierung zu kombinieren, um die Grundberechtigung des Benutzers zu erhalten Informationsschnittstelle, um die persönlichen Anmeldeinformationen des Benutzers zu erhalten.

4. Der Menükoffer, den ich erstellt habe

Zu Beginn des Aufsatzes habe ich einen QR-Code veröffentlicht. Sobald Sie WeChat zum Scannen verwenden, folgen Sie dem Dienstkonto , dann können Sie das von mir erstellte Menü sehen. Das Hauptmenü besteht im Allgemeinen aus bis zu drei Spalten. Jedes Hauptmenü kann auch Untermenüs haben, deren Text begrenzt ist.

Werfen wir einen Blick auf das WeChat-Portalmenü meines Unternehmens, sieht es nicht cool aus?

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendungen (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle

Weitere C#-Entwicklung von WeChat-Portalen und -Anwendungen (1) – Für verwandte Artikel zum Einstieg in die WeChat-Schnittstelle achten Sie bitte auf PHP Chinesische 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