微信公众平台开发者模式 C# 实现简单接口,验证URL的有效性。
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 加密后的字符串可与signature对比,标识该请求来源于微信
4.最后要返回echoStr
private bool checkSignature() /*** 检验signature ***/
{
string signature = Request["signature"];
string timestamp = Request["timestamp"];
string nonce = Request["nonce"];
string[] tmpArr = { token, timestamp, nonce };
Array.Sort(tmpArr); //字典排序
string tmpStr = string.Join("", tmpArr); //串联成字符串
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); //进行sha1加密
tmpStr = tmpStr.ToLower(); //换为小写
if (tmpStr == signature)
return true;
else
return false;
}
private void valid() /*** 原样返回echostr参数内容 ***/
{
string echoStr = Request["echostr"]; //腾讯发来的随机字串。
Response.Write(echoStr); //把这个原样返回给腾讯服务器
Response.End();
}
未解决问题:
1.sha1加密后为什么字符串还要用Tolwer()变成小写才能通过验证?不变就验证不了
asp.net微信公众平台信息的收发模式
分为微信客户端、微信服务器以及网站服务器
1.微信客户端发送信息给微信服务器
2.微信服务器把接收的信息以XML的形式发送给网站服务器
3.网站实现对信息的处理
4.网站以XML的形式把处理结果返还给微信服务器
5.微信服务器把信息反馈给微信客户端
接下来要准备去看一点PHP方面的知识,因为网上的教程大部分是PHP,要先了解一下PHP代码的一些格式才能看懂,之后再自己编写C#
原文地址:http://www.cnblogs.com/jishaoyi/p/3863708.html