Пример #1
0
        /// <summary>
        /// 获取access_token
        /// </summary>
        public string GetAccessToken()
        {
            string access_token = string.Empty;
            string resString;
            WeChatAccessTokenDAL  dal   = new WeChatAccessTokenDAL();
            WxResponseResultModel model = dal.GetLocalAccessToken();

            if (string.IsNullOrWhiteSpace(model.Access_Token)) //尚未保存过access_token
            {
                resString = Untils.GetToken(AppConsts.WxOpenAppId, AppConsts.WxOpenAppSecret);
                WxResponseResultModel newModel = JsonConvert.DeserializeObject <WxResponseResultModel>(resString);
                UpdateAccessToken(newModel);
                access_token = newModel.Access_Token;
            }
            else
            {
                if (Untils.TokenExpired(model)) //access_token过期
                {
                    resString = Untils.GetToken(AppConsts.WxOpenAppId, AppConsts.WxOpenAppSecret);
                    WxResponseResultModel newModel = JsonConvert.DeserializeObject <WxResponseResultModel>(resString);
                    UpdateAccessToken(newModel);
                    access_token = newModel.Access_Token;
                }
                else
                {
                    return(model.Access_Token);
                }
            }
            return(access_token);
        }
Пример #2
0
        ///// <summary>
        ///// 将获取的access_token写入本地文件
        ///// </summary>
        public void UpdateAccessToken(WxResponseResultModel model)
        {
            model.CreateTime = DateTime.Now;
            WeChatAccessTokenDAL dal = new WeChatAccessTokenDAL();

            if (model.ErrCode == "45009")
            {
                throw new Exception("当天接口调用次数达到上限" + model.ErrMsg);
            }
            dal.UpdateLocalAccessToken(model);
        }