首页 > 代码库 > 2014/07/23

2014/07/23

微信公众平台开发者模式 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()变成小写才能通过验证?不变就验证不了

2.原来可以验证,弄成发布版就验证不了了。

 

asp.net微信公众平台信息的收发模式

分为微信客户端、微信服务器以及网站服务器

1.微信客户端发送信息给微信服务器

2.微信服务器把接收的信息以XML的形式发送给网站服务器

3.网站实现对信息的处理

4.网站以XML的形式把处理结果返还给微信服务器

5.微信服务器把信息反馈给微信客户端

 

接下来要准备去看一点PHP方面的知识,因为网上的教程大部分是PHP,要先了解一下PHP代码的一些格式才能看懂,之后再自己编写C#