一、實現URL接入
相關參數描述
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;namespace WeiXinWebapplication{ public class CheckSignature { /// <summary> /// 網站沒有提供Token情況下的默認Token /// </summary> public const string Token = "weixin"; /// <summary> /// 檢查簽名是否正確 /// </summary> /// <param name="signature">微信加密簽名</param> /// <param name="timestamp">時間戳</param> /// <param name="nonce">隨機數</param> /// <param name="token"></param> /// <returns></returns> public static bool Check(string signature, string timestamp, string nonce, string token) { return signature == GetSignature(timestamp, nonce, token); } /// <summary> /// 返回正確的簽名 /// </summary> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static string GetSignature(string timestamp, string nonce, string token = Token) { token = token ?? Token; string[] arr = new[] {token,timestamp,nonce }.OrderBy(z=>z).ToArray(); string arrString = string.Join("",arr); System.Security.Cryptography.SHA1 shal = System.Security.Cryptography.SHA1.Create(); byte[] shalArr = shal.ComputeHash(Encoding.UTF8.GetBytes(arrString)); StringBuilder enText = new StringBuilder(); foreach (var b in shalArr) { enText.AppendFormat("{0:x2}",b); } return enText.ToString(); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace WeiXinWebApplication{ public partial class Index : System.Web.UI.Page { /// <summary> /// 與微信公眾賬號后臺的Token設置保持一致,區分大小寫 /// </summary> PRivate readonly string Token = "weixin"; protected void Page_Load(object sender, EventArgs e) { Auth(); } /// <summary> /// 處理微信服務器驗證消息 /// </summary> private void Auth() { string signature = Request["signature"]; string timestamp = Request["timestamp"]; string nonce = Request["nonce"]; string echostr = Request["echostr"]; if (Request.HttpMethod == "GET") { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { WriteContent(echostr); } else { WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "." + "如果你在瀏覽器中看到這句話,說明此地址可以被作為微信公眾號后臺的URL,請注意保持Token一致。"); } Response.End(); } } private void WriteContent(string str) { Response.Output.Write(str); } }}
二、接入微信公眾平臺
這樣我們就成功實現了URL接入微信公眾平臺的工作。
新聞熱點
疑難解答