zoukankan      html  css  js  c++  java
  • .net自动获取token,

     .NET自动获取Token,

    我就直接上图片了,后面是完整代码,可以复制到你的项目,

    我这个方法有点笨,但是没有任何问题

       

     --------------------------------------------------------------从下方开始复制------------------------------------------------------

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web; using System.Web.Script.Serialization; using WeChat.Models;

    namespace WeChat.DAL {

        public class WeChatCommon     {         #region 获取Access_token

            /// <summary>         /// Token         /// </summary>         private static string _access_token { get; set; }         /// <summary>         /// 时间,用来判断是否该更新了         /// </summary>         private static int _datetime = 0;

            /// <summary>         /// Access_token,每个小时获取一次         /// </summary>         private static string Access_token         {             get             {                 //第二次判断防止多次申请                 if (_datetime != DateTime.Now.Hour)                 {                     _datetime = DateTime.Now.Hour;                     if (GetAccess_token())                         return _access_token;                     else                         return null;                 }                 else                     return _access_token;             }         }         #endregion

            #region 获取Access_token         /// <summary>         /// 返回Access_token         /// </summary>         /// <returns></returns>         private static string ReturnAccess_token()         {             //第一次判断,每小时刷新一次Token,此处带锁             if (_datetime != DateTime.Now.Hour)             {                 lock (Access_token)                 {                     return Access_token;                 }             }             return _access_token;

            }

            /// <summary>         /// 获取GetAccess_token         /// </summary>         /// <returns>Access_token</returns>         private static bool GetAccess_token()         { string Secret = "";             string APPID = "";             //url             string uri =string.Format( @"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}",APPID,Secret);

                //初始化http请求             HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest;             request.Method = "GET";//请求方法             request.AllowAutoRedirect = false;//禁止重定向

                //获取返回的信息             using (WebResponse web = request.GetResponse())             {                 StreamReader reader = new StreamReader(web.GetResponseStream(), Encoding.UTF8);                 string json = reader.ReadToEnd();                 JavaScriptSerializer js = new JavaScriptSerializer();                 Access_token access_token = js.Deserialize<Access_token>(json);

                    if (access_token.errcode != "41004" && access_token.errcode != null)                 {                     _access_token = access_token.access_token;                     return true;                 }                 else                     return false;

                }         }

            #endregion     } }

    -------------------------------------------------------------------------------------------------------

    点击链接加入群【ASP.NET鹰组】:http://jq.qq.com/?_wv=1027&k=2ERJ0qo

    ASP.NET鹰组 460845632

  • 相关阅读:
    完全卸载Oracle方法、步骤
    使用oracle11g_instant_client来解决在不安装oracle客户端的情况下连接服务端
    Android系统中的6种模式
    现代汉语常用3500字
    debug1: Could not open authorized keys
    所选用户秘钥未在远程主机上注册
    directshow播放摄像头卡死问题
    linux设置静态IP
    gcc编译错误
    centos6.4编译gcc6.4
  • 原文地址:https://www.cnblogs.com/wangxianggong/p/5240098.html
Copyright © 2011-2022 走看看