1 HomeController :Controller
2 {
3 /// <summary>
4 /// 定义Token,与微信公共平台上的Token保持一致
5 </summary>
6 private const string Token = "StupidMe";
7
8 9 验证签名,检验是否是从微信服务器上发出的请求
10 11 <param name="model">请求参数模型 Model</param>
12 <returns>是否验证通过</returns>
13 bool CheckSignature(Model.FormatModel.WeChatRequestModel model)
14 {
15 string signature,timestamp,nonce,tempStr;
16 //获取请求来的参数
17 signature = model.signature;
18 timestamp = model.timestamp;
19 nonce = model.nonce;
20 创建数组,将 Token,nonce 三个参数加入数组
21 string[] array = { Token,nonce };
22 进行排序
23 Array.Sort(array);
24 拼接为一个字符串
25 tempStr = String.Join("",array);
26 对字符串进行 SHA1加密
27 tempStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tempStr,SHA1).ToLower();
28 判断signature 是否正确
29 if (tempStr.Equals(signature))
30 {
31 return true32 }
33 else
34 {
35 false36 37 }
38
39
40 void Valid(Model.FormatModel.WeChatRequestModel model)
41 42 获取请求来的 echostr 参数
43 string echoStr = model.echostr;
44 通过验证
45 (CheckSignature(model))
46 47 if (!.IsNullOrEmpty(echoStr))
48 {
49 将随机生成的 echostr 参数 原样输出
50 Response.Write(echoStr);
51 截止输出流
52 Response.End();
53 }
54 55 56 }