1. 程式人生 > >使用.net 操作 微信公眾平臺 —— 接入

使用.net 操作 微信公眾平臺 —— 接入

接入

  1. 登入微信公眾平臺(https://mp.weixin.qq.com)
  2. 開發 => 基本配置 => 伺服器配置
  3. EncodingAESKey 點 隨機生成 即可
  4. 在專案中新建CheckWxToken.aspx
  5. 把檔案釋出到伺服器,再回到微信公眾平臺點選“提交”
  6. 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
        }
    }
  7. 把檔案釋出到伺服器,再回到微信公眾平臺點選“提交”