微信測試號使用筆記:介面配置資訊驗證
阿新 • • 發佈:2020-10-26
一、前提條件,要有一臺伺服器
請填寫介面配置資訊,此資訊需要你有自己的伺服器資源,填寫的URL
需要正確響應微信傳送的Token
驗證,請閱讀訊息介面使用指南。
二、C#程式碼示例
但是上面連結中的程式碼是PHP
示例程式碼,因此我整理了一份C#
版的,親測能用。
using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; namespace WXtoken { public partial class index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //驗證token string poststring = string.Empty; string token = "aabbcc"; //驗證token,隨意填寫 if (string.IsNullOrEmpty(token)) { return; } string echostr = 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 (checkSignature(token, signature, timestamp, nonce, nonce)) { HttpContext.Current.Response.Write(echostr); HttpContext.Current.Response.End(); } } #region 微信介面對接驗證程式碼 public bool checkSignature(string token, string signature, string timestamp, string nonce, string echostr) { List<string> list = new List<string>(); list.Add(token); list.Add(timestamp); list.Add(nonce); list.Sort(); string res = string.Join("", list.ToArray()); Byte[] dataToHash = Encoding.ASCII.GetBytes(res); byte[] hashvalue = ((HashAlgorithm)CryptoConfig.CreateFromName("SHA1")).ComputeHash(dataToHash); StringBuilder sb = new StringBuilder(); foreach (byte b in hashvalue) { sb.Append(b.ToString("x2")); } if (signature == sb.ToString()) return true; else return false; } #endregion } }
三、配置失敗原因整理:
- 埠錯誤,必須是80或者443埠
- 引數錯誤,建議從官方文件複製引數到專案中(我就是有兩個字母寫反了,尷尬)
- 地址或者Token錯誤