1、新建ASP.NET MVC项目
2、新建控制器 WXAPIController
3、编写代码
private string access_token = "feilongnet.com";
[HttpGet]
public ActionResult Index()
{
string echostr = Request.QueryString["echostr"];
if (CheckSignature())
{
if (!string.IsNullOrEmpty(echostr))
{
return Content(echostr);
}
else
{
return Content("echostr 不合法");
}
}
else
{
return Content("echostr 不合法");
}
}
/// <summary>
/// 微信签名验证
/// </summary>
/// <returns>返回验证结果</returns>
private bool CheckSignature()
{
string signature = Request.QueryString["signature"]; //post 用.Form
string timestamp = Request.QueryString["timestamp"];
string nonce = Request.QueryString["nonce"];
string[] arrTmp = { access_token, timestamp, nonce };
Array.Sort(arrTmp); //字典序排序
//将三个参数字符串拼接成一个字符串进行sha1加密
string strTmp = string.Join("", arrTmp);
strTmp = GetHash1(strTmp);
//将获得的字符串与signature对比,标识该请求来源于微信
if (strTmp.ToLower() == signature)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 将字符串进行SHA1加密
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <returns></returns>
private string GetHash1(string str)
{
SHA1 sha1 = SHA1.Create();
byte[] data = sha1.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sb.Append(data[i].ToString("x2").ToLower());
}
return sb.ToString();
}
5、微信平台设置--接口配置信息
接口配置信息