Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung der WeChat-Schnittstelle in der C#-Entwicklung von WeChat-Portalen und -Anwendungen (1) (Bild)

Verwendung der WeChat-Schnittstelle in der C#-Entwicklung von WeChat-Portalen und -Anwendungen (1) (Bild)

黄舟
黄舟Original
2017-06-18 10:25:511296Durchsuche

Dieser Artikel stellt hauptsächlich den ersten Artikel zur C#-Entwicklung des WeChat-Portals und der Anwendung im Detail vor und zeigt, wie die WeChat-Schnittstelle verwendet wird. Interessierte Freunde können sich auf

WeChat-Anwendungen beziehen Auf Hochtouren, und viele Unternehmen hoffen, in den Informationsexpress einzusteigen. Dies ist eine Geschäftsmöglichkeit und eine technische Richtung. Daher ist die Recherche und das Lernen über WeChat-bezogene Entwicklungen zu einem der wichtigsten Dinge in den täglichen Plänen geworden. Ziel dieser Artikelserie ist es, den relevanten Entwicklungsprozess und die relevante 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 eine Plattform-API zu entwickeln, die WeChat verwendet, müssen Sie sich auf der öffentlichen Plattform von WeChat registrieren und über ein Dienstkonto oder Abonnementdienstkonto verfügen Hauptsächlich für Unternehmen und Organisationen sind Abonnementkonten hauptsächlich für Organisationen und Einzelpersonen gedacht. Es gibt bestimmte Unterschiede zwischen ihnen. Sie können das entsprechende Konto je nach Bedarf beantragen.

Um einige erweiterte Schnittstellen nutzen zu können, benötigen Sie möglicherweise ein Dienstkonto und eine erweiterte Authentifizierung. Für die Kontoregistrierung muss ein Antragsformular heruntergeladen, ausgedruckt und mit dem offiziellen Siegel versehen werden. Außerdem muss der Antragsteller ein Foto mit dem Personalausweis machen (etwas seltsam). , haha), und laden Sie es dann zur Überprüfung auf den Server hoch. Normalerweise können Sie schnell eine Genehmigung erhalten.

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.

2. WeChat-Menüdefinition

WeChat bietet zwei Möglichkeiten der Menüdefinition, eine davon ist der

Bearbeitungsmodus , einer ist der Entwicklungsmodus, und die beiden schließen sich gegenseitig aus. Das heißt, sobald wir den Entwicklungsmodus übernehmen, 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

Asp verwenden. NETDas allgemeine Verarbeitungsprogramm ist ausreichend und es besteht keine Notwendigkeit, normale Seiten zu verwenden.

Verwenden Sie das Entwicklungsmodusmenü, das heißt, Sie können 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.

3. Linkverarbeitung für den Zugriff auf WeChat

Wie oben erwähnt, beantragen Sie den Entwicklungsmodus für Menüs oder andere APIs zum Aufrufen , müssen Sie den Test für den Zugriff auf WeChat erfolgreich bestehen. Dies bedeutet, dass Sie bestätigen müssen, 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();
  }
  }
 }

而对微信参数的签名并返回的操作CheckSignature,代码如下所示


 /// <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、使用开发方式创建菜单

一旦你顺利通过微信的认证,那么它就让你以开发方式调用它的API,并且可以随意创建你的菜单了。

创建菜单的方式,你可以通过下面的位置进入到他的API处理界面里面。

进入后,你会发现微信把很多消息的处理,分门别类放到不同的分类里面了。

其实我们现在初步要做的就是如何看看,使用代码方式调用创建菜单,进入菜单的API调试界面里面。

你会发现里面还需要输入一个Access_Token的东西,这个是一个会话身份认证,因此你还需要到接口里面去找这个如何创建的。下面图中的两个红色部分,就是我们开始的时候,微信提示我们“开发者凭据”的两个关键参数。

弄完这些,你就可以根据获得的Access_Token进行菜单的创建工作了,根据菜单的定义,它分为几类,可以分为URL方式(View),事件方式(Click)。

click:用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event 的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;
view:用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值(即网页链接),达到打开网页的目的,建议与网页授权获取用户基本信息接口结合,获得用户的登入个人信息。

5、我创建的菜单案例

在随笔的开始,我公布了一个二维码,一旦使用微信扫一扫,进行关注服务号后,那么就可以看到我自己创建的菜单了。主菜单一般最多三列,每个主菜单还可以有子菜单,他们的文字都有所限制的。

我们来看看我公司的微信门户菜单,看起来是不是很酷呢。

Das obige ist der detaillierte Inhalt vonVerwendung der WeChat-Schnittstelle in der C#-Entwicklung von WeChat-Portalen und -Anwendungen (1) (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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