标签:
要接入微信,我们要建立个人网站去接收微信数据,并返回相应格式的数据,我们需要建立一个能够让外网访问的网站,并按照官方文档要求建立一个一般处理程序用来接收微信发送的数据(signature,timestamp,nonce,echostr),在服务器上验证之后,返回微信要求的数据(echostr),一般处理程序代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public void ProcessRequest(HttpContext context) { string signature = context.Request.QueryString[ "signature" ]; string timestamp = context.Request.QueryString[ "timestamp" ]; string nonce = context.Request.QueryString[ "nonce" ]; string echostr = context.Request.QueryString[ "echostr" ]; //验证请求信息是否来自微信,如果是,则原样返回echostr if (checkSignature(signature, timestamp, nonce, token)) { context.Response.Write(echostr); } } |
验证信息是否微信平台发送方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/// <summary> /// 验证请求信息的有效性 /// </summary> /// <param name="signature"></param> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <returns></returns> private bool checkSignature( string signature, string timestamp, string nonce, string token) { //1.自定义验证方式 string [] strArr = { token, timestamp, nonce }; Array.Sort(strArr); string tempstr = string .Join( "" , strArr); string result = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tempstr, "SHA1" ); if (result.ToLower() == signature.ToLower()) { return true ; } return false ; } |
填入服务器一般处理程序URL,并填写Token即可完成验证
PS:Token是你自己定义的,用于生成密码,该Token会和接口URL中包含的Token进行比对,从而验证安全性
标签:
原文地址:http://www.cnblogs.com/notniu/p/4430982.html