示例#1
0
        public ActionResult Index()
        {
            WechatConfig config = AccessTokenService.GetWechatConfig();

            ViewData["config"] = config;
            return(View());
        }
        public async Task <IActionResult> Refresh([FromBody] RefreshRequestModel refreshRequest)
        {
            var principal         = AccessTokenService.GetPrincipalFromExpiredToken(refreshRequest.Token);
            var userId            = principal.Identity.Name;
            var savedRefreshToken = await AccessTokenService.GetRefreshTokenAsync(userId);

            if (savedRefreshToken != refreshRequest.RefreshToken)
            {
                return(BadRequest("Invalid refresh token"));
            }

            string newJwtToken     = null;
            string newRefreshToken = null;

            try
            {
                newJwtToken     = AccessTokenService.GenerateAccessToken(userId);
                newRefreshToken = AccessTokenService.GenerateRefreshToken();

                await AccessTokenService.DeleteRefreshTokenAsync(userId, refreshRequest.RefreshToken);

                await AccessTokenService.SaveRefreshTokenAsync(userId, newRefreshToken);
            }
            catch (Exception e)
            {
                Logger.LogError(e, e.Message);
                return(StatusCode(500));
            }

            return(Ok(new
            {
                token = newJwtToken,
                refreshToken = newRefreshToken
            }));
        }
        public async void SaveRefreshTokenAsync_ShouldSaveRefreshTokenInDatabase()
        {
            var loggerMock      = new Mock <ILogger <AccessTokenService> >();
            var optionsMock     = new Mock <IOptions <AppSettings> >();
            var appSettingsMock = new Mock <AppSettings>();
            var contextMock     = new Mock <IDatabaseContext>();

            optionsMock.Setup(x => x.Value)
            .Returns(appSettingsMock.Object);

            var dbSet = new TestDbSet <RefreshToken>();

            contextMock.Setup(x => x.RefreshTokens)
            .Returns(dbSet);
            contextMock.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>()))
            .Verifiable();

            var service      = new AccessTokenService(loggerMock.Object, contextMock.Object, optionsMock.Object);
            var refreshToken = GetRefreshTokenSample();

            await service.SaveRefreshTokenAsync(refreshToken.UserId.ToString(), refreshToken.Token);

            Assert.Contains(dbSet, x => x.Token == refreshToken.Token && x.UserId == refreshToken.UserId);
            contextMock.Verify(x => x.SaveChangesAsync(It.IsAny <CancellationToken>()));
        }
 public ApiAuthenticationStateProvider(
     HttpClient httpClient,
     AccessTokenService accessTokenService)
 {
     _httpClient         = httpClient;
     _accessTokenService = accessTokenService;
 }
        public void AccessToken_AddAnAccessToken_ShouldAddCorrectly()
        {
            var data = new List <AccessToken>().AsQueryable();

            var mock        = new Mock <DbSet <AccessToken> >();
            var mockContext = new Mock <Models.Models.Database>();

            mockContext.Setup(m => m.AccessTokens).Returns(mock.Object);

            AccessTokenService accTokService = new AccessTokenService(mockContext.Object);
            AccessToken        accToken      = new AccessToken()
            {
                Device = new Device()
                {
                    Id = Guid.NewGuid(), LastRequestDateTime = DateTime.Now
                },
                UniqueAccesToken = Guid.NewGuid().ToString("D"),
                CreatedDateTime  = DateTime.Now
            };

            accTokService.AddAccessToken(accToken);

            mock.Verify(m => m.Add(It.IsAny <AccessToken>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
示例#6
0
        public static async Task <string> GetFolderId([ActivityTrigger] RequestData requestData, TraceWriter log)
        {
            httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

            var response = await httpClient.GetAsync($"https://graph.microsoft.com/v1.0/users/{requestData.UserId}/mailFolders?$filter=displayName eq 'Conversation History'&$select=id");

            if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
            {
                token = await AccessTokenService.FetchToken();

                httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
                response = await httpClient.GetAsync($"https://graph.microsoft.com/v1.0/users/{requestData.UserId}/mailFolders?$filter=displayName eq 'Conversation History'&$select=id");
            }
            response.EnsureSuccessStatusCode();
            var responseData = JsonConvert.DeserializeObject <ResponseData>(await response.Content.ReadAsStringAsync());

            if (responseData.Value.Length == 1)
            {
                return(responseData.Value[0].id);
            }
            else
            {
                response = await httpClient.GetAsync($"https://graph.microsoft.com/v1.0/users/{requestData.UserId}/mailFolders?$filter=displayName eq '会話の履歴'&$select=id");

                response.EnsureSuccessStatusCode();
                responseData = JsonConvert.DeserializeObject <ResponseData>(await response.Content.ReadAsStringAsync());
                return(responseData.Value[0].id);
            }
        }
        public ActionResult Index()
        {
            AccessTokenService service = new AccessTokenService();
            service.UpdateToken();

            return View();
        }
示例#8
0
        //
        // GET: /Test/
        public ActionResult Index()
        {
            MenuInfo menu  = new MenuInfo("开始训练", MenuInfo.ButtonType.view, "http://wx.zzd123.com/wechat/Calendar");
            MenuInfo menu2 = new MenuInfo("免费体验", new MenuInfo[] {
                new MenuInfo("免费行为测评", MenuInfo.ButtonType.view, "http://wx.zzd123.com/Free/FreeScale"),
                new MenuInfo("免费心理服务", MenuInfo.ButtonType.view, "http://wx.zzd123.com/Free/FreeHeartList")
            });
            //  MenuInfo menu2 = new MenuInfo("行为测评", MenuInfo.ButtonType.view, "http://www.sina.com");
            //MenuInfo relatedInfo = new MenuInfo("相关链接", new MenuInfo[] {
            //    new MenuInfo("公司介绍", MenuInfo.ButtonType.click, "Event_Company"),
            //    new MenuInfo("官方网站", MenuInfo.ButtonType.view, "http://www.iqidi.com"),
            //    new MenuInfo("提点建议", MenuInfo.ButtonType.click, "Event_Suggestion"),
            //    new MenuInfo("联系客服", MenuInfo.ButtonType.click, "Event_Contact"),
            //    new MenuInfo("发邮件", MenuInfo.ButtonType.view, "http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=S31yfX15fn8LOjplKCQm")
            //});

            MenuJson menujson = new MenuJson();

            menujson.button.AddRange(new MenuInfo[] { menu, menu2 });

            string token = AccessTokenService.GetAccessToken();

            string postData = JsonConvert.SerializeObject(menujson);

            ViewBag.x = WechatService.wechatApi("CreateMenu", token, postData);


            return(View());
        }
        public async Task ServiceDetailsServiceGetServiceDetailsCallsStaffClient()
        {
            var sid         = "012345678901234";
            var cat         = Guid.NewGuid().ToString();
            var dat         = Guid.NewGuid().ToString();
            var restRequest = new ServiceRequest
            {
                ServiceId   = sid,
                AccessToken = cat,
            };
            var config = A.Fake <IConfiguration>();

            config["ClientAccessToken"]      = cat;
            config["DarwinStaffAccessToken"] = dat;
            var tokenService = new AccessTokenService(A.Fake <ILogger <AccessTokenService> >(), config);

            var client      = A.Fake <LDBServiceSoap>();
            var staffClient = A.Fake <OpenLDBSVWS.LDBSVServiceSoap>();

            var service = new ServiceDetailsService(
                A.Fake <ILogger <ServiceDetailsService> >(),
                tokenService,
                client,
                staffClient);

            await service.GetServiceDetailsAsync(restRequest);

            A.CallTo(() => staffClient.GetServiceDetailsByRIDAsync(
                         A <OpenLDBSVWS.GetServiceDetailsByRIDRequest> .That.Matches(s =>
                                                                                     s.AccessToken.TokenValue == dat &&
                                                                                     s.rid == sid)))
            .MustHaveHappenedOnceExactly();
        }
        private static AccessTokenService CreateTarget(
            IOptions <AuthOptions> optionsAccessor         = null,
            IAccessTokenRepository tokenRepository         = null,
            IGitHubUserModelService gitHubUserModelService = null,
            IHttpContextAccessor contextAccessor           = null)
        {
            if (optionsAccessor == null)
            {
                var options = new AuthOptions {
                    Secret = Faker.Random.AlphaNumeric(32)
                };
                optionsAccessor = Substitute.For <IOptions <AuthOptions> >();
                optionsAccessor.Value.Returns(options);
            }

            tokenRepository = tokenRepository ?? Substitute.For <IAccessTokenRepository>();

            contextAccessor        = contextAccessor ?? Substitute.For <IHttpContextAccessor>();
            gitHubUserModelService = gitHubUserModelService ?? Substitute.For <IGitHubUserModelService>();

            var accessTokenService = new AccessTokenService(optionsAccessor, tokenRepository, gitHubUserModelService,
                                                            contextAccessor);

            return(accessTokenService);
        }
 public ExternalProviderSaga(IBus bus, IEventStore eventStore, ISchedulingRepository schedulingRepository, AccessTokenService accessTokenService) : base(bus, eventStore)
 {
     _bus                  = bus;
     _eventStore           = eventStore;
     _schedulingRepository = schedulingRepository;
     _accessTokenService   = accessTokenService;
 }
示例#12
0
 public LineItemsViewComponent(
     AccessTokenService accessTokenService,
     IHttpClientFactory httpClientFactory)
 {
     _accessTokenService = accessTokenService;
     _httpClientFactory  = httpClientFactory;
 }
示例#13
0
 public AuthController(RefreshTokenRepository refreshTokenRepository, UserRepository userRepository,
                       AccessTokenService accessTokenServices)
 {
     _refreshTokenRepository = refreshTokenRepository;
     _userRepository         = userRepository;
     _accessTokenServices    = accessTokenServices;
 }
 public LocationController(LocationRepository locationRepository, UserRepository userRepository,
                           AccessTokenService accessTokenService)
 {
     _locationRepository = locationRepository;
     _userRepository     = userRepository;
     _accessTokenService = accessTokenService;
 }
示例#15
0
        public ActionResult GetMaterialList()
        {
            MaterialListPost postobj = new MaterialListPost();

            postobj.count  = 20;
            postobj.type   = "image";
            postobj.offset = 0;
            string token       = AccessTokenService.GetAccessToken();
            string postJsonStr = JsonConvert.SerializeObject(postobj);
            string result      = WechatMaterialServices.GetMaterialList(token, postJsonStr);

            WechatResult wechatResult = JsonConvert.DeserializeObject <WechatResult>(result);

            if (wechatResult.errcode != 0)
            {
                ViewBag.msg     = "获取素材列表失败!返回错误代码如下:";
                ViewBag.content = result;
            }
            else
            {
                MaterialList materialList = JsonConvert.DeserializeObject <MaterialList>(result);
                ViewData["materialList"] = materialList.item;

                ViewBag.msg = "success";
            }


            return(View());
        }
示例#16
0
        public ActionResult GetMenu()
        {
            string token  = AccessTokenService.GetAccessToken();
            string result = WechatMenuServices.GetMenu(token);

            ViewBag.result = result;
            return(View());
        }
 public ActionResult Logout(string accessToken)
 {
     return(Invoke(() =>
     {
         AccessTokenService.Logout(accessToken);
         return new { Result = true };
     }));
 }
示例#18
0
 public EventController(EventRepository eventRepository, AccessTokenService accessTokenService,
                        UserRepository userRepository, LocationRepository locationRepository)
 {
     _eventRepository    = eventRepository;
     _accessTokenService = accessTokenService;
     _userRepository     = userRepository;
     _locationRepository = locationRepository;
 }
 public AppClaimsPrincipalFactory(
     UserManager <ApplicationUser> userManager,
     RoleManager <IdentityRole> roleManager,
     IOptions <IdentityOptions> optionsAccessor,
     AccessTokenService accessTokenService) : base(userManager, roleManager, optionsAccessor)
 {
     _accessTokenService = accessTokenService;
 }
示例#20
0
        public static async Task <List <String> > GetUsers([ActivityTrigger] DurableActivityContext context, TraceWriter log)
        {
            var token = await AccessTokenService.FetchToken();

            var ids = await UserService.FetchUsers(token);

            return(ids);
        }
 public ActionResult RenewalAccessToken(string accessToken)
 {
     return(Invoke(() =>
     {
         AccessTokenService.UpdateIssueDate(accessToken);
         return new { Result = true };
     }));
 }
示例#22
0
 public ToolModel(
     ApplicationDbContext context,
     StateDbContext stateContext,
     AccessTokenService accessTokenService,
     IHttpClientFactory httpClientFactory)
 {
     _context            = context;
     _stateContext       = stateContext;
     _accessTokenService = accessTokenService;
     _httpClientFactory  = httpClientFactory;
 }
示例#23
0
        public void GetAccessToken()
        {
            var iAccessToken = DependencyManager.Resolve <IAccessTokenRepository>();
            var token        = iAccessToken.GetAccessToken(1);

            AccessTokenService accessTokenService = new AccessTokenService();
            string             errorMessage;
            var result = accessTokenService.GetAccessToken(1, out errorMessage);

            Assert.IsTrue(result != null && !result.IsExpired());
        }
示例#24
0
        //public ActionResult demo()
        //{
        //    string str = @"开始时间:2016-1-1" + "\r\n"
        //                                                 + "结束时间:2017-1-1" + "\r\n"
        //                                                + "沙尘天气等级:2" + "\r\n"
        //                                                + "PM10日均浓度最大值:2ug/m3" + "\r\n"
        //                                                 + "影响范围:济南,青岛";

        //    string oldpath = @"/Resource/Image/78041949.png";
        //    string avatarpath=@"/Resource/Image/avatar.png";
        //  //  string newpath = @"/Resource/Image/"+CommonTools.getRandomNumber(10000,99999999)+".png";
        //    string imagepath = ImageTools.composeImage(oldpath, avatarpath, @"/Resource/Image/" + CommonTools.getRandomNumber(10000, 99999999) + ".png");
        //    string textimagepath = ImageTools.composeText(oldpath, "我是贺苏\r\n邀请你来参加第二节", @"/Resource/Image/" + CommonTools.getRandomNumber(10000, 99999999) + ".png");
        //    string texttoimagepath = ImageTools.SaveTextToImage(str);
        //    ViewBag.imagepath = imagepath;
        //    ViewBag.textimagepath = textimagepath;
        //    ViewBag.texttoimagepath = texttoimagepath;
        //    return View();
        //}
        public ActionResult Index()
        {
            string       access_token = AccessTokenService.GetAccessToken();
            WechatConfig wechatconfig = AccessTokenService.GetWechatConfig();
            string       xml          = XmlSerializerHelper.ToXml(wechatconfig);


            ViewBag.Message  = access_token;
            ViewBag.Message2 = xml;

            return(View());
        }
示例#25
0
        //public ActionResult About()
        //{
        //    WechatTemplateMessage msgData = new WechatTemplateMessage
        //    {
        //        touser = "******",
        //        template_id = "KqDQm6LejvmNDrTWIQuRYoflIpi7JKgvUNsQfqf8i70",
        //        url = "http://www.baidu.com",
        //        data = new
        //        {

        //            welcome = new
        //            {
        //                value = "训练提醒通知",
        //                color = "#173177"
        //            },
        //            first = new
        //            {
        //                value = "2015年6月7日",
        //                color = "#173177"
        //            },
        //            second = new
        //            {
        //                value = "踢皮球",
        //                color = "#173177"
        //            },
        //        }
        //    };



        //    string access_token = AccessTokenService.GetAccessToken();
        //    string operate="SendTemplateMessage";
        //    string postdata = JsonConvert.SerializeObject(msgData);

        //    string result=WechatService.wechatApi(operate,access_token,postdata);

        //    ViewBag.Message = JsonConvert.SerializeObject(msgData);
        //    ViewBag.result = result;
        //    return View();
        //}

        //public ActionResult SendMessage()
        //{
        //    WechatTemplateMessage msgData = new WechatTemplateMessage
        //    {
        //        touser = "******",
        //        template_id = "S0jkUpR2R7C6PIpnJHRD1GxIad27dln4vEOtD7uRl4A",
        //        url = "http://www.baidu.com",
        //        data = new
        //        {

        //            first = new
        //            {
        //                value = "宝贝,你好,训练时间到了",
        //                color = "#173177"
        //            },
        //            keyword1 = new
        //            {
        //                value = "踢皮球运动",
        //                color = "#173177"
        //            },
        //            keyword2 = new
        //            {
        //                value = "30分钟",
        //                color = "#173177"
        //            },
        //            remark = new
        //            {
        //                value = "只有坚持不懈的努力,才能有进步,加油!",
        //                color = "#173177"
        //            },
        //        }
        //    };



        //    string access_token = AccessTokenService.GetAccessToken();
        //    string postdata = JsonConvert.SerializeObject(msgData);
        //    string result = WechatMessageServices.SendTempletMessge(access_token, postdata);


        //    ViewBag.Message = JsonConvert.SerializeObject(msgData);
        //    ViewBag.result = result;
        //    return View();
        //}

        //public ActionResult Contact()
        //{
        //    UserListItem[] u = new UserListItem[2];
        //    u[0] = new UserListItem { openid = "oChqYt13RL8dBi0zKHo0kao-aSHo", lang = "zh_CN" };
        //    u[1] = new UserListItem { openid = "oChqYt1b0t1U2_b_U9ag1JQyrebM", lang = "zh_CN" };

        //    UserList ulist = new UserList
        //    {
        //        user_list = u
        //    };



        //    string postdata = JsonConvert.SerializeObject(ulist);
        //    string access_token = AccessTokenService.GetAccessToken();
        //    string operate = "GetUserListInfo";

        //    string result = WechatService.wechatApi(operate, access_token, postdata);

        //    ViewBag.Message = postdata;
        //    ViewBag.result = result;

        //    return View();
        //}

        //public ActionResult Jstest()
        //{
        //    string userAgent=Request.UserAgent;
        //    string access_token = AccessTokenService.GetAccessToken();
        //    string url=string.Format("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi",access_token);
        //    //  result = HttpWebResponseUtility.CreateGetHttpResponse(url,null,userAgent,null);


        //    HttpWebResponse response = HttpWebResponseUtility.CreateGetHttpResponse(url, null, userAgent, null);

        //    Stream stream = response.GetResponseStream();
        //    StreamReader sr = new StreamReader(stream);
        //    string result = sr.ReadToEnd();
        //    WechatJsTicket ticket = JsonConvert.DeserializeObject<WechatJsTicket>(result);

        //    string jsapi_ticket = ticket.ticket;
        //    string url2 = Request.Url.ToString();

        //    string string1 = "jsapi_ticket=" + jsapi_ticket +
        //          "&noncestr=" + "zhaozheng" +
        //          "&timestamp=" + "1414587457" +
        //          "&url=" + url2;
        //    string x = SkyEncrypt.SHA1(string1);
        //    ViewBag.signature = x;
        //    return View();

        //}

        //public ActionResult js()
        //{
        //    string userAgent = Request.UserAgent;
        //    string access_token = AccessTokenService.GetAccessToken();
        //    string url = string.Format("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", access_token);
        //    //  result = HttpWebResponseUtility.CreateGetHttpResponse(url,null,userAgent,null);


        //    HttpWebResponse response = HttpWebResponseUtility.CreateGetHttpResponse(url, null, userAgent, null);

        //    Stream stream = response.GetResponseStream();
        //    StreamReader sr = new StreamReader(stream);
        //    string result = sr.ReadToEnd();
        //    WechatJsTicket ticket = JsonConvert.DeserializeObject<WechatJsTicket>(result);

        //    string jsapi_ticket = ticket.ticket;
        //    string url2 = Request.Url.ToString();

        //    string string1 = "jsapi_ticket=" + jsapi_ticket +
        //          "&noncestr=" + "zhaozhengo" +
        //          "&timestamp=" + "1414587487" +
        //          "&url=" + url2;
        //    string x = SkyEncrypt.SHA1(string1);
        //    ViewBag.signature = x;
        //    return View();

        //}

        //public ActionResult wechatjs()
        //{

        //    string access_token = AccessTokenService.GetAccessToken();
        //    string userAgent = Request.UserAgent;
        //    string  jsapi_ticket = WechatJsServices.GetJsapi_ticket(access_token, userAgent);

        //    string timestamp = TimeHelp.GetTimeStamp(DateTime.Now, 10);
        //    string nonceStr = "zhaozheng";
        //    string currentUrl = Request.Url.ToString();
        //    string signature = WechatJsServices.GetSignature(jsapi_ticket, nonceStr, timestamp, currentUrl);

        //    WechatConfig wechatconfig = AccessTokenService.GetWechatConfig();


        //    ViewBag.timestamp = int.Parse(timestamp);
        //    ViewBag.nonceStr = nonceStr;
        //    ViewBag.appid = wechatconfig.Appid;
        //    ViewBag.signature = signature;
        //    ViewBag.jsapi_ticket = jsapi_ticket;
        //    ViewBag.currentUrl = currentUrl;



        //    return View();
        //}

        public ActionResult GetUserInfo()
        {
            WechatConfig wechatconfig = AccessTokenService.GetWechatConfig();

            string REDIRECT_URI = System.Web.HttpUtility.UrlEncode("http://wx.zzd123.com/Home/GetUserId");

            string SCOPE = "snsapi_userinfo";

            string url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wechatconfig.Appid + "&redirect_uri=" + REDIRECT_URI + "&response_type=code&scope=" + SCOPE + "&state=STATE#wechat_redirect";

            return(Redirect(url));
        }
示例#26
0
        /// <summary>
        /// 获取微信用户信息
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="openId"></param>
        /// <returns></returns>
        public UserInfo GetUserInfo(int appId, string openId)
        {
            //判断appId是否合法
            var appInfo = _appInfoRepository.GetAppInfo(appId);

            if (appInfo == null)
            {
                throw new Exception(string.Format("获取用户信息失败:通过参数{0}获取到的公众号信息为空", appId));
            }

            var userInfoFromDb = _userRepository.GetUserInfo(appId, openId);
            //如果从数据库获取用户为空,则需要重新从微信更新
            string tokenErrorMessage;
            var    accessToken = new AccessTokenService().GetAccessToken(appId, out tokenErrorMessage);

            if (accessToken == null || !string.IsNullOrEmpty(tokenErrorMessage))
            {
                throw new Exception(string.Format("获取用户信息失败:", tokenErrorMessage));
            }
            if (userInfoFromDb != null)
            {
                return(userInfoFromDb);
            }

            var newUserInfoFromWeiXin = UserApi.Info(accessToken.Ticket, openId);

            if (newUserInfoFromWeiXin == null)
            {
                throw new Exception("获取用户信息失败:从微信获取到的用户为空");
            }
            var newUserInfo = new UserInfo
            {
                AppId      = appId,
                Openid     = newUserInfoFromWeiXin.openid,
                City       = newUserInfoFromWeiXin.city,
                Country    = newUserInfoFromWeiXin.country,
                Groupid    = newUserInfoFromWeiXin.groupid,
                Headimgurl = newUserInfoFromWeiXin.headimgurl,
                Language   = newUserInfoFromWeiXin.language,
                Nickname   = newUserInfoFromWeiXin.nickname,
                Province   = newUserInfoFromWeiXin.province,
                Remark     = newUserInfoFromWeiXin.remark,
                Sex        = newUserInfoFromWeiXin.sex,
                //Subscribe = newUserInfoFromWeiXin.subscribe,
                SubscribeTime = newUserInfoFromWeiXin.subscribe_time
            };

            //缓存到数据库
            _userRepository.Add(newUserInfo);

            return(newUserInfo);
        }
        public void AccessTokenServiceTryMakeStaffAccessTokenFailure()
        {
            var config = A.Fake <IConfiguration>();
            var dat    = Guid.NewGuid().ToString();

            config["DarwinAccessToken"] = dat;
            var service = new AccessTokenService(A.Fake <ILogger <AccessTokenService> >(), config);

            var success = service.TryMakeStaffAccessToken(out var token);

            Assert.False(success);
            Assert.True(string.IsNullOrWhiteSpace(token.TokenValue));
        }
        public void AccessTokenServiceTryMakeStaffAccessTokenSuccess()
        {
            var config = A.Fake <IConfiguration>();
            var dat    = Guid.NewGuid().ToString();

            config["DarwinStaffAccessToken"] = dat;
            var service = new AccessTokenService(A.Fake <ILogger <AccessTokenService> >(), config);

            var success = service.TryMakeStaffAccessToken(out var token);

            Assert.True(success);
            Assert.Equal(dat, token.TokenValue);
        }
        private CalendarService CalendarServiceByToken(AccessTokenService accessTokenService)
        {
            var tokenObject   = JObject.Parse(_accessTokenService.GetValue());
            var tokenResponse = new TokenResponse();

            tokenResponse.AccessToken = tokenObject.GetValue("AccessToken").Value <string>();

            var service = new CalendarService();

            service.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",
                                                                                                   tokenResponse.AccessToken);
            return(service);
        }
        public async Task LoggedInOrReverified()
        {
            var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "accesstoken.json");

            this.AccessToken = JsonConvert.DeserializeObject <AccessTokenDto>(File.ReadAllText(path));

            if (!this.AccessToken.IsValid)
            {
                var authService = new AccessTokenService(this._configuration, this._logger);
                this.AccessToken = (await authService.CheckAndRevalidateIfNeededAsync(this.AccessToken).ConfigureAwait(false)).token;
                File.WriteAllText(path, JsonConvert.SerializeObject(this.AccessToken));
            }
        }
示例#31
0
        public ActionResult SendTempletMessage()
        {
            WechatTemplateMessage msgData = new WechatTemplateMessage
            {
                touser      = "******",
                template_id = "S0jkUpR2R7C6PIpnJHRD1GxIad27dln4vEOtD7uRl4A",
                url         = "http://www.baidu.com",
                data        = new
                {
                    first = new
                    {
                        value = "宝贝,你好,训练时间到了",
                        color = "#173177"
                    },
                    keyword1 = new
                    {
                        value = "踢皮球运动",
                        color = "#173177"
                    },
                    keyword2 = new
                    {
                        value = "30分钟",
                        color = "#173177"
                    },
                    remark = new
                    {
                        value = "感谢您的参与。"
                    }
                }
            };

            string access_token = AccessTokenService.GetAccessToken();
            string postdata     = JsonConvert.SerializeObject(msgData);

            string result = WechatMessageServices.SendTempletMessge(access_token, postdata);

            WechatResult wechatResult = JsonConvert.DeserializeObject <WechatResult>(result);

            if (wechatResult.errcode == 0)
            {
                ViewBag.msg    = "模板消息发送成功!操作代码如下:";
                ViewBag.result = result;
            }
            else
            {
                ViewBag.msg    = "模板消息发送失败!错误代码如下:";
                ViewBag.result = result;
            }

            return(View());
        }
示例#32
0
        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (Brands == null)
            {
                try
                {
                    BrandService service = new BrandService();
                    Brands = service.GetListBrand();
                }
                catch (Exception)
                {
                    AccessTokenService tkService = new AccessTokenService();
                    tkService.UpdateToken();

                    BrandService service = new BrandService();
                    Brands = service.GetListBrand();
                }
            }
            filterContext.Controller.ViewBag.Brands = Brands;
            filterContext.Controller.ViewBag.LinkService = LinkService;

            this.OnActionExecuting(filterContext);
        }