一、微信公众平台的接入微信公众平台的接入
时间:2015-04-07 00:39:39
收藏:0
阅读:397
一、微信公众平台的接入微信公众平台的接入
1.官方文档
2.设置公司或者个人服务器网站:
要接入微信,我们要建立个人网站去接收微信数据,并返回相应格式的数据,我们需要建立一个能够让外网访问的网站,并按照官方文档要求建立一个一般处理程序用来接收微信发送的数据(signature,timestamp,nonce,echostr),在服务器上验证之后,返回微信要求的数据(echostr),一般处理程序代码如下:
1 public void ProcessRequest(HttpContext context)
2 {
3 string signature = context.Request.QueryString["signature"];
4 string timestamp = context.Request.QueryString["timestamp"];
5 string nonce = context.Request.QueryString["nonce"];
6 string echostr = context.Request.QueryString["echostr"];
7 //验证请求信息是否来自微信,如果是,则原样返回echostr
8 if (checkSignature(signature, timestamp, nonce, token))
9 {
10 context.Response.Write(echostr);
11 }
2 {
3 string signature = context.Request.QueryString["signature"];
4 string timestamp = context.Request.QueryString["timestamp"];
5 string nonce = context.Request.QueryString["nonce"];
6 string echostr = context.Request.QueryString["echostr"];
7 //验证请求信息是否来自微信,如果是,则原样返回echostr
8 if (checkSignature(signature, timestamp, nonce, token))
9 {
10 context.Response.Write(echostr);
11 }
12 }
验证信息是否微信平台发送方法如下:
1 /// <summary>
2 /// 验证请求信息的有效性 3 /// </summary> 4 /// <param name="signature"></param> 5 /// <param name="timestamp"></param> 6 /// <param name="nonce"></param> 7 /// <returns></returns> 8 private bool checkSignature(string signature, string timestamp, string nonce, string token) 9 { 10 //1.自定义验证方式 11 string[] strArr = { token, timestamp, nonce }; 12 Array.Sort(strArr); 13 string tempstr = string.Join("", strArr); 14 string result = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tempstr, "SHA1"); 15 if (result.ToLower() == signature.ToLower()) 16 { 17 return true; 18 } 19 return false; 20 21 //2.成熟验证方式 22 23 //ArrayList tmpArray = new ArrayList(); 24 //tmpArray.Add(token); 25 //tmpArray.Add(timestamp); 26 //tmpArray.Add(nonce); 27 //tmpArray.Sort(); 28 //string tmpStr = (string)tmpArray[0] + (string)tmpArray[1] + (string)tmpArray[2]; 29 30 ////建立SHA1对象 31 //SHA1 sha = new SHA1CryptoServiceProvider(); 32 33 ////将mystr转换成byte[] 34 //ASCIIEncoding enc = new ASCIIEncoding(); 35 //byte[] dataToHash = enc.GetBytes(tmpStr); 36 37 ////Hash运算 38 //byte[] dataHashed = sha.ComputeHash(dataToHash); 39 40 ////将运算结果转换成string 41 //string hash = BitConverter.ToString(dataHashed).Replace("-", ""); 42 ////log("hash:" + hash); //记录日志,不需要可以注释掉 43 44 //if (hash.ToLower() == signature.ToLower()) 45 // return true; 46 //else 47 // return false; 48 } |
3.设置接口配置信息
填入服务器一般处理程序URL,并填写Token即可完成验证
PS:Token是你自己定义的,用于生成密码,该Token会和接口URL中包含的Token进行比对,从而验证安全性
评论(0)