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

.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();
  }
} 

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索微信
, .net
认证
微信公众号开发者文档、微信公众平台开发者、微信公众号绑定开发者、公众号开发者教程、公众平台开发者文档,以便于您获取更多的相关知识。

时间: 2025-01-21 10:20:25

微信公众平台开发之认证"成为开发者".Net代码解析_实用技巧的相关文章

微信公众平台开发之发送图文消息.Net代码解析_实用技巧

之前我们讲过让微信发送给我们普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,我们上传图片在以后的章节介绍.下面是发送图文消息的函数,涉及title(标题),description(摘要),picurl(图片),链接(url)几个关键的参数:  protected string sendPicTextMessage(Msg _mode,string title,string description,string picurl,

微信公众平台开发之发送文本消息.Net代码解析_实用技巧

.Net实现微信公共服务平台开发中的发送文本消息功能,具体内容如下 首先建立一个微信消息类.  class wxmessage { public string FromUserName { get; set; } public string ToUserName { get; set; } public string MsgType { get; set; } public string EventName { get; set; } public string Content { get; s

微信公众平台开发教程(八)Session处理问题_实用技巧

在微信窗口,输入的信息有限,我们需要将一些信息分多次请求. 比如:在进行用户绑定时,我们需要输入用户的相关信息,比如:用户名.密码,或者姓名.电话号码,服务端验证通过,即可将系统用户与微信用户绑定. 然后,此微信账户就有一定的功能权限了,可以查积分,消费记录等.服务号:招商银行信用卡,就有很多功能. 微信客户端无法缓存信息,而且输入信息有限,需要进行多次请求,在服务端保存当前会话状态.这就需要Session. 本文以用户认证,绑定账号为例,来说明具体处理. 一.创建通用的Session处理机制.

微信公众平台开发教程(五)详解自定义菜单_javascript技巧

一.概述: 如果只有输入框,可能太简单,感觉像命令行.自定义菜单,给我们提供了很大的灵活性,更符合用户的操作习惯.在一个小小的微信对话页面,可以实现更多的功能.菜单直观明了,不仅能提供事件响应,还支持URL跳转,如果需要的功能比较复杂,我们大可以使用URL跳转,跳转至我们的网页即可. 注意:自定义菜单,只有服务号才有此功能 接着我们详细介绍,如何实现自定义菜单? 二.详细步骤: 1.首先获取access_token access_token是公众号的全局唯一票据,公众号调用各接口时都需使用acc

微信公众平台开发之处理图片.Net代码解析_实用技巧

举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这个过程.微信平台肯定不能帮助我们OCR或者人脸识别等功能,要做这些功能首先到得到图片!用户拍摄的照片首先被上传到了wenxin的服务器,然后就有了一个mediaID,我们用这个mediaID可以下载到我们自己的服务器上然后处理,把结果给微信平台,由微信平台最终反馈给用户(关注者).微信的开发文档已经

微信公众平台开发之语音识别.Net代码解析_实用技巧

语音识别这个功能属于高级功能,必须微信实名认证后才能实现,认证费用300元/年,如果你作为开发者可以申请测试帐号,也是可以的.首先建立一个微信消息类,这个类比之前多了一个属性. class wxmessage { public string FromUserName { get; set; } public string ToUserName { get; set; } public string MsgType { get; set; } public string EventName { g

微信公众平台开发之获得ACCESSTOKEN .Net代码解析_实用技巧

如何认证成为开发者?请点击第一篇文章进行查看,成为了开发者之后微信平台会给您appid和secret,在订阅号中是没有的,所以因该申请一下服务号,有了ACCESSTOKEN才能做添加菜单,上传/下载图片等功能. private string GetToken() { // 也可以这样写: //return GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的appid&

微信公众平台开发之地理位置.Net代码解析_实用技巧

微信公共平台中涉及到地理位置的有两种情况:         第一.我发送一个自选的地理位置给微信,然后微信可以自动反馈响应的信息.         第二.让微信获取我们GPS定位地址位置,反馈响应的信息.         首先我们先来看第一种,在微信中除了可以发文本,图片,语音等还有一个信息就是地理位置,按照微信接受地理信息的XML信息,我们需要改造一下之前的wxmessage类加上几个属性:  class wxmessage { public string FromUserName { get

微信公众平台开发之自定义菜单.Net代码解析_实用技巧

用户自定义菜单制作时,需要用到access_token,我们直接使用前面讲解的IsExistAccess_Token()函数.我理解的微信公共平台里面菜单分为button和sub_button,即菜单和子菜单,这些菜单都有一个name的属性,类别分为click和view,click类有key属性:而view类有url属性,含有子菜单的菜单没有key属性也没有url属性.这些情况可以从下面的例子看出来. public void MyMenu() { string weixin1 = ""