Detailed explanation of WeChat public platform development certification to become a developer.Net code analysis

高洛峰
Release: 2017-03-10 14:56:46
Original
1423 people have browsed it

This article mainly explains in detail the certification of WeChat public platform development to become a developer. Net code analysis. Interested friends can refer to

.Net to realize the certification of WeChat public service platform development. Certified to become a developer, the specific content is as follows

These codes will be used once when starting the certification, and will not be used in the future:

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(); 
  } 
}
Copy after login

The above is the entire content of this article. I hope it will be helpful to everyone's study. I also hope that everyone will support the PHP Chinese website.

The above is the detailed content of Detailed explanation of WeChat public platform development certification to become a developer.Net code analysis. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template