Пример #1
0
        private void GetAccessToken()
        {
            if (AccessToKenVO == null || (AccessToKenVO?.AccessToken?.StrIsNull() ?? true) || AccessToKenVO?.overTime <= DateTime.Now)
            {
                string AppID      = System.Configuration.ConfigurationManager.AppSettings["AppID"];
                string AppSecret  = System.Configuration.ConfigurationManager.AppSettings["AppSecret"];
                string OriginalID = System.Configuration.ConfigurationManager.AppSettings["OriginalID"];
                if (AccessToKenVO == null)
                {
                    AccessToKenVO = new WechatAccessToKenVO()
                    {
                        AppID       = AppID,
                        AccessToken = string.Empty,
                        AppSecret   = AppSecret,
                        OriginalID  = OriginalID,
                    };
                }

                Tuple <bool, string> vo = Tools.GetHtml.GetHtmlFromUrl(@"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + AppID + "&secret=" + AppSecret, string.Empty, null, null);
                if (vo.Item1)
                {
                    if (vo.Item2.StrIsNotNull())
                    {
                        var    jsonObj     = Tools.MakeJson.JsonToLinqObject(vo.Item2);
                        string AccessToken = jsonObj.TryGetValue <string>("access_token");
                        if (AccessToken.StrIsNotNull())
                        {
                            Tools.SaveLog.AddLog("获取:" + AppID + " 的ACCESSTOKEN成功(" + AccessToken + ")", "获取ACCESSTOKEN");
                            AccessToKenVO.AccessToken = AccessToken;
                            //获取数据
                            AccessToKenVO.overTime = DateTime.Now + new TimeSpan(0, 0, jsonObj.TryGetValue <int>("expires_in") - 10); //减去10秒
                        }
                        else
                        {
                            Tools.SaveLog.AddLog("(获取AccessToken出现了错误)内容为:" + vo.Item2, "获取ACCESSTOKEN");
                        }
                    }
                }
                else
                {
                    Tools.SaveLog.AddLog("拉取服务号AccessToken时出现了错误!", "获取ACCESSTOKEN");
                }
            }
        }
Пример #2
0
 internal static void RemoveAdvertiserUser()
 {
     AccessToKenVO = null;
 }