Example #1
0
        /// <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);
        }
Example #2
0
        // 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));
        }
Example #3
0
        /// <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));
        }
Example #4
0
        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);
        }