如何用Azure Web App Services接入微信公众号

阅读: 评论:0

如何用Azure Web App Services接入微信公众号

如何用Azure Web App Services接入微信公众号

注:本文提到的代码示例下载地址>如何用Azure Web App Services接入微信公众号

如何用Azure Web App Services接入微信公众号

简介

此示例演示如何创建Azure Web App Services、开发、部暑、接入微信公众号。

先决条件

Microsoft Visual Studio 2015

运行示例

• 登录,创建Microsoft Azure应用程序服务


 

  

 

 

  

• 设置FTP部署凭据


 


• 设置fig中TOKEN的value,Token可由开发者可以任意填写,用作生成微信公众号签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性。



• 通过FTP把程序发布部暑到Azure应用程序服务


 

 


• 登录微信公众平台,创建公众平台测试账号 



• 填写服务器配置,验证服务器地址的有效性,URL是开发者用来接收微信消息和事件的接口URL。TOKEN值需跟fi设置的值一致


 

• 关注测试公众号,发送信息到公众号,测试程序是否自动回复内容


 

代码

 

 public static void Valid(){string signature = HttpContext.Current.Request["signature"];string timestamp = HttpContext.Current.Request["timestamp"];string nonce = HttpContext.Current.Request["nonce"];string echostr = HttpContext.Current.Request["echostr"];if (HttpContext.Current.Request.HttpMethod == "GET"){if (CheckSignature(signature, timestamp, nonce)){HttpContext.Current.Response.Output.Write(echostr);}else{HttpContext.Current.Response.Output.Write("Failed valid");}HttpContext.Current.Response.End();}}public static void ResponseMsg(){if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST"){try{string postString = string.Empty;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);}Hashtable postObj = ParseXml(postString);string fromUsername = postObj["FromUserName"].ToString();string toUsername = postObj["ToUserName"].ToString();string keyword = postObj["Content"].ToString();if (!String.IsNullOrEmpty(keyword)){String responseContent = string.Format(Message_Text, fromUsername, toUsername, DateTime.Now.Ticks,"Welcome to OneCode OneScript!"+ "rn<a href="">Click me</a>");HttpContext.Current.Response.Write(responseContent);}else{HttpContext.Current.Response.Write("");}}catch (Exception ex){Console.Error.WriteLine(ex.StackTrace);}}}private static bool CheckSignature(String signature, String timestamp, String nonce){String[] arr = new String[] { ConfigurationManager.AppSettings["TOKEN"].ToString(), timestamp, nonce };Array.Sort<String>(arr);StringBuilder content = new StringBuilder();for (int i = 0; i < arr.Length; i++){content.Append(arr[i]);}String tmpStr = SHA1_Encrypt(content.ToString());return tmpStr != null ? tmpStr.Equals(signature) : false;}private static string SHA1_Encrypt(string Source_String){byte[] StrRes = Encoding.Default.GetBytes(Source_String);HashAlgorithm iSHA = new SHA1CryptoServiceProvider();StrRes = iSHA.ComputeHash(StrRes);StringBuilder EnText = new StringBuilder();foreach (byte iByte in StrRes){EnText.AppendFormat("{0:x2}", iByte);}return EnText.ToString();}private static Hashtable ParseXml(String xml){XmlDocument xmlDocument = new XmlDocument();xmlDocument.LoadXml(xml);XmlNode bodyNode = xmlDocument.ChildNodes[0];Hashtable ht = new Hashtable();if (bodyNode.ChildNodes.Count > 0){foreach (XmlNode xn in bodyNode.ChildNodes){ht.Add(xn.Name, xn.InnerText);}}return ht;}private static string Message_Text{get { return @"<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{3}]]></Content></xml>"; }}

 

 

更多信息

• 微信公众平台开发者文档

• What is Azure App Service?

 

本文发布于:2024-01-31 13:41:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667970628932.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:如何用   公众   Azure   Web   App
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23