php专区

 首页 > php专区 > PHP应用 > 开放平台 > 微信公共服务平台开发(.Net 的实现)1-------认证

微信公共服务平台开发(.Net 的实现)1-------认证

分享到:
【字体:
导读:
          这些代码也就开始认证的时候用一次,以后就不用了:[csharp] view plaincopyconst string Token = XXXXX; 你的token protected void Page_Load(object sender, EventArgs e) {...

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

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(); }
}
///  /// 验证微信签名
///  /// * 将token、timestamp、nonce三个参数进行字典序排序
/// * 将三个参数字符串拼接成一个字符串进行sha1加密 /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
///  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(); }
} }

///  /// 写日志(用于跟踪)
///  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(); }
}

 


分享到:
微信公共服务平台开发(.Net 的实现)11-...
这次我们来一起研究一下“客服消息”,首先明确一下“客服消息”的概念。这不同于之前的“被动响应消息”,也就是说并不是之前“你一言我一语的即时响应”,可能在某种情况下你需要给不同的人主动发送消息,例如你的餐馆推出了新的川菜,那么你需要给喜欢川菜的人发送消息,而并不是等着被人发送“有什么新菜”后,然后反馈...
大齐玩转微信公众账号系列(九):微信公...
JEEWeiXin JEEWeiXin 开源系统实现了微信公众账号开发者提供的接口,以及针对接口的基本功能的维护; 这样开发者就可以专注于业务的开发。 版本:v1.0 功能描述: 1、URL、Tocken 认证接口 2、消息接收接口 3、文本消息回复接口 4、单条、多条图文消息回复接口 5、订阅消息设置 6、文本消息维护 7、图文消息维护 ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……