使用.net 操作 微信公眾平臺 —— 接入
阿新 • • 發佈:2018-12-16
接入
- 登入微信公眾平臺(https://mp.weixin.qq.com)
- 開發 => 基本配置 => 伺服器配置
- EncodingAESKey 點 隨機生成 即可
- 在專案中新建CheckWxToken.aspx
- 把檔案釋出到伺服器,再回到微信公眾平臺點選“提交”
-
using System; using System.Web.Security; namespace DianQun.Users { public partial class CheckWxToken : System.Web.UI.Page { const string Token = "WeixinToken";//你的token #region 以下程式碼只用於第一次驗證 驗證完後請註釋 protected void Page_Load(object sender, EventArgs e) { string postStr = ""; if (Request.HttpMethod.ToLower() == "post") { System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream; byte[] b = new byte[s.Length]; s.Read(b, 0, (int)s.Length); postStr = System.Text.Encoding.UTF8.GetString(b); if (!string.IsNullOrEmpty(postStr)) { Response.End(); } } else { Valid(); } } #endregion #region 驗證微信簽名 保持預設即可 /// <summary> /// 驗證微信簽名 /// </summary> /// * 將token、timestamp、nonce三個引數進行字典序排序 /// * 將三個引數字串拼接成一個字串進行sha1加密 /// * 開發者獲得加密後的字串可與signature對比,標識該請求來源於微信。 /// <returns></returns> private bool CheckSignature() { string signature = Request.QueryString["signature"].ToString(); string timestamp = Request.QueryString["timestamp"].ToString(); string nonce = Request.QueryString["nonce"].ToString(); 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; } } private void Valid() { string echoStr = Request.QueryString["echoStr"].ToString(); if (CheckSignature()) { if (!string.IsNullOrEmpty(echoStr)) { Response.Write(echoStr); Response.End(); } } } #endregion } }
- 把檔案釋出到伺服器,再回到微信公眾平臺點選“提交”