Maison >développement back-end >Tutoriel C#.Net >Comment utiliser l'interface WeChat dans le développement C# de portails et d'applications WeChat (1) (photo)

Comment utiliser l'interface WeChat dans le développement C# de portails et d'applications WeChat (1) (photo)

黄舟
黄舟original
2017-06-18 10:25:511360parcourir

Cet article présente principalement en détail le premier article sur le développement C# du portail et de l'application WeChat, et comment utiliser l'interface WeChat. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à

Les applications WeChat sont disponibles. C'est une opportunité commerciale et une direction technique. Par conséquent, la recherche et l'apprentissage du développement lié à WeChat lorsque vous avez le temps sont devenus l'une des choses importantes dans les plans quotidiens. Cette série d'articles espère présenter de manière exhaustive le processus de développement pertinent et le résumé de l'expérience pertinente de WeChat dans une perspective étape par étape, dans l'espoir de donner à chacun une compréhension du processus de développement pertinent. Cet essai se concentre principalement sur la préparation préliminaire du processus de développement de WeChat et l'introduction de certains travaux initiaux.

Au cours de la semaine précédant la rédaction de cet article, j'ai principalement fait référence à quelques articles d'introduction et aux instructions d'interface associées de la plateforme publique WeChat, combinés au développement de code C#, pour trier l'interface du portail de mon entreprise et implémenter WeChat au fur et à mesure du travail progresse, de plus en plus de fonctions peuvent être ajoutées au travail préliminaire d'interaction utilisateur et d'affichage d'informations du compte professionnel, et j'espère étendre l'interface WeChat du point de vue de l'application, afin de réaliser mon exploration technique et ma compréhension de l'interface WeChat. .

1. Compte WeChat

Pour développer une API de plateforme qui utilise WeChat, vous devez vous inscrire sur la plateforme publique de WeChat et disposer d'un compte de service ou d'un compte de service d'abonnement. Principalement destinés aux entreprises et aux organisations, les comptes d'abonnement sont principalement destinés aux organisations et aux particuliers. Il existe certaines différences entre eux. Vous pouvez demander le compte correspondant en fonction de différents besoins.

Pour utiliser certaines interfaces avancées, vous devrez peut-être disposer d'un compte de service et d'une authentification avancée. Le processus de enregistrement du compte nécessite de télécharger un formulaire de demande, de l'imprimer et de le tamponner avec le sceau officiel. De plus, le demandeur doit également prendre une photo avec la carte d'identité (un peu bizarre). , haha), puis téléchargez-le sur le serveur pour examen, vous pouvez généralement obtenir l'approbation rapidement.

J'ai demandé un compte de service au nom de l'entreprise. Une fois le compte enregistré, vos informations pertinentes seront affichées sur l'interface principale. De plus, un code QR sera appliqué pour vous. Le code QR pour accéder au compte de l'entreprise suit la boîte de dialogue de confirmation, ce qui est très pratique. Voici le code QR de mon compte d'entreprise après ma candidature, qui peut être scanné directement.

2. Définition du menu WeChat

WeChat a deux façons de définir le menu, l'une est le Mode édition , l'un est le mode développement, et les deux s'excluent mutuellement, c'est-à-dire qu'une fois que nous adoptons le mode développement, nous ne pouvons pas utiliser le mode édition, et vice versa. Le menu en cours d'édition peut effectivement être géré, mais WeChat ne le prend pas en charge, ce qui me rend très mécontent.

Dans des circonstances normales, si nous venons de demander un numéro WeChat, nous pouvons utiliser le menu d'édition pour le tester et modifier certains menus selon les instructions. Bien que WeChat indique qu'il sera mis à jour dans les 24 heures, il est généralement mis à jour très rapidement, peut-être en une minute ou deux au plus rapidement, ce qui fait du bien.

Pour utiliser le mode développeur, vous devez placer un lien de page sur le serveur conformément aux exigences de WeChat. Si vous le développez en C#, vous pouvez utiliser la méthode de dénomination ***.ashx et utiliser Asp.NETLe programme de traitement général est suffisant et il n'est pas nécessaire d'utiliser des pages ordinaires.

En utilisant le menu du mode développement, c'est-à-dire que vous pouvez appeler l'API WeChat pour créer le menu. Pour appeler l'API WeChat (WeChat a de nombreuses API à appeler), nous devons connaître l'importance de plusieurs paramètres. Ainsi, lorsque le mode développement est activé, ces paramètres seront répertoriés pour vous, comme indiqué ci-dessous.

3. Traitement des liens pour accéder à WeChat

Comme mentionné ci-dessus, vous postulez au mode développement pour les menus ou autres API Pour appeler , vous devez réussir le test d'accès à WeChat, ce qui signifie confirmer que le lien que vous avez rempli existe et peut réussir le test de rappel de WeChat. WeChat fournit un exemple de traitement de page PHP. Si nous le développons en C#, nous pouvons effectuer une recherche et nous obtiendrons la réponse. Ma méthode de traitement est la suivante.

Créez un programme de traitement général, puis ajoutez une logique de traitement à sa page de traitement. S'il s'agit d'un contenu non POST, cela signifie que le test Get effectué par WeChat doit ajouter une logique de traitement et lui donner. vers votre Transférez simplement le contenu. S'il est en mode POST, c'est l'opération de demande du serveur WeChat pour le message d'interface, qui sera présentée plus tard.


 /// <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(); //微信接入的测试
  }
 }
De manière générale, dans la fonction Auth, les paramètres pertinents sont obtenus, puis traités et renvoyés au serveur WeChat.


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"];
Le code complet de la fonction Auteur est le suivant, dans lequel j'ai ensuite extrait la logique métier dans une nouvelle classe pour faciliter la gestion de la logique métier.


 /// <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、我创建的菜单案例

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn