1.首先服务器地址及Token验证:
Token验证请求地址wx.ashx代码:
using System;
using System.Web; public class wx : IHttpHandler { public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/plain";
//
if (context.Request.HttpMethod.ToLower().Equals("get"))
{
ValidateUrl();
}
else {
context.Response.Write("wgx:post");
}
}
#region 服务器地址校验
/// <summary>
/// 服务器地址校验
/// </summary>
public void ValidateUrl()
{
/* signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串
*/
//接收请求过来的参数
HttpContext context = HttpContext.Current;
string signature = context.Request["signature"];
string timestamp = context.Request["timestamp"];
string nonce = context.Request["nonce"]; string echostr = context.Request["echostr"]; string token = "weixinduang";
string[] temp1 = { token, timestamp, nonce };
//1.字典序排序
Array.Sort(temp1);
//2.将3个参数字符串拼接成一个字符串后进行sha1加密
string str = string.Join("", temp1);
string strResult = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1");
//3.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
if (strResult.ToLower().Equals(signature))
{
context.Response.Write(echostr);
}
}
#endregion public bool IsReusable {
get {
return false;
}
}
}
如果验证通过会提示成功,否则失败。