• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信公众平台开发之认证"成为开发者".Net代码解析 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

.Net 实现微信公共服务平台开发的认证,认证成为开发者,具体内容如下

这些代码也就开始认证的时候用一次,以后就不用了:

const string Token = "XXXXX";//你的token 
protected void Page_Load(object sender, EventArgs e) 
{ 
  string postStr = ""; 
  if (Request.HttpMethod.ToLower() == "post") 
  { 
    System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream; 
    byte[] b = new byte[s.Length]; 
    s.Read(b, 0, (int)s.Length); 
    postStr = System.Text.Encoding.UTF8.GetString(b); 
    if (!string.IsNullOrEmpty(postStr)) 
    { 
      //ResponseMsg(postStr); 
      Response.Write(ResponseMsg(postStr)); 
      Response.End(); 
    } 
   //WriteLog("postStr:" + postStr); 
  } 
  else 
  { 
    Valid(); 
  } 
}    
 
/// <summary> 
/// 验证微信签名 
/// </summary> 
/// * 将token、timestamp、nonce三个参数进行字典序排序 
/// * 将三个参数字符串拼接成一个字符串进行sha1加密 
/// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 
/// <returns></returns> 
private bool CheckSignature() 
{ 
  string signature = Request.QueryString["signature"].ToString(); 
  string timestamp = Request.QueryString["timestamp"].ToString(); 
  string nonce = Request.QueryString["nonce"].ToString(); 
  string[] ArrTmp = { Token, timestamp, nonce }; 
  Array.Sort(ArrTmp);   //字典排序 
  string tmpStr = string.Join("", ArrTmp); 
  tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); 
  tmpStr = tmpStr.ToLower(); 
  if (tmpStr == signature) 
  { 
    return true; 
  } 
  else 
  { 
    return false; 
  } 
} 
.private void Valid() 
{ 
  string echoStr = Request.QueryString["echoStr"].ToString(); 
  if (CheckSignature()) 
  { 
    if (!string.IsNullOrEmpty(echoStr)) 
    { 
      Response.Write(echoStr); 
      Response.End(); 
    } 
  } 
}    
 
/// <summary> 
/// 写日志(用于跟踪) 
/// </summary> 
private void WriteLog(string strMemo) 
{ 
  string filename = Server.MapPath("/logs/log.txt"); 
  if (!Directory.Exists(Server.MapPath("//logs//"))) 
    Directory.CreateDirectory("//logs//"); 
  StreamWriter sr = null; 
  try 
  { 
    if (!File.Exists(filename)) 
    { 
      sr = File.CreateText(filename); 
    } 
    else 
    { 
      sr = File.AppendText(filename); 
    } 
    sr.WriteLine(strMemo); 
  } 
  catch 
  { 
 
  } 
  finally 
  { 
    if (sr != null) 
      sr.Close(); 
  } 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ABP框架中的日志功能完全解析发布时间:2022-02-05
下一篇:
解读ASP.NET 5 & MVC6系列教程(6):Middleware详解发布时间:2022-02-05
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap