/// <summary> /// 获取AccessToken /// </summary> private static string GetAccessToken() { var appId = BLLConfig.Get("wx_appid"); var appSecret = BLLConfig.Get("wx_appsecret"); var accessToken = BLLConfig.Get("wx_access_token"); var accessTokenExpire = BLLConfig.Get("wx_access_token_expire"); if ((!string.IsNullOrEmpty(accessTokenExpire)) && (!string.IsNullOrEmpty(accessToken)) && DateTime.Now < DateTime.Parse(accessTokenExpire)) { return(accessToken); } string parm = string.Format("grant_type=client_credential&appid={0}&secret={1}", appId, appSecret); string result = RequestUtil.Get("https://api.weixin.qq.com/cgi-bin/token?" + parm); WXAccessToken wxAccessToken = JSONHelper.JsonToObject <WXAccessToken>(result); if (wxAccessToken.errcode != 0) { return(string.Empty); } using (Entities db = new Entities()) { db.ht_sys_config.FirstOrDefault(p => p.xkey == "wx_access_token").xvalue = wxAccessToken.access_token; db.ht_sys_config.FirstOrDefault(p => p.xkey == "wx_access_token_expire").xvalue = DateTime.Now.AddSeconds(wxAccessToken.expires_in - 60).ToString(); if (db.SaveChanges() > 0) { } else { } } return(wxAccessToken.access_token); }
// GET: WX public ActionResult OAuthCallback() { string code = Request["code"]; string appId = Request["appid"]; //授权给开放平台时返回此参数 默认授权无此参数 string state = Request["state"]; //state 原样返回 string pageUrl = HttpUtility.UrlDecode(state); string appSecret = ""; string getAccessTokenUrl = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appSecret, code); string accessTokenSource = RequestUtil.Get(getAccessTokenUrl); WXOAuthAccessToken accessTokenModel = JsonConvert.DeserializeObject <WXOAuthAccessToken>(accessTokenSource); ht_user user = BLLUser.GetUserByOpenid(accessTokenModel.openid); if (user != null) { BLLAuthentication.LoginAuthenticationTicket(user); return(Redirect(pageUrl)); } else { user = new ht_user(); user.addtime = DateTime.Now; user.parent_id = 0; user.points = 0; user.money = 0; user.issubscribe = 0; user.salt = Utils.GetCheckCode(6); //获得6位的salt加密字符串 user.password = EncryptUtil.DesEncrypt("123456", user.salt); } string wxUserInfoSourceJson = RequestUtil.Get(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}", accessTokenModel.access_token, accessTokenModel.openid )); WeixinUserInfo wxUserInfo = JsonConvert.DeserializeObject <WeixinUserInfo>(wxUserInfoSourceJson); user.username = user.openid; user.openid = wxUserInfo.openid; user.nickname = wxUserInfo.nickname; user.avatar = wxUserInfo.headimgurl; if (BLLUser.AddUser(user) > 0) { BLLAuthentication.LoginAuthenticationTicket(user); } return(Redirect(pageUrl)); }
/// <summary> /// 用户授权回调 /// </summary> /// <returns></returns> public ActionResult OAuthCallback() { string code = Request["code"]; string appId = Request["appid"]; //授权给开放平台时返回此参数 默认授权无此参数 string state = Request["state"]; //state 原样返回 string pageUrl = HttpUtility.UrlDecode(state); string appSecret = ""; string getAccessTokenUrl = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appSecret, code); string accessTokenSource = RequestUtil.Get(getAccessTokenUrl); WXOAuthAccessToken accessTokenModel = JsonConvert.DeserializeObject <WXOAuthAccessToken>(accessTokenSource); ht_user user = BLLUser.GetUserByOpenid(accessTokenModel.openid); if (user != null) { BLLAuthentication.LoginAuthenticationTicket(user); return(Redirect(pageUrl)); } string wxUserInfoSourceJson = RequestUtil.Get(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}", accessTokenModel.access_token, accessTokenModel.openid )); WeixinUserInfo wxUserInfo = JsonConvert.DeserializeObject <WeixinUserInfo>(wxUserInfoSourceJson); user = new ht_user(); user.nickname = wxUserInfo.nickname; user.avatar = wxUserInfo.headimgurl; user.username = accessTokenModel.openid; user.openid = accessTokenModel.openid; string prms = pageUrl.Substring(pageUrl.IndexOf("?") + 1); var qList = HttpUtility.ParseQueryString(prms); var pid = qList.Get("pid"); if (pid != null) { user.parent_id = Convert.ToInt32(pid); } BLLAuthentication.LoginAuthenticationTicket(user); return(Redirect(pageUrl)); }
private List <WorkItemDTO> processQuery(QueryDTO query) { List <WorkItemDTO> lstWork = new List <WorkItemDTO>(); var result = RequestUtil.Post(workItemQuery, JsonConvert.SerializeObject(query), null, CredentialCache.DefaultCredentials); WorkItemQueryResult qRes = JsonConvert.DeserializeObject <WorkItemQueryResult>(result); IEnumerable <WorkItemReference> workItemRefs; int skip = 0, qtd = 5; do { workItemRefs = qRes.WorkItems.Skip(skip).Take(qtd); if (workItemRefs.Any()) { string url = string.Format(workitemIds, string.Join(",", workItemRefs.Select(t => t.Id).ToList())); var resultW = RequestUtil.Get(url, null, CredentialCache.DefaultCredentials); var lstAux = JsonConvert.DeserializeObject <TfsDefault <WorkItem> >(resultW); lstAux.value.ForEach(t => lstWork.Add(new WorkItemDTO(t))); } skip += qtd; }while (workItemRefs.Count() == qtd); return(lstWork); }