.net 开发微信公众平台(一)-----认证"成为开发者"

申请了个人公众号,没认证的个人公众号权限少,主要是讲基本的.

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

    protected void Page_Load(object sender, EventArgs e)
    {
        Valid();
    }

    private void Valid()
    {
        string echoStr = Request.QueryString["echostr"].ToString();
        if (CheckSignature())
        {
            if (!string.IsNullOrEmpty(echoStr))
            {
                Response.Write(echoStr);
                Response.End();
            }
        }
    }                                                                                                                                                      
    /// <summary>  
    /// 验证微信签名  
    /// </summary>  
    /// * 将token、timestamp、nonce三个参数进行字典序排序  
    /// * 将三个参数字符串拼接成一个字符串进行sha1加密  
    /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。  
    /// <returns></returns>  
    private bool CheckSignature()
    {
        string Token = "brave";  //与微信上一致
        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");//对该字符串进行sha1加密
        tmpStr = tmpStr.ToLower();//对字符串中的字母部分进行小写转换,非字母字符不作处理
        //WriteLog(tmpStr, Server);//计入日志
        if (tmpStr == signature)//开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。开发者通过检验signature对请求进行校验,若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败
        {
            return true;
        }
        else
        {
            return false;
        }
    }                                                                                                                                                      
    /// <summary>  
    /// 记录bug,以便调试  
    /// </summary>  
    /// <returns></returns>  
    public bool WriteTxt(string str)
    {
        try
        {
            FileStream fs = new FileStream(Server.MapPath("/bugLog.txt"), FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            //开始写入  
            sw.WriteLine(str);
            //清空缓冲区  
            sw.Flush();
            //关闭流  
            sw.Close();
            fs.Close();
        }
        catch (Exception)
        {
            return false;
        }
        return true;
    }

打开微信公众平台

配置:


认证成功:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值