


Entwicklung eines ?ffentlichen C#-WeChat-Kontos – Webseitenautorisierung (oauth2.0) zum Abrufen grundlegender Benutzerinformationen 1
Jan 16, 2017 am 11:02 AMVorwort
Die Autorisierung von WeChat-Webseiten ist in zwei Methoden unterteilt: snsapi_base und snsapi_userinfo. snsapi_base muss dem ?ffentlichen Konto folgen und die Benutzerautorisierungsschnittstelle wird beim Abrufen von Benutzerinformationen nicht angezeigt. snsapi_userinfo wird verwendet, wenn der Benutzer die Seite durchsucht, ohne dem offiziellen Konto zu folgen. Zuerst wird eine Benutzerautorisierungsschnittstelle angezeigt, und die Benutzerinformationen k?nnen erst abgerufen werden, nachdem der Benutzer sie autorisiert hat. In diesem Artikel werfen wir zun?chst einen Blick auf die Implementierung von snsapi_base.
Achtung, wenn Sie in die Falle tappen
Als ich zum ersten Mal mit dem Debuggen im snsapi_base-Modus begann und auf die Seitenadresse klickte, wurde eine Aufforderung angezeigt dass der Adresslink nicht verfügbar war, müssen zun?chst die grundlegenden Informationen für die Webseitenautorisierung im offiziellen Konto festgelegt werden.
Klare Unterscheidung zwischen globalem Zugriffstoken und Webseitenautorisierungs-Zugriffstoken
Beachten Sie hier, dass Sie nur den Domainnamen eingeben
, um den Effekt zu sehen
Hier sehen wir, dass wir die grundlegenden Informationen des Benutzers über oauth snsapi_base erhalten haben reicht für die allgemeine Beratungsentwicklung aus.
Siehe die Idee
1 Holen Sie sich zuerst den Code, indem Sie die Adresse zurücksenden.
2. OpenID über Code abrufen.
3. Holen Sie sich das globale access_token über appid und appsecret (dies unterscheidet sich von snsapi_userinfo).
4. Erhalten Sie Benutzerinformationen über globales access_token und openid.
Sehen Sie sich den Code an
Hier geht es ganz einfach. Die Hauptsache ist, die WeChat-Schnittstelle mithilfe der Get-Methode anzupassen. Bereiten Sie gleichzeitig Ihren Get- und Post-Vorgang vor Anforderungsmethoden und Verwendung von JSON für die Rückgabeparameter. In Entit?tsklasse konvertieren.
public ActionResult OAuthSnsApiBase() { string code = Request.QueryString["code"]; try { if (!string.IsNullOrEmpty(code)) { OAuthToken oauthToken = HttpUtility.Get<OAuthToken> (string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appID, appsecret, code)); string accesstoken = string.Empty; AccessToken token = HttpUtility.Get<AccessToken>(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appID,appsecret)); if (token != null && !string.IsNullOrEmpty(token.access_token)) { accesstoken = token.access_token; } if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid)) { OAuthUserInfo userInfo = HttpUtility.Get<OAuthUserInfo>(string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", accesstoken, oauthToken.openid)); if (userInfo != null) { ViewData["headImage"] = userInfo.headimgurl; ViewData["openid"] = userInfo.openid; ViewData["nickName"] = userInfo.nickname; if (userInfo.sex == 0) { ViewData["sex"] = "未知"; } else if (userInfo.sex == 1) { ViewData["sex"] = "男"; } else { ViewData["sex"] = "女"; } ViewData["province"] = userInfo.province; ViewData["city"] = userInfo.city; } else { } } else { } } else { return Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=123456 #wechat_redirect", appID,"http://"+Request.Url.Host + Url.Action("OAuthSnsApiBase"))); } } catch (Exception ex) { ViewData["errmsg"] = ex.Message; } return View(); }
public class OAuthToken { public string access_token { get; set; } public int expires_in { get; set; } public string refresh_token { get; set; } public string openid { get; set; } public string scope { get; set; } } public class AccessToken { public string access_token { get; set; } public int expires_in { get; set; } }public class OAuthUserInfo { public string openid { get; set; } public string nickname { get; set; } public int sex { get; set; } public string province { get; set; } public string city { get; set; } public string country { get; set; } public string headimgurl { get; set; } public string privilege { get; set; } public string unionid { get; set; } }
Zusammenfassung
Die Schnittstelle zum Abrufen von Benutzerinformationen ist hier https://api.weixin.qq.com/cgi-bin/user/info? access_token =ACCESS_TOKEN&openid=OPENID&lang=zh_CN. Es unterscheidet sich von der Webseitenautorisierung 2 zum Abrufen der Benutzeroberfl?che.
Alle Codes werden auf Github hochgeladen: https://github.com /garfieldzf8/WeChat
Referenz
http://www.cnblogs.com/txw1958/p/weixin76-user-info.html
Das Obige ist der Inhalt der Entwicklung ?ffentlicher C#-WeChat-Webseiten (oauth2.0), um grundlegende Benutzerinformationen zu erhalten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.miracleart.cn).

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)

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, w?hrend asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, w?hrend asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, w?hrend der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abh?ngt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsf?higkeit asynchron verwenden müssen.

Die Geschichte und Entwicklung von C# und C sind einzigartig, und auch die Zukunftsaussichten sind unterschiedlich. 1.C wurde 1983 von Bjarnestrustrup erfunden, um eine objektorientierte Programmierung in die C-Sprache einzuführen. Sein Evolutionsprozess umfasst mehrere Standardisierungen, z. B. C 11 Einführung von Auto-Keywords und Lambda-Ausdrücken, C 20 Einführung von Konzepten und Coroutinen und sich in Zukunft auf Leistung und Programme auf Systemebene konzentrieren. 2.C# wurde von Microsoft im Jahr 2000 ver?ffentlicht. Durch die Kombination der Vorteile von C und Java konzentriert sich seine Entwicklung auf Einfachheit und Produktivit?t. Zum Beispiel führte C#2.0 Generics und C#5.0 ein, die eine asynchrone Programmierung eingeführt haben, die sich in Zukunft auf die Produktivit?t und das Cloud -Computing der Entwickler konzentrieren.

Zu den Methoden zum Umwandeln von XML in JSON geh?ren: Schreiben von Skripten oder Programmen in Programmiersprachen (wie Python, Java, C#) zum Konvertieren; Einfügen oder Hochladen von XML -Daten mithilfe von Online -Tools (z. B. XML in JSON, Gojko XML Converter, XML Online -Tools) und Auswahl der JSON -Formatausgabe; Durchführung von Konvertierungsaufgaben mit XML mit JSON -Konvertern (wie Oxygen XML -Editor, Stylus Studio, Altova XMLSPY); Konvertieren von XML in JSON mithilfe von XSLT -Stylesheets; Verwenden von Datenintegrationstools (z. B. informatisch

C# Multi-Thread-Programmierung ist eine Technologie, mit der Programme gleichzeitig mehrere Aufgaben ausführen k?nnen. Es kann die Programmeffizienz verbessern, indem es die Leistung verbessert, die Reaktionsf?higkeit verbessert und die parallele Verarbeitung implementiert. W?hrend die Thread -Klasse eine M?glichkeit bietet, Threads direkt zu erstellen, k?nnen erweiterte Tools wie Task und Async/Warted sicherer asynchroner Operationen und eine sauberere Codestruktur liefern. H?ufige Herausforderungen bei der Multithread -Programmierung umfassen Deadlocks, Rassenbedingungen und Ressourcenleckage, die eine sorgf?ltige Gestaltung von Fadenmodellen und die Verwendung geeigneter Synchronisationsmechanismen erfordern, um diese Probleme zu vermeiden.

Wie erstelle ich Anwendungen mit .NET? Erstellen Anwendungen mit .NET k?nnen in den folgenden Schritten erreicht werden: 1) Verstehen Sie die Grundlagen von .NET, einschlie?lich C# Sprache und plattformübergreifender Entwicklungsunterstützung; 2) Kernkonzepte wie Komponenten und Arbeitsprinzipien des .NET -?kosystems lernen; 3) Master Basic und Advanced Nutzung, von einfachen Konsolenanwendungen bis hin zu komplexen Webapis- und Datenbankvorg?ngen; 4) Mit gemeinsamen Fehlern und Debugging -Techniken wie Konfigurations- und Datenbankverbindungsproblemen vertraut sein; 5) Optimierung der Anwendungsleistung und Best Practices wie asynchrone Programmieren und Zwischenspeichern.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

Der Vorteil des Multithreading besteht darin, dass es die Leistung und die Ressourcenauslastung verbessern kann, insbesondere für die Verarbeitung gro?er Datenmengen oder die Durchführung zeitaufw?ndiger Vorg?nge. Es erm?glicht es, mehrere Aufgaben gleichzeitig auszuführen, wodurch die Effizienz verbessert wird. Zu viele Threads k?nnen jedoch zu einer Leistungsverschlechterung führen. Sie müssen daher sorgf?ltig die Anzahl der Threads basierend auf der Anzahl der CPU -Kerne und Aufgabenmerkmale ausw?hlen. Darüber hinaus beinhaltet die Multi-Thread-Programmierung Herausforderungen wie Deadlock- und Rassenbedingungen, die unter Verwendung von Synchronisationsmechanismen gel?st werden müssen, und erfordern solide Kenntnisse über die gleichzeitige Programmierung, das Abw?gen der Vor- und Nachteile und die Verwendung mit Vorsicht.

.NetFramework ist ein Software -Framework, und C# ist eine Programmiersprache. 1..NetFramework bietet Bibliotheken und Dienste, die Desktop-, Web- und mobile Anwendungsentwicklung unterstützen. 2.C# ist für .Netframework entwickelt und unterstützt moderne Programmierfunktionen. 3..NETFRAMEWORK verwaltet die Codeausführung über CLR, und der C# Code wird in IL zusammengestellt und wird von CLR ausgeführt. V. 5. Zu den h?ufigen Fehlern z?hlen Typenkonvertierung und asynchrone Programmieradrocken. Visualstudio -Tools sind zum Debuggen erforderlich.
